mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2: Fix GH-15837: Segmentation fault in ext/simplexml/simplexml.c
This commit is contained in:
commit
bc20b403cf
3 changed files with 40 additions and 1 deletions
6
NEWS
6
NEWS
|
@ -2,7 +2,11 @@ PHP NEWS
|
|||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
?? ??? ????, PHP 8.3.13
|
||||
|
||||
- Opcache:
|
||||
- SimpleXML:
|
||||
. Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c).
|
||||
(nielsdos)
|
||||
|
||||
- SOAP:
|
||||
. Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP
|
||||
headers in array form). (nielsdos)
|
||||
. Fixed bug #62900 (Wrong namespace on xsd import error message). (nielsdos)
|
||||
|
|
|
@ -2540,6 +2540,11 @@ static void php_sxe_iterator_current_key(zend_object_iterator *iter, zval *key)
|
|||
{
|
||||
php_sxe_iterator *iterator = (php_sxe_iterator *)iter;
|
||||
zval *curobj = &iterator->sxe->iter.data;
|
||||
if (Z_ISUNDEF_P(curobj)) {
|
||||
ZVAL_NULL(key);
|
||||
return;
|
||||
}
|
||||
|
||||
php_sxe_object *intern = Z_SXEOBJ_P(curobj);
|
||||
|
||||
xmlNodePtr curnode = NULL;
|
||||
|
|
30
ext/simplexml/tests/gh15837.phpt
Normal file
30
ext/simplexml/tests/gh15837.phpt
Normal file
|
@ -0,0 +1,30 @@
|
|||
--TEST--
|
||||
GH-15837 (Segmentation fault in ext/simplexml/simplexml.c)
|
||||
--CREDITS--
|
||||
YuanchengJiang
|
||||
--FILE--
|
||||
<?php
|
||||
$xml =<<<EOF
|
||||
<xml>
|
||||
<fieldset1>
|
||||
</fieldset1>
|
||||
<fieldset2>
|
||||
<options>
|
||||
</options>
|
||||
</fieldset2>
|
||||
</xml>
|
||||
EOF;
|
||||
$sxe = new SimpleXMLIterator($xml);
|
||||
$rit = new RecursiveIteratorIterator($sxe, RecursiveIteratorIterator::LEAVES_ONLY);
|
||||
foreach ($rit as $child) {
|
||||
$ancestry = $child->xpath('ancestor-or-self::*');
|
||||
// Exhaust internal iterator
|
||||
foreach ($ancestry as $ancestor) {
|
||||
}
|
||||
}
|
||||
var_dump($rit->valid());
|
||||
var_dump($rit->key());
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
NULL
|
Loading…
Add table
Add a link
Reference in a new issue