sterling Thu Jun 5 14:54:26 2003 EDT Modified files: /php4/ext/dom element.c node.c php_dom.c Log: fix a bunch of memory overruns, and uninitialized variable uses fixes crash on sample script rob sent me Index: php4/ext/dom/element.c diff -u php4/ext/dom/element.c:1.1 php4/ext/dom/element.c:1.2 --- php4/ext/dom/element.c:1.1 Thu Jun 5 13:06:52 2003 +++ php4/ext/dom/element.c Thu Jun 5 14:54:25 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: element.c,v 1.1 2003/06/05 17:06:52 rrichards Exp $ */ +/* $Id: element.c,v 1.2 2003/06/05 18:54:25 sterling Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -65,7 +65,7 @@ xmlNodePtr nodep = NULL, oldnode = NULL; dom_object *intern; char *name, *value = NULL; - int name_len, value_len; + int name_len, value_len = 0; id = getThis(); Index: php4/ext/dom/node.c diff -u php4/ext/dom/node.c:1.1 php4/ext/dom/node.c:1.2 --- php4/ext/dom/node.c:1.1 Thu Jun 5 13:06:52 2003 +++ php4/ext/dom/node.c Thu Jun 5 14:54:25 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: node.c,v 1.1 2003/06/05 17:06:52 rrichards Exp $ */ +/* $Id: node.c,v 1.2 2003/06/05 18:54:25 sterling Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -982,6 +982,10 @@ return; } + if (!PZVAL_IS_REF(node)) { + zval_add_ref(&node); + } + DOM_GET_OBJ(child, node, xmlNodePtr); if (dom_hierarchy(nodep, child) == FAILURE) { Index: php4/ext/dom/php_dom.c diff -u php4/ext/dom/php_dom.c:1.2 php4/ext/dom/php_dom.c:1.3 --- php4/ext/dom/php_dom.c:1.2 Thu Jun 5 13:48:25 2003 +++ php4/ext/dom/php_dom.c Thu Jun 5 14:54:25 2003 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_dom.c,v 1.2 2003/06/05 17:48:25 sterling Exp $ */ +/* $Id: php_dom.c,v 1.3 2003/06/05 18:54:25 sterling Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -698,9 +698,11 @@ { xmlDtdPtr extSubset, intSubset; xmlDocPtr docp; + if (!node) { return; } + switch (node->type) { case XML_DOCUMENT_NODE: case XML_HTML_DOCUMENT_NODE:
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php