]> granicus.if.org Git - php/commitdiff
fix the fix for bug #70976 (imagerotate)
authorRemi Collet <remi@php.net>
Tue, 12 Jan 2016 12:52:27 +0000 (13:52 +0100)
committerRemi Collet <remi@php.net>
Tue, 12 Jan 2016 12:52:27 +0000 (13:52 +0100)
ext/gd/libgd/gd_interpolation.c
ext/gd/tests/bug70976.phpt

index 2f5df4892772ee244678781ee364406358066b6a..24fc3ce529dea8ef950c59f4e20cde172d15b1ea 100644 (file)
@@ -2162,7 +2162,7 @@ gdImagePtr gdImageRotateInterpolated(const gdImagePtr src, const float angle, in
 {
        const int angle_rounded = (int)floor(angle * 100);
 
-       if (bgcolor < 0 || (!src->trueColor && bgcolor >= gdMaxColors)) {
+       if (bgcolor < 0) {
                return NULL;
        }
 
@@ -2170,7 +2170,7 @@ gdImagePtr gdImageRotateInterpolated(const gdImagePtr src, const float angle, in
           images can be done at a later point.
        */
        if (src->trueColor == 0) {
-               if (bgcolor >= 0) {
+               if (bgcolor < gdMaxColors) {
                        bgcolor =  gdTrueColorAlpha(src->red[bgcolor], src->green[bgcolor], src->blue[bgcolor], src->alpha[bgcolor]);
                }
                gdImagePaletteToTrueColor(src);
index 23af4eedc741f724d68f6bc1888555953b3d0f1a..dfbd4b49ec942b39680e7205bb543fc47f942e43 100644 (file)
@@ -6,8 +6,8 @@ Bug #70976 (Memory Read via gdImageRotateInterpolated Array Index Out of Bounds)
 ?>
 --FILE--
 <?php
-$img = imagerotate(imagecreate(1,1),45,0x7ffffff9);
+$img = imagerotate(imagecreate(10,10),45,0x7ffffff9);
 var_dump($img);
 ?>
 --EXPECTF--
-bool(false)
\ No newline at end of file
+resource(5) of type (gd)
\ No newline at end of file