Commit 9d7207212fb for php.net

commit 9d7207212fba5f650670a6069be8663325eedc5d
Merge: a846c8f4141 f5db09db144
Author: David Carlier <devnexen@gmail.com>
Date:   Tue May 19 20:14:22 2026 +0100

    Merge branch 'PHP-8.4' into PHP-8.5

    * PHP-8.4:
      ext/soap: Fix integer overflow when decoding SOAP array indexes

diff --cc ext/soap/php_packet_soap.c
index 1019949093f,7dcd56f34cc..295804f98d0
--- a/ext/soap/php_packet_soap.c
+++ b/ext/soap/php_packet_soap.c
@@@ -223,25 -244,19 +245,25 @@@ bool parse_packet_soap(zval *this_ptr,
  				tmp = get_node(tmp->children,"Text");
  				if (tmp != NULL && tmp->children != NULL) {
  					zval zv;
- 					master_to_zval(&zv, get_conversion(IS_STRING), tmp);
+ 					master_to_zval_with_doc_cleanup(&zv, get_conversion(IS_STRING), tmp, response);
  					convert_to_string(&zv)
  					faultstring = Z_STR(zv);
 +
 +					/* xml:lang is required by SOAP 1.2, but for BC reasons we allow it to be missing */
 +					xmlAttrPtr lang_attr = get_attribute_ex(tmp->properties, "lang", (const char *) XML_XML_NAMESPACE);
 +					if (lang_attr != NULL && lang_attr->children != NULL) {
 +						const char *lang_str = (const char *) lang_attr->children->content;
 +						lang = zend_string_init(lang_str, strlen(lang_str), false);
 +					}
  				}
  			}

  			tmp = get_node(fault->children,"Detail");
  			if (tmp != NULL) {
- 				master_to_zval(&details, NULL, tmp);
+ 				master_to_zval_with_doc_cleanup(&details, NULL, tmp, response);
  			}
  		}
 -		add_soap_fault(this_ptr, faultcode, faultstring ? ZSTR_VAL(faultstring) : NULL, faultactor ? ZSTR_VAL(faultactor) : NULL, &details);
 +		add_soap_fault(this_ptr, faultcode, faultstring ? ZSTR_VAL(faultstring) : NULL, faultactor ? ZSTR_VAL(faultactor) : NULL, &details, lang);
  		if (faultstring) {
  			zend_string_release_ex(faultstring, 0);
  		}