From 5bd443a4520a542cd3f86f9d549eca78f693f730 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sat, 10 May 2014 11:39:08 -0300 Subject: - Fixed missing NULL check --- ext/simplexml/simplexml.c | 9 ++++++--- ext/simplexml/tests/SimpleXMLElement_getDocNamespaces.phpt | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 ext/simplexml/tests/SimpleXMLElement_getDocNamespaces.phpt (limited to 'ext/simplexml') diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c index 15a8512a43..006d6c9491 100644 --- a/ext/simplexml/simplexml.c +++ b/ext/simplexml/simplexml.c @@ -1533,15 +1533,18 @@ SXE_METHOD(getDocNamespaces) return; } - array_init(return_value); - sxe = php_sxe_fetch_object(getThis() TSRMLS_CC); if(from_root){ node = xmlDocGetRootElement((xmlDocPtr)sxe->document->ptr); }else{ GET_NODE(sxe, node); } - + + if (node == NULL) { + RETURN_FALSE; + } + + array_init(return_value); sxe_add_registered_namespaces(sxe, node, recursive, return_value TSRMLS_CC); } /* }}} */ diff --git a/ext/simplexml/tests/SimpleXMLElement_getDocNamespaces.phpt b/ext/simplexml/tests/SimpleXMLElement_getDocNamespaces.phpt new file mode 100644 index 0000000000..9df7591003 --- /dev/null +++ b/ext/simplexml/tests/SimpleXMLElement_getDocNamespaces.phpt @@ -0,0 +1,9 @@ +--TEST-- +Testing getDocNamespaces() with invalid XML +--FILE-- +getDocNamespaces()); +?> +--EXPECTF-- +bool(false) -- cgit v1.2.1