From 03d73182d9afc0ddbd4134e69750daf080585a37 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:13:51 +0200 Subject: [PATCH 1/3] Fix GH-15020: Memory leak in Zend/Optimizer/escape_analysis.c Closes GH-15022. --- NEWS | 4 ++++ Zend/Optimizer/escape_analysis.c | 1 + 2 files changed, 5 insertions(+) diff --git a/NEWS b/NEWS index e82ffc50426..ec7c542a11f 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 8.2.23 +- Core: + . Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c). + (nielsdos) + - Curl: . Fixed case when curl_error returns an empty string. (David Carlier) diff --git a/Zend/Optimizer/escape_analysis.c b/Zend/Optimizer/escape_analysis.c index b7c0a5ec446..4bb2b58af77 100644 --- a/Zend/Optimizer/escape_analysis.c +++ b/Zend/Optimizer/escape_analysis.c @@ -400,6 +400,7 @@ zend_result zend_ssa_escape_analysis(const zend_script *script, zend_op_array *o } if (zend_build_equi_escape_sets(ees, op_array, ssa) == FAILURE) { + free_alloca(ees, use_heap); return FAILURE; } From 8c19efdc974eb7af9dba0510baacda54dfda0700 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:34:17 +0200 Subject: [PATCH 2/3] Fix GH-15023: Memory leak in Zend/zend_ini.c Closes GH-15024. --- NEWS | 1 + Zend/zend_ini.c | 1 + 2 files changed, 2 insertions(+) diff --git a/NEWS b/NEWS index ec7c542a11f..14aad73564a 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ PHP NEWS - Core: . Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c). (nielsdos) + . Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c). (nielsdos) - Curl: . Fixed case when curl_error returns an empty string. diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c index 8ba3d7ee48f..cfa394d43e9 100644 --- a/Zend/zend_ini.c +++ b/Zend/zend_ini.c @@ -243,6 +243,7 @@ ZEND_API zend_result zend_register_ini_entries_ex(const zend_ini_entry_def *ini_ if (p->name) { zend_string_release_ex(p->name, 1); } + pefree(p, true); zend_unregister_ini_entries_ex(module_number, module_type); return FAILURE; } From 5996227f88240fcf2fe83ef32eda0816e3fc7e3a Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:12:34 +0200 Subject: [PATCH 3/3] Fix GH-15028: Memory leak in ext/phar/stream.c Closes GH-15029. --- NEWS | 3 +++ ext/phar/stream.c | 1 + 2 files changed, 4 insertions(+) diff --git a/NEWS b/NEWS index 14aad73564a..109f0b2d91e 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,9 @@ PHP NEWS - Soap: . Fixed bug #55639 (Digest autentication dont work). (nielsdos) +- Streams: + . Fixed bug GH-15028 (Memory leak in ext/phar/stream.c). (nielsdos) + 01 Aug 2024, PHP 8.2.22 - Core: diff --git a/ext/phar/stream.c b/ext/phar/stream.c index ceedbdae353..0e5c9dd1f2a 100644 --- a/ext/phar/stream.c +++ b/ext/phar/stream.c @@ -782,6 +782,7 @@ static int phar_wrapper_rename(php_stream_wrapper *wrapper, const char *url_from } if (PHAR_G(readonly) && (!pto || !pto->is_data)) { php_url_free(resource_from); + php_url_free(resource_to); php_error_docref(NULL, E_WARNING, "phar error: Write operations disabled by the php.ini setting phar.readonly"); return 0; }