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