From 30bc5adf3bd9f0d65faddb2c79d166e134c63453 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Tue, 23 May 2006 22:21:52 +0000 Subject: [PATCH] - Handle NULL in C argument parsing correct --- Zend/zend_API.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 56389e077d..9ff45fc123 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -721,6 +721,10 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp zend_class_entry **lookup, **pce = va_arg(*va, zend_class_entry **); zend_class_entry *ce_base = *pce; + if (return_null && Z_TYPE_PP(arg) == IS_NULL) { + *pce = NULL; + break; + } convert_to_text_ex(arg); if (zend_u_lookup_class(Z_TYPE_PP(arg), Z_UNIVAL_PP(arg), Z_UNILEN_PP(arg), &lookup TSRMLS_CC) == FAILURE) { *pce = NULL; @@ -738,7 +742,7 @@ static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **sp return ""; } } - if (!*pce && !return_null) { + if (!*pce) { char *space; zstr class_name = get_active_class_name(&space TSRMLS_CC); zend_error(E_WARNING, "%v%s%v() expects parameter %d to be a valid class name, '%v' given", -- 2.50.1