]> granicus.if.org Git - php/commitdiff
Fixed Bug #66901 php-gd 'c_color' NULL pointer dereference
authorRemi Collet <remi@php.net>
Mon, 4 Aug 2014 08:42:39 +0000 (10:42 +0200)
committerRemi Collet <remi@php.net>
Mon, 4 Aug 2014 08:42:39 +0000 (10:42 +0200)
Upstream https://bitbucket.org/libgd/gd-libgd/commits/463c3bd09bfe8e924e19acad7a2a6af16953a704

Notice: this fix don't manage monochrome/monovisual values
but just fix the security issue CVE-2014-2497
failing when trying to load such an image

ext/gd/libgd/gdxpm.c

index 73f86e5df79d6eadc6d014b29e70ccdd06a811e6..b69414e60d8e43eb63602faa3c9dc9ea1337eb12 100644 (file)
@@ -31,12 +31,17 @@ gdImagePtr gdImageCreateFromXpm (char *filename)
        if (ret != XpmSuccess) {
                return 0;
        }
+       number = image.ncolors;
+       for(i = 0; i < number; i++) {
+               if (!image.colorTable[i].c_color) {
+                       goto done;
+               }
+       }
 
        if (!(im = gdImageCreate(image.width, image.height))) {
                goto done;
        }
 
-       number = image.ncolors;
        colors = (int *) safe_emalloc(number, sizeof(int), 0);
        for (i = 0; i < number; i++) {
                switch (strlen (image.colorTable[i].c_color)) {