From 507e1fd5a2061deec1f718cf813dcdfc99e19ad0 Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Mon, 17 Jul 2006 15:19:16 +0000 Subject: [PATCH] - MFH #38112, bad code size segfault --- NEWS | 1 + ext/gd/libgd/gd_gif_in.c | 26 ++++++++++++++++++++------ ext/gd/tests/bug38112.gif | Bin 0 -> 18276 bytes ext/gd/tests/bug38112.phpt | 17 +++++++++++++++++ 4 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 ext/gd/tests/bug38112.gif create mode 100644 ext/gd/tests/bug38112.phpt diff --git a/NEWS b/NEWS index 808c5a5ecd..03ee4e7282 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ PHP 4 NEWS - Improved safe_mode check for the error_log() function. (Ilia) - Fixed handling of extremely long paths inside tempnam() function. (Ilia) - Fixed XSS inside phpinfo() with long inputs. (Ilia) +- Fixed bug #38112 (corrupted gif segfaults) (Pierre) - Fixed bug #37720 (merge_php_config scrambles values). (Mike, pumuckel at metropolis dot de) - Fixed bug #37569 (WDDX incorrectly encodes high-ascii characters). (Ilia) diff --git a/ext/gd/libgd/gd_gif_in.c b/ext/gd/libgd/gd_gif_in.c index 092c89a5d8..8a937e1321 100644 --- a/ext/gd/libgd/gd_gif_in.c +++ b/ext/gd/libgd/gd_gif_in.c @@ -216,6 +216,12 @@ terminated: if (!im) { return 0; } + + if (!im->colorsTotal) { + gdImageDestroy(im); + return 0; + } + /* Check for open colors at the end, so we can reduce colorsTotal and ultimately BitsPerPixel */ @@ -506,6 +512,19 @@ ReadImage(gdImagePtr im, gdIOCtx *fd, int len, int height, unsigned char (*cmap) int v; int xpos = 0, ypos = 0, pass = 0; int i; + + /* + ** Initialize the Compression routines + */ + if (! ReadOK(fd,&c,1)) { + return; + } + + if (c > MAX_LWZ_BITS) { + return; + } + + /* Stash the color map into the image */ for (i=0; (ired[i] = cmap[CM_RED][i]; @@ -515,12 +534,7 @@ ReadImage(gdImagePtr im, gdIOCtx *fd, int len, int height, unsigned char (*cmap) } /* Many (perhaps most) of these colors will remain marked open. */ im->colorsTotal = gdMaxColors; - /* - ** Initialize the Compression routines - */ - if (! ReadOK(fd,&c,1)) { - return; - } + if (LWZReadByte(fd, TRUE, c) < 0) { return; } diff --git a/ext/gd/tests/bug38112.gif b/ext/gd/tests/bug38112.gif new file mode 100644 index 0000000000000000000000000000000000000000..178d27e3574817c6ec5cdeaa9d743fdfd4d38163 GIT binary patch literal 18276 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 F06XUVxOe~n literal 0 HcmV?d00001 diff --git a/ext/gd/tests/bug38112.phpt b/ext/gd/tests/bug38112.phpt new file mode 100644 index 0000000000..2a7cd4bd33 --- /dev/null +++ b/ext/gd/tests/bug38112.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #38112 (GIF Invalid Code size ). +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +Warning: imagecreatefromgif() [%s]: '%sbug38112.gif' is not a valid GIF file in %sbug38112.php on line %d -- 2.50.1