From: Greg Beaver Date: Tue, 10 Jun 2008 17:58:09 +0000 (+0000) Subject: fix memleak on error X-Git-Tag: BEFORE_NEW_PARAMETER_PARSE~45 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d0734964ca225e38f9008ec80b5e7b0f5b60b681;p=php fix memleak on error --- diff --git a/ext/phar/util.c b/ext/phar/util.c index 7d8ce5e0eb..fc6c60a9d8 100644 --- a/ext/phar/util.c +++ b/ext/phar/util.c @@ -656,6 +656,7 @@ phar_entry_data *phar_get_or_create_entry_data(char *fname, int fname_len, char if (error) { spprintf(error, 0, "phar error: unable to create temporary file"); } + efree(ret); return NULL; } etemp.fp_refcount = 1; @@ -681,6 +682,7 @@ phar_entry_data *phar_get_or_create_entry_data(char *fname, int fname_len, char etemp.tar_type = TAR_FILE; } if (FAILURE == zend_hash_add(&phar->manifest, etemp.filename, path_len, (void*)&etemp, sizeof(phar_entry_info), (void **) &entry)) { + efree(ret); if (error) { spprintf(error, 0, "phar error: unable to add new entry \"%s\" to phar \"%s\"", etemp.filename, phar->fname); } @@ -690,6 +692,7 @@ phar_entry_data *phar_get_or_create_entry_data(char *fname, int fname_len, char if (!entry) { php_stream_close(etemp.fp); efree(etemp.filename); + efree(ret); return NULL; }