diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/dom/domimplementation.c | 6 |
2 files changed, 5 insertions, 2 deletions
@@ -26,6 +26,7 @@ PHP NEWS (Mike) - Fixed tiger hash algorithm generating wrong results on big endian platforms. (Mike) +- Fixed crash with DOMImplementation::createDocumentType("name:"). (Mike) - Fixed bug #36458 (sleep() accepts negative values). (Ilia) - Fixed bug #36436 (DBA problem with Berkeley DB4). (Marcus) - Fixed bug #36434 (Improper resolution of declaring class name of an inherited diff --git a/ext/dom/domimplementation.c b/ext/dom/domimplementation.c index aa371f8154..f65da0572b 100644 --- a/ext/dom/domimplementation.c +++ b/ext/dom/domimplementation.c @@ -92,7 +92,7 @@ PHP_METHOD(domimplementation, createDocumentType) pch2 = systemid; uri = xmlParseURI(name); - if (uri->opaque != NULL) { + if (uri != NULL && uri->opaque != NULL) { localname = xmlStrdup(uri->opaque); if (xmlStrchr(localname, (xmlChar) ':') != NULL) { php_dom_throw_error(NAMESPACE_ERR, 1 TSRMLS_CC); @@ -108,7 +108,9 @@ PHP_METHOD(domimplementation, createDocumentType) php_dom_throw_error(INVALID_CHARACTER_ERR, TSRMLS_CC); */ - xmlFreeURI(uri); + if (uri) { + xmlFreeURI(uri); + } doctype = xmlCreateIntSubset(NULL, localname, pch1, pch2); xmlFree(localname); |