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