iliaa Sun May 9 14:25:33 2004 EDT
Modified files:
/php-src/ext/gd/libgd gd.c
Log:
Fixed bug #28304 (Missing bounds check inside imagefilter()).
http://cvs.php.net/diff.php/php-src/ext/gd/libgd/gd.c?r1=1.79&r2=1.80&ty=u
Index: php-src/ext/gd/libgd/gd.c
diff -u php-src/ext/gd/libgd/gd.c:1.79 php-src/ext/gd/libgd/gd.c:1.80
--- php-src/ext/gd/libgd/gd.c:1.79 Tue Apr 27 10:59:07 2004
+++ php-src/ext/gd/libgd/gd.c Sun May 9 14:25:33 2004
@@ -3607,8 +3607,9 @@
new_a = gdImageAlpha(srcback, pxl);
for (j=0; j<3; j++) {
+ int yv = MIN(MAX(y - 1 + j, 0), src->sy - 1);
for (i=0; i<3; i++) {
- pxl = f(srcback, x-(3>>1)+i, y-(3>>1)+j);
+ pxl = f(srcback, MIN(MAX(x - 1 + i, 0),
src->sx - 1), yv);
new_r += (float)gdImageRed(srcback, pxl) *
filter[j][i];
new_g += (float)gdImageGreen(srcback, pxl) *
filter[j][i];
new_b += (float)gdImageBlue(srcback, pxl) *
filter[j][i];
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php