pajoye Sat Mar 13 13:28:20 2004 EDT
Modified files:
/php-src/ext/gd/libgd gd.c
Log:
- fix #27582 (http://bugs.php.net/bug.php?id=27582)
The problem was that the colors were changed endlessly, blending over
and over. An endless loop and recursive calls filled the stack=>segfault
http://cvs.php.net/diff.php/php-src/ext/gd/libgd/gd.c?r1=1.71&r2=1.72&ty=u
Index: php-src/ext/gd/libgd/gd.c
diff -u php-src/ext/gd/libgd/gd.c:1.71 php-src/ext/gd/libgd/gd.c:1.72
--- php-src/ext/gd/libgd/gd.c:1.71 Tue Mar 2 16:56:30 2004
+++ php-src/ext/gd/libgd/gd.c Sat Mar 13 13:28:19 2004
@@ -1760,13 +1760,18 @@
int lastBorder;
/* Seek left */
int leftLimit = -1, rightLimit;
- int i;
+ int i, restoreAlphaBleding=0;
if (border < 0) {
/* Refuse to fill to a non-solid border */
return;
}
+ if (im->alphaBlendingFlag) {
+ restoreAlphaBleding = 1;
+ im->alphaBlendingFlag = 0;
+ }
+
if (x >= im->sx) {
x = im->sx - 1;
}
@@ -1809,6 +1814,7 @@
}
}
}
+
/* Below */
if (y < ((im->sy) - 1)) {
lastBorder = 1;
@@ -1825,8 +1831,11 @@
}
}
}
-}
+ if (restoreAlphaBleding) {
+ im->alphaBlendingFlag = 1;
+ }
+}
/*
* set the pixel at (x,y) and its 4-connected neighbors
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php