pajoye Wed Apr 4 11:42:54 2007 UTC Modified files: /php-src/ext/gd/libgd gd_gif_in.c Log: - MFH: - do not try to use the global color map when none was found (Nuno, Pierre) - free im on error http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gd_gif_in.c?r1=1.15&r2=1.16&diff_format=u Index: php-src/ext/gd/libgd/gd_gif_in.c diff -u php-src/ext/gd/libgd/gd_gif_in.c:1.15 php-src/ext/gd/libgd/gd_gif_in.c:1.16 --- php-src/ext/gd/libgd/gd_gif_in.c:1.15 Wed Apr 4 01:54:34 2007 +++ php-src/ext/gd/libgd/gd_gif_in.c Wed Apr 4 11:42:54 2007 @@ -143,7 +143,7 @@ /*1.4//int imageCount = 0; */ int ZeroDataBlock = FALSE; - + int haveGlobalColormap; gdImagePtr im = 0; /*1.4//imageNumber = 1; */ @@ -175,11 +175,13 @@ screen_width = imw = LM_to_uint(buf[0],buf[1]); screen_height = imh = LM_to_uint(buf[2],buf[3]); - if (BitSet(buf[4], LOCALCOLORMAP)) { /* Global Colormap */ + haveGlobalColormap = BitSet(buf[4], LOCALCOLORMAP); /* Global Colormap */ + if (haveGlobalColormap) { if (ReadColorMap(fd, BitPixel, ColorMap)) { return 0; } } + for (;;) { int top, left; int width, height; @@ -230,11 +232,16 @@ im->interlace = BitSet(buf[8], INTERLACE); if (!useGlobalColormap) { if (ReadColorMap(fd, bitPixel, localColorMap)) { + gdImageDestroy(im); return 0; } ReadImage(im, fd, width, height, localColorMap, BitSet(buf[8], INTERLACE), &ZeroDataBlock); } else { + if (!haveGlobalColormap) { + gdImageDestroy(im); + return 0; + } ReadImage(im, fd, width, height, ColorMap, BitSet(buf[8], INTERLACE), &ZeroDataBlock);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php