From: Nuno Lopes Date: Sat, 6 Jan 2007 20:30:23 +0000 (+0000) Subject: MFB X-Git-Tag: RELEASE_1_0_0RC1~376 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f3c60295ed61370e86dc54028d1d04c807a0f078;p=php MFB --- diff --git a/ext/zip/php_zip.c b/ext/zip/php_zip.c index caa97ad453..e49b611874 100644 --- a/ext/zip/php_zip.c +++ b/ext/zip/php_zip.c @@ -531,7 +531,9 @@ static void php_zip_free_dir(zend_rsrc_list_entry *rsrc TSRMLS_DC) if (zip_int) { if (zip_int->za) { - zip_close(zip_int->za); + if (zip_close(zip_int->za) != 0) { + _zip_free(zip_int->za); + } zip_int->za = NULL; } @@ -904,17 +906,21 @@ static ZIPARCHIVE_METHOD(open) if (ze_obj->za) { /* we already have an opened zip, free it */ - zip_close(ze_obj->za); + if (zip_close(ze_obj->za) != 0) { + _zip_free(ze_obj->za); + } + ze_obj->za = NULL; } if (ze_obj->filename) { efree(ze_obj->filename); + ze_obj->filename = NULL; } intern = zip_open(resolved_path, flags, &err); if (!intern || err) { RETURN_LONG((long)err); } - ze_obj->filename = estrndup(resolved_path, strlen(resolved_path)); + ze_obj->filename = estrdup(resolved_path); ze_obj->filename_len = filename_len; ze_obj->za = intern; RETURN_TRUE;