mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.4'
* PHP-8.4: Fix GH-16316: DOMXPath breaks when not initialized properly
This commit is contained in:
32
ext/dom/tests/gh16316.phpt
Normal file
32
ext/dom/tests/gh16316.phpt
Normal file
@@ -0,0 +1,32 @@
|
||||
--TEST--
|
||||
GH-16316 (DOMXPath breaks when not initialized properly)
|
||||
--EXTENSIONS--
|
||||
dom
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Demo extends DOMXPath {
|
||||
public function __construct() {}
|
||||
}
|
||||
|
||||
$demo = new Demo;
|
||||
try {
|
||||
var_dump($demo);
|
||||
} catch (DOMException $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
|
||||
try {
|
||||
var_dump($demo->document);
|
||||
} catch (DOMException $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
object(Demo)#1 (1) {
|
||||
["registerNodeNamespaces"]=>
|
||||
bool(true)
|
||||
}
|
||||
Invalid State Error
|
||||
Invalid State Error
|
||||
@@ -178,6 +178,11 @@ zend_result dom_xpath_document_read(dom_object *obj, zval *retval)
|
||||
docp = (xmlDocPtr) ctx->doc;
|
||||
}
|
||||
|
||||
if (UNEXPECTED(!docp)) {
|
||||
php_dom_throw_error(INVALID_STATE_ERR, /* strict */ true);
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
php_dom_create_object((xmlNodePtr) docp, retval, obj);
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user