mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Fix getNamedItemNS() incorrect namespace check
Accidentally introduced while refactoring iterator handling. The check ordering of namespace vs spec compliance was wrong. Closes GH-20185.
This commit is contained in:
3
NEWS
3
NEWS
@@ -7,6 +7,9 @@ PHP NEWS
|
||||
(ilutov)
|
||||
. Fixed bug GH-19844 (Don't bail when closing resources on shutdown). (ilutov)
|
||||
|
||||
- DOM:
|
||||
. Fix getNamedItemNS() incorrect namespace check. (nielsdos)
|
||||
|
||||
- FPM:
|
||||
. Fixed bug GH-19817 (Decode SCRIPT_FILENAME issue in php 8.5).
|
||||
(Jakub Zelenka)
|
||||
|
||||
@@ -515,11 +515,11 @@ static xmlNodePtr dom_map_get_ns_named_item_prop(dom_nnodemap_object *map, const
|
||||
{
|
||||
xmlNodePtr nodep = dom_object_get_node(map->baseobj);
|
||||
if (nodep) {
|
||||
if (php_dom_follow_spec_intern(map->baseobj)) {
|
||||
return (xmlNodePtr) php_dom_get_attribute_node(nodep, BAD_CAST ZSTR_VAL(named), ZSTR_LEN(named));
|
||||
if (ns) {
|
||||
return (xmlNodePtr) xmlHasNsProp(nodep, BAD_CAST ZSTR_VAL(named), BAD_CAST ns);
|
||||
} else {
|
||||
if (ns) {
|
||||
return (xmlNodePtr) xmlHasNsProp(nodep, BAD_CAST ZSTR_VAL(named), BAD_CAST ns);
|
||||
if (php_dom_follow_spec_intern(map->baseobj)) {
|
||||
return (xmlNodePtr) php_dom_get_attribute_node(nodep, BAD_CAST ZSTR_VAL(named), ZSTR_LEN(named));
|
||||
} else {
|
||||
return (xmlNodePtr) xmlHasProp(nodep, BAD_CAST ZSTR_VAL(named));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
--TEST--
|
||||
getNamedItemNS() incorrect namespace check
|
||||
--EXTENSIONS--
|
||||
dom
|
||||
--CREDITS--
|
||||
veewee
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$xml = Dom\XMLDocument::createFromString(<<<EOXML
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<note
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="note-nonamespace1.xsd http://localhost/note-nonamespace2.xsd"
|
||||
xsi:schemaLocation="http://www.happy-helpers1.com note-namespace1.xsd http://www.happy-helpers2.com http://localhost/note-namespace2.xsd">
|
||||
</note>
|
||||
EOXML
|
||||
);
|
||||
$documentElement = $xml->documentElement;
|
||||
$attributes = $documentElement->attributes;
|
||||
$schemaLocation = $attributes->getNamedItemNS('http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation');
|
||||
var_dump($schemaLocation->textContent);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
string(116) "http://www.happy-helpers1.com note-namespace1.xsd http://www.happy-helpers2.com http://localhost/note-namespace2.xsd"
|
||||
Reference in New Issue
Block a user