From: Michael Wallner Date: Fri, 24 Feb 2006 10:19:54 +0000 (+0000) Subject: - fix crash with DOMImplementation::createDocumentType("name:") X-Git-Tag: php-5.1.3RC1~77 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6520ff9afca625a7b9d9fb00acd1f816a54dabde;p=php - fix crash with DOMImplementation::createDocumentType("name:") --- 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);