mirror of
https://git.yoctoproject.org/poky
synced 2026-07-02 17:13:39 +02:00
cve description: Heap-based buffer overflow in the readgifimage function in the gif2tiff tool in libtiff 4.0.3 and earlier allows remote attackers to cause a denial of service (crash) and possibly execute arbitrary code via a crafted height and width values in a GIF image. http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4243 (From OE-Core rev: 47388363f69bfbf5ed1816a9367627182ee10e88) Signed-off-by: Baogen Shang <baogen.shang@windriver.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
41 lines
1.2 KiB
Diff
41 lines
1.2 KiB
Diff
This patch comes from: http://bugzilla.maptools.org/attachment.cgi?id=518&action=diff#tools/gif2tiff.c_sec2
|
|
|
|
Upstream-Status: Pending
|
|
|
|
Signed-off-by: Baogen shang <baogen.shang@windriver.com>
|
|
--- a/tools/gif2tiff.c 2013-10-14 17:08:43.966239709 +0800
|
|
+++ b/tools/gif2tiff.c 2013-10-14 17:18:22.994239638 +0800
|
|
@@ -280,6 +280,10 @@
|
|
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);
|
|
@@ -397,6 +401,10 @@
|
|
return 1;
|
|
}
|
|
|
|
+ if (*fill >= raster + width*height) {
|
|
+ fprintf(stderr, "raster full before eoi code\n");
|
|
+ return 0;
|
|
+ }
|
|
if (oldcode == -1) {
|
|
*(*fill)++ = suffix[code];
|
|
firstchar = oldcode = code;
|
|
@@ -428,6 +436,10 @@
|
|
}
|
|
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;
|