From c7962207d7b4c1c0449c24338538a474c6f9dc13 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 24 Jun 2019 17:35:22 +0200 Subject: [PATCH] Fix stream leak in phar cache_list --- Zend/zend_list.c | 2 +- Zend/zend_list.h | 2 +- ext/phar/phar.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Zend/zend_list.c b/Zend/zend_list.c index 293eeadd04..21d013a589 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -206,7 +206,7 @@ void plist_entry_destructor(zval *zv) free(res); } -int zend_init_rsrc_list(void) +ZEND_API int zend_init_rsrc_list(void) { zend_hash_init(&EG(regular_list), 8, NULL, list_entry_destructor, 0); return SUCCESS; diff --git a/Zend/zend_list.h b/Zend/zend_list.h index 0bec20a280..b9a1d5e159 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -45,7 +45,7 @@ void list_entry_destructor(zval *ptr); void plist_entry_destructor(zval *ptr); void zend_clean_module_rsrc_dtors(int module_number); -int zend_init_rsrc_list(void); +ZEND_API int zend_init_rsrc_list(void); /* Exported for phar hack */ int zend_init_rsrc_plist(void); void zend_close_rsrc_list(HashTable *ht); void zend_destroy_rsrc_list(HashTable *ht); diff --git a/ext/phar/phar.c b/ext/phar/phar.c index 109ec24afa..cc949a6b61 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -113,7 +113,7 @@ static void phar_split_cache_list(void) /* {{{ */ /* fake request startup */ PHAR_G(request_init) = 1; - zend_hash_init(&EG(regular_list), 0, NULL, NULL, 0); + zend_init_rsrc_list(); EG(regular_list).nNextFreeElement=1; /* we don't want resource id 0 */ PHAR_G(has_bz2) = zend_hash_str_exists(&module_registry, "bz2", sizeof("bz2")-1); -- 2.50.1