From 2c22bd741840e15eb7dc7d714c3ed1805a83e014 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Fri, 1 Nov 2024 02:24:34 +0100 Subject: [PATCH 1/3] Fix bug77578.phpt --- Zend/zend_constants.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 9206eb8e1638..40b0f3f4ecfa 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -56,7 +56,7 @@ void free_zend_constant(zval *zv) zend_string_release_ex(c->name, 1); } if (c->filename) { - zend_string_release_ex(c->filename, 1); + zend_string_release(c->filename); } free(c); } From 94c2e4cfe76c50c727c455eaedc4edf68f7a4780 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Fri, 1 Nov 2024 12:29:21 +0100 Subject: [PATCH 2/3] Revert "Fix bug77578.phpt" This reverts commit 2c22bd741840e15eb7dc7d714c3ed1805a83e014. --- Zend/zend_constants.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 40b0f3f4ecfa..9206eb8e1638 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -56,7 +56,7 @@ void free_zend_constant(zval *zv) zend_string_release_ex(c->name, 1); } if (c->filename) { - zend_string_release(c->filename); + zend_string_release_ex(c->filename, 1); } free(c); } From e7cc323081b2fda7cf2df23d251e7bccdc3c65c0 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Fri, 1 Nov 2024 12:33:16 +0100 Subject: [PATCH 3/3] Avoid dl() in bug77578.phpt `dl()` has known issues regarding permanent strings[1], so we better avoid it, even if that means that we need to spawn two sub-processes. [1] --- ext/com_dotnet/tests/bug77578.phpt | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/ext/com_dotnet/tests/bug77578.phpt b/ext/com_dotnet/tests/bug77578.phpt index a820935d5d77..e25230f76f49 100644 --- a/ext/com_dotnet/tests/bug77578.phpt +++ b/ext/com_dotnet/tests/bug77578.phpt @@ -6,18 +6,33 @@ com_dotnet --EXPECT-- +bool(true) array(0) { } int(0)