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