From a289a0d4359f771e89ab66abfd3b4ee2d7c9fc8b Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sun, 12 Nov 2006 17:37:51 +0000 Subject: [PATCH] - Fix memleaks --- ext/phar/phar.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ext/phar/phar.c b/ext/phar/phar.c index 3f63e139e4..31b5929acc 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -686,6 +686,8 @@ static php_url* phar_open_url(php_stream_wrapper *wrapper, char *filename, char if (phar_split_fname(filename, strlen(filename), &arch, &arch_len, &entry, &entry_len TSRMLS_CC) == FAILURE) { php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: invalid url \"%s\" (cannot contain .phar.php and .phar.gz)", filename); + efree(arch); + efree(entry); return NULL; } resource = ecalloc(1, sizeof(php_url)); @@ -1656,23 +1658,32 @@ PHP_METHOD(PharFileInfo, __construct) } if (phar_split_fname(fname, fname_len, &arch, &arch_len, &entry, &entry_len TSRMLS_CC) == FAILURE) { + efree(arch); + efree(entry); zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Cannot access phar file entry '%s'", fname); return; } if (phar_open_filename(arch, arch_len, NULL, 0, &phar_data TSRMLS_CC) == FAILURE) { + efree(arch); + efree(entry); zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Cannot open phar file '%s'", fname); return; } if ((entry_info = phar_get_entry_info(phar_data, entry, entry_len TSRMLS_CC)) == NULL) { + efree(arch); zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Cannot access phar file entry '%s' in archive '%s'", entry, arch); + efree(entry); return; } + efree(arch); + efree(entry); + entry_obj->ent.entry = entry_info; INIT_PZVAL(&arg1); -- 2.50.1