From 51d93c194720b2ec0945236667eb9dd0a91d64a2 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Tue, 27 Aug 2024 21:06:29 +0200 Subject: [PATCH] Remove failure paths for infallible code in simplexml For IS_STRING, sxe_object_cast_ex() will call cast_object() which cannot fail for IS_STRING. --- ext/simplexml/simplexml.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c index ef52df4f825..e22a625bf96 100644 --- a/ext/simplexml/simplexml.c +++ b/ext/simplexml/simplexml.c @@ -467,10 +467,9 @@ long_dim: case IS_OBJECT: if (Z_OBJCE_P(value) == ce_SimpleXMLElement) { zval zval_copy; - if (sxe_object_cast_ex(Z_OBJ_P(value), &zval_copy, IS_STRING) == FAILURE) { - zend_throw_error(NULL, "Unable to cast node to string"); - return &EG(error_zval); - } + zend_result rv = sxe_object_cast_ex(Z_OBJ_P(value), &zval_copy, IS_STRING); + ZEND_IGNORE_VALUE(rv); + ZEND_ASSERT(rv == SUCCESS); value_str = Z_STR(zval_copy); break; @@ -1892,10 +1891,9 @@ PHP_METHOD(SimpleXMLElement, __toString) RETURN_THROWS(); } - if (sxe_object_cast_ex(Z_OBJ_P(ZEND_THIS), return_value, IS_STRING) != SUCCESS) { - zval_ptr_dtor(return_value); - RETURN_EMPTY_STRING(); - } + zend_result rv = sxe_object_cast_ex(Z_OBJ_P(ZEND_THIS), return_value, IS_STRING); + ZEND_IGNORE_VALUE(rv); + ZEND_ASSERT(rv == SUCCESS); } /* }}} */