]> granicus.if.org Git - php/commitdiff
Fixed bug #72512 gdImageTrueColorToPaletteBody allows arbitrary write/read access
authorPierre Joye <pajoye@php.net>
Mon, 4 Jul 2016 08:35:20 +0000 (10:35 +0200)
committerAnatol Belski <ab@php.net>
Mon, 4 Jul 2016 08:35:20 +0000 (10:35 +0200)
ext/gd/libgd/gd.c

index 4dad95ae3930bf1d225b604cdeed9200704fde7a..3a9577859e962badfb6311de64343d7bc6444eb3 100644 (file)
@@ -599,15 +599,18 @@ void gdImageColorDeallocate (gdImagePtr im, int color)
 
 void gdImageColorTransparent (gdImagePtr im, int color)
 {
+       if (color < 0) {
+               return;
+       }
+
        if (!im->trueColor) {
+               if((color >= gdMaxColors)) {
+                       return;
+               }
                if (im->transparent != -1) {
                        im->alpha[im->transparent] = gdAlphaOpaque;
                }
-               if (color > -1 && color < im->colorsTotal && color < gdMaxColors) {
-                       im->alpha[color] = gdAlphaTransparent;
-               } else {
-                       return;
-               }
+               im->alpha[color] = gdAlphaTransparent;
        }
        im->transparent = color;
 }