aboutsummaryrefslogtreecommitdiffstats
path: root/main/tiff/libtiff-CVE-2013-4243.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-06-24 12:22:39 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2014-06-24 12:23:53 +0000
commitcab4b718abc4b3179498c45354d0adf651156789 (patch)
tree9b580428b60cb26c61e7d4bcef58ac0f2c85d89a /main/tiff/libtiff-CVE-2013-4243.patch
parentd911f2daafe662bea88751ecc9a84d183a76fdeb (diff)
downloadaports-cab4b718abc4b3179498c45354d0adf651156789.tar.bz2
aports-cab4b718abc4b3179498c45354d0adf651156789.tar.xz
main/tiff: security fix es for CVE-2013-4243 and CVE-2013-4244
ref #3081
Diffstat (limited to 'main/tiff/libtiff-CVE-2013-4243.patch')
-rw-r--r--main/tiff/libtiff-CVE-2013-4243.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/main/tiff/libtiff-CVE-2013-4243.patch b/main/tiff/libtiff-CVE-2013-4243.patch
new file mode 100644
index 0000000000..c365d992b9
--- /dev/null
+++ b/main/tiff/libtiff-CVE-2013-4243.patch
@@ -0,0 +1,41 @@
+diff --git a/tools/gif2tiff.c b/tools/gif2tiff.c
+index 2731273..ca824e2 100644
+--- a/tools/gif2tiff.c
++++ b/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,7 +410,11 @@ process(register int code, unsigned char** fill)
+ fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear);
+ return 0;
+ }
+- *(*fill)++ = suffix[code];
++ if (*fill >= raster + width*height) {
++ fprintf(stderr, "raster full before eoi code\n");
++ return 0;
++ }
++ *(*fill)++ = suffix[code];
+ firstchar = oldcode = code;
+ return 1;
+ }
+@@ -436,7 +444,11 @@ process(register int code, unsigned char** fill)
+ }
+ oldcode = incode;
+ do {
+- *(*fill)++ = *--stackp;
++ if (*fill >= raster + width*height) {
++ fprintf(stderr, "raster full before eoi code\n");
++ return 0;
++ }
++ *(*fill)++ = *--stackp;
+ } while (stackp > stack);
+ return 1;
+ }