diff options
author | dholland <dholland> | 2013-09-21 18:47:05 +0000 |
---|---|---|
committer | dholland <dholland> | 2013-09-21 18:47:05 +0000 |
commit | 78cf3c2dede43c792477ce72ca93dc0a24b81371 (patch) | |
tree | e980496f8661fc65289558cb86badc1aeca8e558 /graphics/tiff/patches | |
parent | 667dd9ab76c3c761e52e237fd7dc4ebf2c769b50 (diff) | |
download | pkgsrc-78cf3c2dede43c792477ce72ca93dc0a24b81371.tar.gz |
Add upstream candidate patch for CVE-2013-4243. PKGREVISION -> 6
Diffstat (limited to 'graphics/tiff/patches')
-rw-r--r-- | graphics/tiff/patches/patch-CVE-2013-4243 | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/graphics/tiff/patches/patch-CVE-2013-4243 b/graphics/tiff/patches/patch-CVE-2013-4243 new file mode 100644 index 00000000000..e71ac593450 --- /dev/null +++ b/graphics/tiff/patches/patch-CVE-2013-4243 @@ -0,0 +1,45 @@ +$NetBSD: patch-CVE-2013-4243,v 1.1 2013/09/21 18:47:05 dholland Exp $ + +Upstream candidate patch for CVE 2013-4243. +taken from http://bugzilla.maptools.org/attachment.cgi?id=518 +(via http://bugzilla.maptools.org/show_bug.cgi?id=2451) + +Despite looking suspect with respect to integer overflows, this +appears to be ok, as long as you aren't on a 16-bit platform, because +the largest image size the input can encode is apparently 65535*65535. + +--- tools/gif2tiff.c.orig 2013-09-21 18:45:13.000000000 +0000 ++++ tools/gif2tiff.c +@@ -280,6 +280,10 @@ readgifimage(char* mode) + fprintf(stderr, "no colormap present for image\n"); + return (0); + } ++ if (width == 0 || height == 0) { ++ fprintf(stderr, "Invalid value of width or height\n"); ++ return(0); ++ } + if ((raster = (unsigned char*) _TIFFmalloc(width*height+EXTRAFUDGE)) == NULL) { + fprintf(stderr, "not enough memory for image\n"); + return (0); +@@ -406,6 +410,10 @@ process(register int code, unsigned char + fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear); + return 0; + } ++ if (*fill >= raster + width*height) { ++ fprintf(stderr, "raster full before eoi code\n"); ++ return 0; ++ } + *(*fill)++ = suffix[code]; + firstchar = oldcode = code; + return 1; +@@ -436,6 +444,10 @@ process(register int code, unsigned char + } + oldcode = incode; + do { ++ if (*fill >= raster + width*height) { ++ fprintf(stderr, "raster full before eoi code\n"); ++ return 0; ++ } + *(*fill)++ = *--stackp; + } while (stackp > stack); + return 1; |