rrichards Fri Mar 13 13:41:43 2009 UTC Added files: (Branch: PHP_5_2) /php-src/ext/dom/tests bug47430.phpt
Modified files: /php-src/ext/dom attr.c document.c node.c Log: fix bug #47430 (Errors after writing to nodeValue parameter of an absent previousSibling) add test http://cvs.php.net/viewvc.cgi/php-src/ext/dom/attr.c?r1=1.18.2.2.2.5&r2=1.18.2.2.2.6&diff_format=u Index: php-src/ext/dom/attr.c diff -u php-src/ext/dom/attr.c:1.18.2.2.2.5 php-src/ext/dom/attr.c:1.18.2.2.2.6 --- php-src/ext/dom/attr.c:1.18.2.2.2.5 Wed Dec 31 11:17:37 2008 +++ php-src/ext/dom/attr.c Fri Mar 13 13:41:42 2009 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: attr.c,v 1.18.2.2.2.5 2008/12/31 11:17:37 sebastian Exp $ */ +/* $Id: attr.c,v 1.18.2.2.2.6 2009/03/13 13:41:42 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -29,7 +29,6 @@ #include "php_dom.h" - /* {{{ arginfo */ static ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_attr_is_id, 0, 0, 0) @@ -99,7 +98,6 @@ /* }}} end DOMAttr::__construct */ - /* {{{ name string readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-1112119403 @@ -124,8 +122,6 @@ /* }}} */ - - /* {{{ specified boolean readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-862529273 @@ -141,8 +137,6 @@ /* }}} */ - - /* {{{ value string readonly=no URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-221662474 @@ -210,8 +204,6 @@ /* }}} */ - - /* {{{ ownerElement DOMElement readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Attr-ownerElement @@ -229,13 +221,14 @@ return FAILURE; } + ALLOC_ZVAL(*retval); + nodeparent = nodep->parent; if (!nodeparent) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); - if (NULL == (*retval = php_dom_create_object(nodeparent, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; @@ -246,8 +239,6 @@ /* }}} */ - - /* {{{ schemaTypeInfo DOMTypeInfo readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Attr-schemaTypeInfo @@ -263,8 +254,6 @@ /* }}} */ - - /* {{{ proto boolean dom_attr_is_id(); URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Attr-isId Since: DOM Level 3 http://cvs.php.net/viewvc.cgi/php-src/ext/dom/document.c?r1=1.68.2.3.2.11&r2=1.68.2.3.2.12&diff_format=u Index: php-src/ext/dom/document.c diff -u php-src/ext/dom/document.c:1.68.2.3.2.11 php-src/ext/dom/document.c:1.68.2.3.2.12 --- php-src/ext/dom/document.c:1.68.2.3.2.11 Mon Jan 26 19:11:19 2009 +++ php-src/ext/dom/document.c Fri Mar 13 13:41:42 2009 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: document.c,v 1.68.2.3.2.11 2009/01/26 19:11:19 rrichards Exp $ */ +/* $Id: document.c,v 1.68.2.3.2.12 2009/03/13 13:41:42 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -283,12 +283,14 @@ return FAILURE; } + ALLOC_ZVAL(*retval); + dtdptr = xmlGetIntSubset(docp); if (!dtdptr) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); if (NULL == (*retval = php_dom_create_object((xmlNodePtr) dtdptr, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; @@ -299,8 +301,6 @@ /* }}} */ - - /* {{{ implementation DOMImplementation readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1B793EBA @@ -315,8 +315,6 @@ /* }}} */ - - /* {{{ documentElement DOMElement readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-87CD092 @@ -335,12 +333,14 @@ return FAILURE; } + ALLOC_ZVAL(*retval); + root = xmlDocGetRootElement(docp); if (!root) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); if (NULL == (*retval = php_dom_create_object(root, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; @@ -421,8 +421,6 @@ /* }}} */ - - /* {{{ standalone boolean readonly=no URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-standalone @@ -487,8 +485,6 @@ /* }}} */ - - /* {{{ version string readonly=no URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-version http://cvs.php.net/viewvc.cgi/php-src/ext/dom/node.c?r1=1.37.2.3.2.13&r2=1.37.2.3.2.14&diff_format=u Index: php-src/ext/dom/node.c diff -u php-src/ext/dom/node.c:1.37.2.3.2.13 php-src/ext/dom/node.c:1.37.2.3.2.14 --- php-src/ext/dom/node.c:1.37.2.3.2.13 Wed Dec 31 11:17:37 2008 +++ php-src/ext/dom/node.c Fri Mar 13 13:41:42 2009 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: node.c,v 1.37.2.3.2.13 2008/12/31 11:17:37 sebastian Exp $ */ +/* $Id: node.c,v 1.37.2.3.2.14 2009/03/13 13:41:42 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -260,7 +260,6 @@ break; default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Node Type"); - return FAILURE; } ALLOC_ZVAL(*retval); @@ -428,13 +427,14 @@ return FAILURE; } + ALLOC_ZVAL(*retval); + nodeparent = nodep->parent; if (!nodeparent) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); - if (NULL == (*retval = php_dom_create_object(nodeparent, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; @@ -501,12 +501,13 @@ first = nodep->children; } + ALLOC_ZVAL(*retval); + if (!first) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); - if (NULL == (*retval = php_dom_create_object(first, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; @@ -539,12 +540,13 @@ last = nodep->last; } + ALLOC_ZVAL(*retval); + if (!last) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); - if (NULL == (*retval = php_dom_create_object(last, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; @@ -573,13 +575,14 @@ return FAILURE; } + ALLOC_ZVAL(*retval); + prevsib = nodep->prev; if (!prevsib) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); - if (NULL == (*retval = php_dom_create_object(prevsib, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; http://cvs.php.net/viewvc.cgi/php-src/ext/dom/tests/bug47430.phpt?view=markup&rev=1.1 Index: php-src/ext/dom/tests/bug47430.phpt +++ php-src/ext/dom/tests/bug47430.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php