diff options
Diffstat (limited to 'media-libs/tiff/files/tiff-4.0.7-bug2627.patch')
-rw-r--r-- | media-libs/tiff/files/tiff-4.0.7-bug2627.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/media-libs/tiff/files/tiff-4.0.7-bug2627.patch b/media-libs/tiff/files/tiff-4.0.7-bug2627.patch new file mode 100644 index 000000000000..11a3f3cd3f5c --- /dev/null +++ b/media-libs/tiff/files/tiff-4.0.7-bug2627.patch @@ -0,0 +1,59 @@ +From f88bfadb6d1fac1d0d081058216da659e1f5a628 Mon Sep 17 00:00:00 2001 +From: Even Rouault <even.rouault@spatialys.com> +Date: Sun, 18 Dec 2016 22:28:42 +0000 +Subject: [PATCH] * libtiff/tif_getimage.c: fix potential memory leaks in error + code path of TIFFRGBAImageBegin(). Fixes + http://bugzilla.maptools.org/show_bug.cgi?id=2627 + +--- + ChangeLog | 6 ++++++ + libtiff/tif_getimage.c | 21 +++++++++------------ + 2 files changed, 15 insertions(+), 12 deletions(-) + +diff --git a/libtiff/tif_getimage.c b/libtiff/tif_getimage.c +index c0eb6df0b09a..2ea838556732 100644 +--- a/libtiff/tif_getimage.c ++++ b/libtiff/tif_getimage.c +@@ -283,6 +283,13 @@ TIFFRGBAImageBegin(TIFFRGBAImage* img, TIFF* tif, int stop, char emsg[1024]) + img->redcmap = NULL; + img->greencmap = NULL; + img->bluecmap = NULL; ++ img->Map = NULL; ++ img->BWmap = NULL; ++ img->PALmap = NULL; ++ img->ycbcr = NULL; ++ img->cielab = NULL; ++ img->UaToAa = NULL; ++ img->Bitdepth16To8 = NULL; + img->req_orientation = ORIENTATION_BOTLEFT; /* It is the default */ + + img->tif = tif; +@@ -468,13 +475,6 @@ TIFFRGBAImageBegin(TIFFRGBAImage* img, TIFF* tif, int stop, char emsg[1024]) + photoTag, img->photometric); + goto fail_return; + } +- img->Map = NULL; +- img->BWmap = NULL; +- img->PALmap = NULL; +- img->ycbcr = NULL; +- img->cielab = NULL; +- img->UaToAa = NULL; +- img->Bitdepth16To8 = NULL; + TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &img->width); + TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &img->height); + TIFFGetFieldDefaulted(tif, TIFFTAG_ORIENTATION, &img->orientation); +@@ -494,10 +494,7 @@ TIFFRGBAImageBegin(TIFFRGBAImage* img, TIFF* tif, int stop, char emsg[1024]) + return 1; + + fail_return: +- _TIFFfree( img->redcmap ); +- _TIFFfree( img->greencmap ); +- _TIFFfree( img->bluecmap ); +- img->redcmap = img->greencmap = img->bluecmap = NULL; ++ TIFFRGBAImageEnd( img ); + return 0; + } + +-- +2.12.0 + |