From 9b0df97a42749464069859c5ca77c0241a8b05ca Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Sat, 30 Jun 2018 20:10:57 +0200 Subject: Fix handling of void return type on internal functions --- Zend/zend_execute.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'Zend') diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index f88fac6c88..60953ee354 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1042,9 +1042,12 @@ static int zend_verify_internal_return_type(zend_function *zf, zval *ret) zend_internal_arg_info *ret_info = zf->internal_function.arg_info - 1; zend_class_entry *ce = NULL; - if (UNEXPECTED(ret_info->type_hint == IS_VOID && Z_TYPE_P(ret) != IS_NULL)) { - zend_verify_void_return_error(zf, zend_zval_type_name(ret), ""); - return 0; + if (ret_info->type_hint == IS_VOID) { + if (UNEXPECTED(Z_TYPE_P(ret) != IS_NULL)) { + zend_verify_void_return_error(zf, zend_zval_type_name(ret), ""); + return 0; + } + return 1; } if (UNEXPECTED(!zend_check_internal_type(zf, ret_info, ret, &ce, 1))) { -- cgit v1.2.1