From: Rob Richards Date: Mon, 2 Jul 2007 11:35:18 +0000 (+0000) Subject: fix bug #41867 (getName is broken) X-Git-Tag: php-5.2.4RC1~249 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4938221a36cb512b5d39330fdad28635f8622395;p=php fix bug #41867 (getName is broken) add test --- diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c index a62151d884..5c7cd60e5c 100644 --- a/ext/simplexml/simplexml.c +++ b/ext/simplexml/simplexml.c @@ -1488,9 +1488,13 @@ SXE_METHOD(getName) sxe = php_sxe_fetch_object(getThis() TSRMLS_CC); GET_NODE(sxe, node); - - namelen = xmlStrlen(node->name); - RETURN_STRINGL((char*)node->name, namelen, 1); + node = php_sxe_get_first_node(sxe, node TSRMLS_CC); + if (node) { + namelen = xmlStrlen(node->name); + RETURN_STRINGL((char*)node->name, namelen, 1); + } else { + RETURN_EMPTY_STRING(); + } } /* }}} */ diff --git a/ext/simplexml/tests/bug41867.phpt b/ext/simplexml/tests/bug41867.phpt new file mode 100644 index 0000000000..f530f95dcc --- /dev/null +++ b/ext/simplexml/tests/bug41867.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #41867 (getName is broken) +--FILE-- +"); +echo $a->getName()."\n"; +echo $a->b->getName()."\n"; +echo $a->b->c->getName(); +?> +--EXPECT-- +a +b +c