From: Greg Beaver Date: Sat, 23 Feb 2008 21:29:57 +0000 (+0000) Subject: free mounted_dirs on error to avoid memleak X-Git-Tag: RELEASE_2_0_0a1~359 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=588f0660e94424a73a60bbf1c6805f82bee9b3e0;p=php free mounted_dirs on error to avoid memleak --- diff --git a/ext/phar/tar.c b/ext/phar/tar.c index c1ed850171..10cd0655d8 100644 --- a/ext/phar/tar.c +++ b/ext/phar/tar.c @@ -187,6 +187,8 @@ int phar_open_tarfile(php_stream* fp, char *fname, int fname_len, char *alias, i php_stream_close(fp); zend_hash_destroy(&myphar->manifest); myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; efree(myphar); return FAILURE; } @@ -205,6 +207,8 @@ int phar_open_tarfile(php_stream* fp, char *fname, int fname_len, char *alias, i php_stream_close(fp); zend_hash_destroy(&myphar->manifest); myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; efree(myphar); return FAILURE; } @@ -260,6 +264,8 @@ int phar_open_tarfile(php_stream* fp, char *fname, int fname_len, char *alias, i php_stream_close(fp); zend_hash_destroy(&myphar->manifest); myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; efree(myphar); return FAILURE; } @@ -284,6 +290,8 @@ int phar_open_tarfile(php_stream* fp, char *fname, int fname_len, char *alias, i php_stream_close(fp); zend_hash_destroy(&myphar->manifest); myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; efree(myphar); return FAILURE; } @@ -309,6 +317,8 @@ int phar_open_tarfile(php_stream* fp, char *fname, int fname_len, char *alias, i php_stream_close(fp); zend_hash_destroy(&myphar->manifest); myphar->manifest.arBuckets = 0; + zend_hash_destroy(&myphar->mounted_dirs); + myphar->mounted_dirs.arBuckets = 0; efree(myphar); return FAILURE; }