]> granicus.if.org Git - php/commitdiff
MFB: Fixed segfault in filter extension when using callbacks.
authorFelipe Pena <felipe@php.net>
Sun, 24 Feb 2008 18:42:09 +0000 (18:42 +0000)
committerFelipe Pena <felipe@php.net>
Sun, 24 Feb 2008 18:42:09 +0000 (18:42 +0000)
ext/filter/filter.c

index 4241547ea7cd08646e81d444a8ea9ab081c060af..73a5a8483be890ee19e2eec8a79f070773a75f6f 100644 (file)
@@ -322,7 +322,7 @@ static void php_zval_filter(zval **value, long filter, long flags, zval *options
        filter_func.function(*value, flags, options, charset TSRMLS_CC);
 
        if (
-               options &&
+               options && (Z_TYPE_P(options) == IS_ARRAY || Z_TYPE_P(options) == IS_OBJECT) &&
                ((flags & FILTER_NULL_ON_FAILURE && Z_TYPE_PP(value) == IS_NULL) || 
                (!(flags & FILTER_NULL_ON_FAILURE) && Z_TYPE_PP(value) == IS_BOOL && Z_LVAL_PP(value) == 0)) &&
                zend_hash_exists(HASH_OF(options), "default", sizeof("default"))