]> granicus.if.org Git - php/commitdiff
Don't handle missing value in zend_verify_arg_error()
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 8 Sep 2020 18:42:45 +0000 (20:42 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 8 Sep 2020 18:42:45 +0000 (20:42 +0200)
This error condition is handled separately, never reaches this
function.

Zend/zend_execute.c

index 2c07eae9eb96ebd2f04a86f16489174687db17da..4c63db6bd27891e948c900dc1fccb22ada245827 100644 (file)
@@ -685,33 +685,29 @@ ZEND_API ZEND_COLD void zend_verify_arg_error(
                return;
        }
 
-       if (value) {
-               zend_verify_type_error_common(
-                       zf, arg_info, value, &fname, &fsep, &fclass, &need_msg, &given_msg);
-
-               if (zf->common.type == ZEND_USER_FUNCTION) {
-                       if (ptr && ptr->func && ZEND_USER_CODE(ptr->func->common.type)) {
-                               zend_type_error("%s%s%s(): Argument #%d ($%s) must be of type %s, %s given, called in %s on line %d",
-                                       fclass, fsep, fname,
-                                       arg_num, ZSTR_VAL(arg_info->name),
-                                       ZSTR_VAL(need_msg), given_msg,
-                                       ZSTR_VAL(ptr->func->op_array.filename), ptr->opline->lineno
-                               );
-                       } else {
-                               zend_type_error("%s%s%s(): Argument #%d ($%s) must be of type %s, %s given",
-                                       fclass, fsep, fname, arg_num, ZSTR_VAL(arg_info->name), ZSTR_VAL(need_msg), given_msg
-                               );
-                       }
+       zend_verify_type_error_common(
+               zf, arg_info, value, &fname, &fsep, &fclass, &need_msg, &given_msg);
+
+       if (zf->common.type == ZEND_USER_FUNCTION) {
+               if (ptr && ptr->func && ZEND_USER_CODE(ptr->func->common.type)) {
+                       zend_type_error("%s%s%s(): Argument #%d ($%s) must be of type %s, %s given, called in %s on line %d",
+                               fclass, fsep, fname,
+                               arg_num, ZSTR_VAL(arg_info->name),
+                               ZSTR_VAL(need_msg), given_msg,
+                               ZSTR_VAL(ptr->func->op_array.filename), ptr->opline->lineno
+                       );
                } else {
                        zend_type_error("%s%s%s(): Argument #%d ($%s) must be of type %s, %s given",
-                               fclass, fsep, fname, arg_num, ((zend_internal_arg_info*) arg_info)->name, ZSTR_VAL(need_msg), given_msg
+                               fclass, fsep, fname, arg_num, ZSTR_VAL(arg_info->name), ZSTR_VAL(need_msg), given_msg
                        );
                }
-
-               zend_string_release(need_msg);
        } else {
-               zend_missing_arg_error(ptr);
+               zend_type_error("%s%s%s(): Argument #%d ($%s) must be of type %s, %s given",
+                       fclass, fsep, fname, arg_num, ((zend_internal_arg_info*) arg_info)->name, ZSTR_VAL(need_msg), given_msg
+               );
        }
+
+       zend_string_release(need_msg);
 }
 
 static zend_bool zend_verify_weak_scalar_type_hint(uint32_t type_mask, zval *arg)