diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2014-06-24 12:22:39 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2014-06-24 12:23:53 +0000 |
commit | cab4b718abc4b3179498c45354d0adf651156789 (patch) | |
tree | 9b580428b60cb26c61e7d4bcef58ac0f2c85d89a /main/tiff/libtiff-CVE-2013-4243.patch | |
parent | d911f2daafe662bea88751ecc9a84d183a76fdeb (diff) | |
download | aports-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.patch | 41 |
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; + } |