1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Merge branch 'PHP-8.2' into PHP-8.3

* PHP-8.2:
  Fix GH-16429: Segmentation fault (access null pointer) in SoapClient
This commit is contained in:
Niels Dossche
2024-10-14 22:00:29 +02:00
3 changed files with 27 additions and 2 deletions

2
NEWS
View File

@@ -62,6 +62,8 @@ PHP NEWS
- SOAP:
. Fixed bug GH-16318 (Recursive array segfaults soap encoding). (nielsdos)
. Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient).
(nielsdos)
- Sockets:
. Fixed bug with overflow socket_recvfrom $length argument. (David Carlier)

View File

@@ -2255,8 +2255,8 @@ static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNod
iter = ce->get_iterator(ce, data, 0);
if (EG(exception)) {
goto iterator_done;
if (!iter) {
goto iterator_failed_to_get;
}
if (iter->funcs->rewind) {
@@ -2296,6 +2296,7 @@ static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNod
}
iterator_done:
OBJ_RELEASE(&iter->std);
iterator_failed_to_get:
if (EG(exception)) {
zval_ptr_dtor(&array_copy);
ZVAL_UNDEF(&array_copy);

View File

@@ -0,0 +1,22 @@
--TEST--
GH-16429 (Segmentation fault (access null pointer) in SoapClient)
--EXTENSIONS--
soap
--FILE--
<?php
function gen() {
var_dump(str_repeat("x", yield));
}
$gen = gen();
$gen->send(10);
$fusion = $gen;
$client = new SoapClient(__DIR__."/../interop/Round2/GroupB/round2_groupB.wsdl",array("trace"=>1,"exceptions"=>0));
try {
$client->echo2DStringArray($fusion);
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECT--
string(10) "xxxxxxxxxx"
Cannot traverse an already closed generator