pajoye Thu Sep 28 08:52:24 2006 UTC
Modified files:
/php-src/ext/gd/libgd gd.c
/php-src/ext/gd/tests imagefill_1.phpt
Log:
- MFB: imagefill(), infinite loop with wrong color index
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gd.c?r1=1.94&r2=1.95&diff_format=u
Index: php-src/ext/gd/libgd/gd.c
diff -u php-src/ext/gd/libgd/gd.c:1.94 php-src/ext/gd/libgd/gd.c:1.95
--- php-src/ext/gd/libgd/gd.c:1.94 Sun Jul 23 21:48:18 2006
+++ php-src/ext/gd/libgd/gd.c Thu Sep 28 08:52:23 2006
@@ -1914,6 +1914,10 @@
struct seg *stack;
struct seg *sp;
+ if (!im->trueColor && nc > (im->colorsTotal -1)) {
+ return;
+ }
+
alphablending_bak = im->alphaBlendingFlag;
im->alphaBlendingFlag = 0;
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/tests/imagefill_1.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/gd/tests/imagefill_1.phpt
diff -u /dev/null php-src/ext/gd/tests/imagefill_1.phpt:1.2
--- /dev/null Thu Sep 28 08:52:24 2006
+++ php-src/ext/gd/tests/imagefill_1.phpt Thu Sep 28 08:52:23 2006
@@ -0,0 +1,25 @@
+--TEST--
+imagefill() infinite loop with wrong color index
+--SKIPIF--
+<?php
+ if (!extension_loaded('gd')) {
+ die("skip gd extension not available.");
+ }
+ if (!function_exists("imagefttext")) {
+ die("skip imagefttext() not available.");
+ }
+?>
+--FILE--
+<?php
+$im = imagecreate(100,100);
+$white = imagecolorallocate($im, 255,255,255);
+$blue = imagecolorallocate($im, 0,0,255);
+$green = imagecolorallocate($im, 0,255,0);
+
+print_r(imagecolorat($im, 0,0));
+imagefill($im, 0,0,$white + 3);
+print_r(imagecolorat($im, 0,0));
+imagedestroy($im);
+?>
+--EXPECT--
+00
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php