Skip to content

Commit e4184b4

Browse files
committed
Fix GH-17500: Segfault with requesting nodeName on nameless doctype
1 parent a2a7287 commit e4184b4

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

ext/dom/node.c

+7-1
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,17 @@ int dom_node_node_name_read(dom_object *obj, zval *retval)
9898
}
9999
case XML_DOCUMENT_TYPE_NODE:
100100
case XML_DTD_NODE:
101+
if (nodep->name) {
102+
ZVAL_STRING(retval, (const char *) nodep->name);
103+
} else {
104+
ZVAL_EMPTY_STRING(retval);
105+
}
106+
break;
101107
case XML_PI_NODE:
102108
case XML_ENTITY_DECL:
103109
case XML_ENTITY_REF_NODE:
104110
case XML_NOTATION_NODE:
105-
ZVAL_STRING(retval, (char *) nodep->name);
111+
ZVAL_STRING(retval, (const char *) nodep->name);
106112
break;
107113
case XML_CDATA_SECTION_NODE:
108114
ZVAL_STRING(retval, "#cdata-section");

ext/dom/tests/gh17500.phpt

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--TEST--
2+
GH-17500 (Segfault with requesting nodeName on nameless doctype)
3+
--EXTENSIONS--
4+
dom
5+
--FILE--
6+
<?php
7+
8+
$doc = new DOMDocument();
9+
$doc->loadHTML("<!DOCTYPE>", LIBXML_NOERROR);
10+
var_dump($doc->doctype->nodeName);
11+
12+
?>
13+
--EXPECT--
14+
string(0) ""

0 commit comments

Comments
 (0)