cvs: php-src /ext/phar zip.c
| From: | Greg Beaver | Date: | Mon, 16 Feb 2009 18:55:20 +0000 |
| Subject: | cvs: php-src /ext/phar zip.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-56290@lists.php.net to get a copy of this message | ||
cellog Mon Feb 16 18:55:20 2009 UTC
Modified files:
/php-src/ext/phar zip.c
Log:
MFB: fix memleaks on zip corruption
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/zip.c?r1=1.62&r2=1.63&diff_format=u
Index: php-src/ext/phar/zip.c
diff -u php-src/ext/phar/zip.c:1.62 php-src/ext/phar/zip.c:1.63
--- php-src/ext/phar/zip.c:1.62 Sun Feb 15 20:29:26 2009
+++ php-src/ext/phar/zip.c Mon Feb 16 18:55:19 2009
@@ -480,11 +480,13 @@
php_stream_seek(fp, PHAR_GET_32(zipentry.offset), SEEK_SET);
if (sizeof(local) != php_stream_read(fp, (char *) &local, sizeof(local))) {
+ pefree(entry.filename, entry.is_persistent);
PHAR_ZIP_FAIL("phar error: internal corruption of zip-based phar (cannot read local file
header for alias)");
}
/* verify local header */
if (entry.filename_len != PHAR_GET_16(local.filename_len) || entry.crc32 !=
PHAR_GET_32(local.crc32) || entry.uncompressed_filesize != PHAR_GET_32(local.uncompsize) ||
entry.compressed_filesize != PHAR_GET_32(local.compsize)) {
+ pefree(entry.filename, entry.is_persistent);
PHAR_ZIP_FAIL("phar error: internal corruption of zip-based phar (local head of alias does
not match central directory)");
}