]> granicus.if.org Git - php/commitdiff
fix bug #39625 (Apache crashes on importStylesheet call)
authorRob Richards <rrichards@php.net>
Tue, 5 Dec 2006 12:04:34 +0000 (12:04 +0000)
committerRob Richards <rrichards@php.net>
Tue, 5 Dec 2006 12:04:34 +0000 (12:04 +0000)
ext/xsl/xsltprocessor.c

index 90c4995abb6f40a91f4248021038ad71cf80ddba..4d708b11fa0ba4b66ef8e9b34bd11f76d8dffbed 100644 (file)
@@ -384,13 +384,15 @@ PHP_FUNCTION(xsl_xsltprocessor_import_stylesheet)
        efree(member);
        if (clone_docu == 0) {
                /* check if the stylesheet is using xsl:key, if yes, we have to clone the document _always_ before a transformation */
-               nodep = xmlDocGetRootElement(sheetp->doc)->children;
-               while (nodep) {
-                       if (nodep->type == XML_ELEMENT_NODE && xmlStrEqual(nodep->name, "key") && xmlStrEqual(nodep->ns->href, XSLT_NAMESPACE)) {
-                               intern->hasKeys = 1;
-                               break;
+               nodep = xmlDocGetRootElement(sheetp->doc);
+               if (nodep && (nodep = nodep->children)) {
+                       while (nodep) {
+                               if (nodep->type == XML_ELEMENT_NODE && xmlStrEqual(nodep->name, "key") && xmlStrEqual(nodep->ns->href, XSLT_NAMESPACE)) {
+                                       intern->hasKeys = 1;
+                                       break;
+                               }
+                               nodep = nodep->next;
                        }
-                       nodep = nodep->next;
                }
        } else {
                intern->hasKeys = clone_docu;