rrichards Tue Jan 20 06:35:33 2004 EDT Modified files: /php-src/ext/dom document.c dom_iterators.c xpath.c Log: Warn when empty string supplied to load methods (by Pierre-Alain) Fix refcount on xpath iterators xpath_query should return nodelist even when empty http://cvs.php.net/diff.php/php-src/ext/dom/document.c?r1=1.45&r2=1.46&ty=u Index: php-src/ext/dom/document.c diff -u php-src/ext/dom/document.c:1.45 php-src/ext/dom/document.c:1.46 --- php-src/ext/dom/document.c:1.45 Mon Jan 19 15:54:40 2004 +++ php-src/ext/dom/document.c Tue Jan 20 06:35:32 2004 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: document.c,v 1.45 2004/01/19 20:54:40 chregu Exp $ */ +/* $Id: document.c,v 1.46 2004/01/20 11:35:32 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1288,6 +1288,11 @@ return; } + if (!source_len) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty string supplied as input"); + RETURN_FALSE; + } + newdoc = dom_document_parser(id, mode, source TSRMLS_CC); if (!newdoc) @@ -1721,6 +1726,7 @@ } if (!source_len) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty string supplied as input"); RETURN_FALSE; } http://cvs.php.net/diff.php/php-src/ext/dom/dom_iterators.c?r1=1.5&r2=1.6&ty=u Index: php-src/ext/dom/dom_iterators.c diff -u php-src/ext/dom/dom_iterators.c:1.5 php-src/ext/dom/dom_iterators.c:1.6 --- php-src/ext/dom/dom_iterators.c:1.5 Sat Jan 10 06:50:25 2004 +++ php-src/ext/dom/dom_iterators.c Tue Jan 20 06:35:32 2004 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dom_iterators.c,v 1.5 2004/01/10 11:50:25 rrichards Exp $ */ +/* $Id: dom_iterators.c,v 1.6 2004/01/20 11:35:32 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -206,6 +206,7 @@ zend_hash_move_forward(nodeht); if (zend_hash_get_current_data(nodeht, (void **) &entry)==SUCCESS) { curattr = *entry; + curattr->refcount++; } } else { curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->ptr)->node; @@ -273,6 +274,7 @@ zend_hash_internal_pointer_reset(nodeht); if (zend_hash_get_current_data(nodeht, (void **) &entry)==SUCCESS) { curattr = *entry; + curattr->refcount++; } } else { nodep = (xmlNode *)dom_object_get_node(objmap->baseobj); http://cvs.php.net/diff.php/php-src/ext/dom/xpath.c?r1=1.13&r2=1.14&ty=u Index: php-src/ext/dom/xpath.c diff -u php-src/ext/dom/xpath.c:1.13 php-src/ext/dom/xpath.c:1.14 --- php-src/ext/dom/xpath.c:1.13 Tue Jan 20 02:27:47 2004 +++ php-src/ext/dom/xpath.c Tue Jan 20 06:35:32 2004 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xpath.c,v 1.13 2004/01/20 07:27:47 helly Exp $ */ +/* $Id: xpath.c,v 1.14 2004/01/20 11:35:32 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -252,7 +252,7 @@ add_next_index_zval(retval, child); } } else { - RETURN_FALSE; + retval = NULL; } php_dom_create_interator(return_value, DOM_NODELIST TSRMLS_CC);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php