pajoye          Wed May 16 22:19:08 2007 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/gd/tests       libgd00086.phpt libgd00086.png 

  Modified files:              
    /php-src    NEWS 
    /php-src/ext/gd/libgd       gd_png.c 
  Log:
  - MFH: libgd #86: Fixed possible infinite loop in libgd/gd_png.c
    (Reported by Xavier Roche)
  
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.711&r2=1.2027.2.547.2.712&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.711 php-src/NEWS:1.2027.2.547.2.712
--- php-src/NEWS:1.2027.2.547.2.711     Wed May 16 21:22:12 2007
+++ php-src/NEWS        Wed May 16 22:19:07 2007
@@ -8,6 +8,8 @@
   altered at run time. (Scott)
 - Allow SOAP extension's handler() to work even when
   always_populate_raw_post_data is off. (Ilia)
+- Fixed possible infinite loop in imagepng (libgd #86) (by Xavier Roche)
+  (Pierre)
 - Fixed ext/filter Email Validation Vulnerability (MOPB-24 by Stefan Esser)
   (Ilia)
 - Fixed altering $this via argument named "this". (Dmitry)
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gd_png.c?r1=1.17.4.2.2.4&r2=1.17.4.2.2.5&diff_format=u
Index: php-src/ext/gd/libgd/gd_png.c
diff -u php-src/ext/gd/libgd/gd_png.c:1.17.4.2.2.4 
php-src/ext/gd/libgd/gd_png.c:1.17.4.2.2.5
--- php-src/ext/gd/libgd/gd_png.c:1.17.4.2.2.4  Sun Dec 10 01:38:01 2006
+++ php-src/ext/gd/libgd/gd_png.c       Wed May 16 22:19:08 2007
@@ -71,7 +71,11 @@
 
 static void gdPngReadData (png_structp png_ptr, png_bytep data, png_size_t 
length)
 {
-       gdGetBuf(data, length, (gdIOCtx *) png_get_io_ptr(png_ptr));
+       int check;
+       check = gdGetBuf(data, length, (gdIOCtx *) png_get_io_ptr(png_ptr));
+       if (check != length) {
+               png_error(png_ptr, "Read Error: truncated data");
+       }
 }
 
 static void gdPngWriteData (png_structp png_ptr, png_bytep data, png_size_t 
length)

http://cvs.php.net/viewvc.cgi/php-src/ext/gd/tests/libgd00086.phpt?view=markup&rev=1.1
Index: php-src/ext/gd/tests/libgd00086.phpt
+++ php-src/ext/gd/tests/libgd00086.phpt
--TEST--
Bug #39780 (PNG image with CRC/data error raises a fatal error)
--SKIPIF--
<?php 
        if (!extension_loaded('gd')) die("skip gd extension not available\n"); 
        if (!GD_BUNDLED) die('skip external GD libraries always fail');
?>
--FILE--
<?php

$im = imagecreatefrompng(dirname(__FILE__) . '/libgd00086.png');
var_dump($im);
?>
--EXPECTF--

Warning: imagecreatefrompng(): gd-png:  fatal libpng error: Read Error: 
truncated data in %s on line %d

Warning: imagecreatefrompng(): gd-png error: setjmp returns error condition in 
%s on line %d

Warning: imagecreatefrompng(): '%s' is not a valid PNG file in %s on line %d
bool(false)

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to