From 6520ff9afca625a7b9d9fb00acd1f816a54dabde Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Fri, 24 Feb 2006 10:19:54 +0000 Subject: [PATCH] - fix crash with DOMImplementation::createDocumentType("name:") --- NEWS | 1 + ext/dom/domimplementation.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index d4c778fc1b..8f4d8992df 100644 --- a/NEWS +++ b/NEWS @@ -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); -- 2.50.1