diff options
author | Marcus Boerger <helly@php.net> | 2006-05-23 22:22:11 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2006-05-23 22:22:11 +0000 |
commit | f88a17295975291448e2e1a7ac739344fda7ec59 (patch) | |
tree | 5afc59b47fbb0a7843fcfb06bba40c17ee70ec99 /Zend/zend_API.c | |
parent | 64701cf42b027cfcadba0b8cc3597a23a5351102 (diff) | |
download | php-git-f88a17295975291448e2e1a7ac739344fda7ec59.tar.gz |
- MFH Handle NULL in C argument parsing correct
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r-- | Zend/zend_API.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 26c2dc23df..2cd889932c 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -514,6 +514,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_string_ex(arg); if (zend_lookup_class(Z_STRVAL_PP(arg), Z_STRLEN_PP(arg), &lookup TSRMLS_CC) == FAILURE) { *pce = NULL; @@ -531,7 +535,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; char *class_name = get_active_class_name(&space TSRMLS_CC); zend_error(E_WARNING, "%s%s%s() expects parameter %d to be a valid class name, '%s' given", |