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

Reply via email to