From: Marcus Boerger Date: Tue, 23 May 2006 22:21:52 +0000 (+0000) Subject: - Handle NULL in C argument parsing correct X-Git-Tag: BEFORE_NEW_OUTPUT_API~113 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=30bc5adf3bd9f0d65faddb2c79d166e134c63453;p=php - Handle NULL in C argument parsing correct --- 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",