]> granicus.if.org Git - php/commitdiff
Improve parameter parsing
authorIlia Alshanetsky <iliaa@php.net>
Mon, 9 Oct 2006 19:48:13 +0000 (19:48 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 9 Oct 2006 19:48:13 +0000 (19:48 +0000)
ext/filter/filter.c

index 55c86516c0c0b2e0c7de3c87a3983e25ecbdccb2..95f1cce5305b06ea56551bd338908f5ff7612838 100644 (file)
@@ -644,16 +644,18 @@ static void php_filter_array_handler(zval *input, zval **op, zval *return_value
 PHP_FUNCTION(filter_input)
 {
        long   fetch_from, filter = FILTER_DEFAULT;
-       zval **filter_args = NULL, **data=NULL, **tmp;
+       zval **filter_args = NULL, **tmp;
        zval  *input = NULL;
+       char *var;
+       int var_len;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lZ|lZ", &fetch_from, &data, &filter, &filter_args) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls|lZ", &fetch_from, &var, &var_len, &filter, &filter_args) == FAILURE) {
                RETURN_FALSE;
        }
 
        input = php_filter_get_storage(fetch_from TSRMLS_CC);
 
-       if (!input || !HASH_OF(input) || zend_hash_find(HASH_OF(input), Z_STRVAL_PP(data), Z_STRLEN_PP(data) + 1, (void **)&tmp) != SUCCESS) {
+       if (!input || !HASH_OF(input) || zend_hash_find(HASH_OF(input), var, var_len + 1, (void **)&tmp) != SUCCESS) {
                RETURN_FALSE;
        }