nlopess Sat Nov 11 23:43:00 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/zip php_zip.c /php-src/ext/zip/lib zip_fclose.c Log: fix leaks within zip entries in several tests http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.1.2.17&r2=1.1.2.18&diff_format=u Index: php-src/ext/zip/php_zip.c diff -u php-src/ext/zip/php_zip.c:1.1.2.17 php-src/ext/zip/php_zip.c:1.1.2.18 --- php-src/ext/zip/php_zip.c:1.1.2.17 Thu Nov 9 16:04:34 2006 +++ php-src/ext/zip/php_zip.c Sat Nov 11 23:43:00 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_zip.c,v 1.1.2.17 2006/11/09 16:04:34 nlopess Exp $ */ +/* $Id: php_zip.c,v 1.1.2.18 2006/11/11 23:43:00 nlopess Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -551,6 +551,7 @@ if (zip_int) { if (zip_int->za) { zip_close(zip_int->za); + zip_int->za = NULL; } efree(rsrc->ptr); @@ -565,8 +566,14 @@ { zip_read_rsrc *zr_rsrc = (zip_read_rsrc *) rsrc->ptr; - efree(zr_rsrc); - rsrc->ptr = NULL; + if (zr_rsrc) { + if (zr_rsrc->zf) { + zip_fclose(zr_rsrc->zf); + zr_rsrc->zf = NULL; + } + efree(zr_rsrc); + rsrc->ptr = NULL; + } } /* }}} */ @@ -1992,7 +1999,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "Zip", "enabled"); - php_info_print_table_row(2, "Extension Version","$Id: php_zip.c,v 1.1.2.17 2006/11/09 16:04:34 nlopess Exp $"); + php_info_print_table_row(2, "Extension Version","$Id: php_zip.c,v 1.1.2.18 2006/11/11 23:43:00 nlopess Exp $"); php_info_print_table_row(2, "Zip version", "2.0.0"); php_info_print_table_row(2, "Libzip version", "0.7.1"); http://cvs.php.net/viewvc.cgi/php-src/ext/zip/lib/zip_fclose.c?r1=1.1&r2=1.1.2.1&diff_format=u Index: php-src/ext/zip/lib/zip_fclose.c diff -u php-src/ext/zip/lib/zip_fclose.c:1.1 php-src/ext/zip/lib/zip_fclose.c:1.1.2.1 --- php-src/ext/zip/lib/zip_fclose.c:1.1 Mon Jul 24 16:58:58 2006 +++ php-src/ext/zip/lib/zip_fclose.c Sat Nov 11 23:43:00 2006 @@ -52,13 +52,15 @@ free(zf->buffer); free(zf->zstr); - for (i=0; i<zf->za->nfile; i++) { - if (zf->za->file[i] == zf) { - zf->za->file[i] = zf->za->file[zf->za->nfile-1]; - zf->za->nfile--; - break; + if (zf->za) { + for (i=0; i<zf->za->nfile; i++) { + if (zf->za->file[i] == zf) { + zf->za->file[i] = zf->za->file[zf->za->nfile-1]; + zf->za->nfile--; + break; + } + } } - } ret = 0; if (zf->error.zip_err)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php