iliaa           Tue Nov 25 11:05:19 2003 EDT

  Modified files:              (Branch: PHP_4_3)
    /php-src/ext/domxml php_domxml.c 
  Log:
  Replace fopen() inside domxml_xslt_process() with streams code to prevent
  a possible crash and enforce safe_mode & open_basedir restrictions.
  
  Revert workaround for bug #26384, which is due to a bug in libxslt.
  Christian will commit a better workaround shortly.
  
  
Index: php-src/ext/domxml/php_domxml.c
diff -u php-src/ext/domxml/php_domxml.c:1.218.2.36 
php-src/ext/domxml/php_domxml.c:1.218.2.37
--- php-src/ext/domxml/php_domxml.c:1.218.2.36  Mon Nov 24 21:19:47 2003
+++ php-src/ext/domxml/php_domxml.c     Tue Nov 25 11:05:18 2003
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_domxml.c,v 1.218.2.36 2003/11/25 02:19:47 iliaa Exp $ */
+/* $Id: php_domxml.c,v 1.218.2.37 2003/11/25 16:05:18 iliaa Exp $ */
 
 /* TODO
  * - Support Notation Nodes
@@ -729,6 +729,7 @@
        xmlDoc *doc = (xmlDoc *) rsrc->ptr;
 
        if (doc) {
+               node_list_wrapper_dtor(doc->children, 1 TSRMLS_CC);
                node_wrapper_dtor((xmlNodePtr) doc);
                xmlFreeDoc(doc);
        }
@@ -5383,6 +5384,7 @@
        int ret, clone = 0;
        char *filename;
        int filename_len = 0;
+       FILE *f;
 
        DOMXML_GET_THIS(idxsl);
 
@@ -5396,6 +5398,10 @@
                RETURN_FALSE;
        }
 
+       if (filename_len && !(f = php_stream_open_wrapper_as_file(filename, "w", 
ENFORCE_SAFE_MODE|REPORT_ERRORS, NULL))) {
+               RETURN_FALSE;
+       }
+
        DOMXML_GET_OBJ(xmldocp, idxml, le_domxmldocp);
 
        if (idparams) {
@@ -5407,8 +5413,6 @@
        }
 
        if (filename_len) {
-               FILE *f;
-               f = fopen (filename,"w");
                docp = xsltProfileStylesheet(xsltstp, xmldocp, (const char**)params, 
f);
                fclose(f);
        } else {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to