Security Advisories (6)
CVE-2016-1238 (2016-08-02)

Imager would search the default current directory entry in @INC when searching for file format support modules.

CVE-2008-1928 (2008-04-24)

Buffer overflow in Imager 0.42 through 0.63 allows attackers to cause a denial of service (crash) via an image based fill in which the number of input channels is different from the number of output channels.

CPANSA-Imager-2014-01 (2014-01-03)

When drawing on an image with an alpha channel where the source minimum is greater than zero, Imager would read from beyond the end of a malloc() allocated buffer. In rare circumstances this could lead to some of the source image not being written to the target image, or possibly to a segmentation fault.

CVE-2007-2459 (2007-05-02)

Heap-based buffer overflow in the BMP reader (bmp.c) in Imager perl module (libimager-perl) 0.45 through 0.56 allows remote attackers to cause a denial of service (application crash) and possibly execute arbitrary code via crafted 8-bit/pixel compressed BMP files.

CVE-2006-0053 (2006-04-10)

Imager (libimager-perl) before 0.50 allows user-assisted attackers to cause a denial of service (segmentation fault) by writing a 2- or 4-channel JPEG image (or a 2-channel TGA image) to a scalar, which triggers a NULL pointer dereference.

CVE-2024-53901 (2024-11-17)

"invalid next size" backtrace on use of trim on certain images

NAME

Imager::Inline - using Imager with Inline::C.

SYNOPSIS

use Inline with => 'Imager';
use Inline C => <<'EOS';
Imager some_func(Imager::Color c, Imager::Fill f) {
  Imager img = i_img_8_new(200, 200, 3);
  /* fill with color */
  i_box_filled(img, 0, 0, 199, 199, c);
  /* inner area with fill */
  i_box_cfill(img, 50, 50, 149, 149, f);

  return img;
}
EOS

DESCRIPTION

Imager hooks into Inline's with syntax to make it easier to write Inline::C code that works with Imager, you can call Imager functions without having to include headers or perform initialization.

Imager's inline with support does the following:

  • add the installed Imager include directory to INC

  • add the Imager typemap to TYPEMAPS

  • include the headers needed by Imager C extension modules.

  • declare and initialize the Imager API function table pointer

  • filter the supplied code to replace Imager's class names with those that Inline::C can handle.

LIMITATIONS

The filtering mechanism is global, it will replace the class names even inside string constants. If you need a string matching the name of one of Imager's classes, like "Imager::Color" you will need to split it into 2 to use C's string pasting mechanism, for example: "Imager:" ":Color".

AUTHOR

Tony Cook <tony@imager.perl.org>

REVISION

$Revision$

SEE ALSO

Imager, Imager::ExtUtils, Imager::API, Imager::APIRef, samples/inline_replace_color.pl