From 29b38a1ced65404f907ef50c43bb3d0219de7057 Mon Sep 17 00:00:00 2001 From: Florian Engelhardt Date: Thu, 24 Jul 2025 07:58:41 +0200 Subject: [PATCH] Fix GH-19226: Segfault when spawning new thread in soap extension Closes GH-19228. --- NEWS | 4 ++++ ext/soap/soap.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index e9b956efebf..2b055eec918 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,10 @@ PHP NEWS . Fixed GH-19197: build broken with ZEND_STRL usage with memcpy when implemented as macro. (David Carlier) +- Soap: + . Fixed bug GH-19226 (Segfault when spawning new thread in soap extension). + (Florian Engelhardt) + - Sockets: . socket_set_option for multicast context throws a ValueError when the socket family is not of AF_INET/AF_INET6 family. (David Carlier) diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 35b87c83959..3d4edd3b7b7 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -453,7 +453,6 @@ static void php_soap_init_globals(zend_soap_globals *soap_globals) soap_globals->soap_version = SOAP_1_1; soap_globals->mem_cache = NULL; soap_globals->ref_map = NULL; - soap_globals->lang_en = zend_string_init_interned(ZEND_STRL("en"), true); } PHP_MSHUTDOWN_FUNCTION(soap) @@ -553,6 +552,8 @@ PHP_MINIT_FUNCTION(soap) old_error_handler = zend_error_cb; zend_error_cb = soap_error_handler; + SOAP_GLOBAL(lang_en) = zend_string_init_interned(ZEND_STRL("en"), true); + return SUCCESS; } @@ -4205,7 +4206,7 @@ static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, const char *param } xmlParam = master_to_xml(enc, val, style, parent); zval_ptr_dtor(&defval); - if (xmlParam != NULL) { + if (xmlParam != NULL) { if (xmlParam->name == NULL || strcmp((char*)xmlParam->name, "BOGUS") == 0) { xmlNodeSetName(xmlParam, BAD_CAST(paramName)); }