From: Sterling Hughes Date: Thu, 5 Jun 2003 18:54:25 +0000 (+0000) Subject: fix a bunch of memory overruns, and uninitialized variable uses X-Git-Tag: RELEASE_1_0_2~405 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ee5f79487ee282c394b8a418d3c993ec8e6a4279;p=php fix a bunch of memory overruns, and uninitialized variable uses fixes crash on sample script rob sent me --- diff --git a/ext/dom/element.c b/ext/dom/element.c index 96ce2139d9..4717465cf7 100644 --- a/ext/dom/element.c +++ b/ext/dom/element.c @@ -65,7 +65,7 @@ PHP_FUNCTION(dom_element_element) 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(); diff --git a/ext/dom/node.c b/ext/dom/node.c index 8b9ab306cf..e200d91416 100644 --- a/ext/dom/node.c +++ b/ext/dom/node.c @@ -982,6 +982,10 @@ PHP_FUNCTION(dom_node_append_child) return; } + if (!PZVAL_IS_REF(node)) { + zval_add_ref(&node); + } + DOM_GET_OBJ(child, node, xmlNodePtr); if (dom_hierarchy(nodep, child) == FAILURE) { diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c index bbccaf0521..6c4890bf4a 100644 --- a/ext/dom/php_dom.c +++ b/ext/dom/php_dom.c @@ -698,9 +698,11 @@ void node_free_resource(xmlNodePtr node TSRMLS_DC) { xmlDtdPtr extSubset, intSubset; xmlDocPtr docp; + if (!node) { return; } + switch (node->type) { case XML_DOCUMENT_NODE: case XML_HTML_DOCUMENT_NODE: