From db25a23ed82951ae21184fbae93b008076cae517 Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Wed, 11 Oct 2006 14:48:33 +0000 Subject: [PATCH] - Change validating filters to return "null" on failure so that they can be distinguised from the value "false" which might be valid as well. --- ext/filter/logical_filters.c | 44 +++++++++++++++---------------- ext/filter/tests/010.phpt | 12 ++++----- ext/filter/tests/013.phpt | 32 +++++++++++----------- ext/filter/tests/014.phpt | 6 ++--- ext/filter/tests/015.phpt | 12 ++++----- ext/filter/tests/016.phpt | 12 ++++----- ext/filter/tests/017.phpt | 8 +++--- ext/filter/tests/018.phpt | 20 +++++++------- ext/filter/tests/019.phpt | 8 +++--- ext/filter/tests/031.phpt | 6 ++--- ext/filter/tests/034.phpt | 3 ++- ext/filter/tests/bug8315.phpt | 4 +-- ext/filter/tests/filter_data.phpt | 8 +++--- 13 files changed, 88 insertions(+), 87 deletions(-) diff --git a/ext/filter/logical_filters.c b/ext/filter/logical_filters.c index 7d258e0ddb..21169df5e9 100644 --- a/ext/filter/logical_filters.c +++ b/ext/filter/logical_filters.c @@ -177,7 +177,7 @@ void php_filter_int(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ if (len == 0) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } @@ -217,7 +217,7 @@ void php_filter_int(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ if (error > 0 || (min_range_set && (ctx_value < min_range)) || (max_range_set && (ctx_value > max_range))) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } else { zval_dtor(value); Z_TYPE_P(value) = IS_LONG; @@ -237,7 +237,7 @@ void php_filter_boolean(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ PHP_FILTER_TRIM_DEFAULT(str, len, end); } else { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } @@ -286,7 +286,7 @@ void php_filter_float(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ if (len < 1) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } @@ -425,7 +425,7 @@ stateT: stateError: zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } /* }}} */ @@ -451,21 +451,21 @@ void php_filter_validate_regexp(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ if (!regexp_set) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "'regexp' option missing"); zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } re = pcre_get_compiled_regex(regexp, &pcre_extra, &preg_options TSRMLS_CC); if (!re) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } matches = pcre_exec(re, NULL, Z_STRVAL_P(value), Z_STRLEN_P(value), 0, 0, ovector, 3); /* 0 means that the vector is too small to hold all the captured substring offsets */ if (matches < 0) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } } /* }}} */ @@ -479,25 +479,25 @@ void php_filter_validate_url(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ if (url == NULL) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } if ((flags & FILTER_FLAG_SCHEME_REQUIRED) && url->scheme == NULL) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } if ((flags & FILTER_FLAG_HOST_REQUIRED) && url->host == NULL) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } if ((flags & FILTER_FLAG_PATH_REQUIRED) && url->path == NULL) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } if ((flags & FILTER_FLAG_QUERY_REQUIRED) && url->query == NULL) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } php_url_free(url); } @@ -518,14 +518,14 @@ void php_filter_validate_email(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ re = pcre_get_compiled_regex((char *)regexp, &pcre_extra, &preg_options TSRMLS_CC); if (!re) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } matches = pcre_exec(re, NULL, Z_STRVAL_P(value), Z_STRLEN_P(value), 0, 0, ovector, 3); /* 0 means that the vector is too small to hold all the captured substring offsets */ if (matches < 0) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); } } @@ -767,7 +767,7 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ mode = FORMAT_IPV4; } else { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } @@ -775,11 +775,11 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ /* Both formats are cool */ } else if ((flags & FILTER_FLAG_IPV4) && mode == FORMAT_IPV6) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } else if ((flags & FILTER_FLAG_IPV6) && mode == FORMAT_IPV4) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } @@ -787,7 +787,7 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ case FORMAT_IPV4: if (!_php_filter_validate_ipv4(str, ip TSRMLS_CC)) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } @@ -799,7 +799,7 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ (ip[0] == 192 && ip[1] == 168) ) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } } @@ -812,7 +812,7 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ (ip[0] >= 224 && ip[0] <= 255) ) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } } @@ -824,7 +824,7 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */ res = _php_filter_validate_ipv6_(str TSRMLS_CC); if (res < 1) { zval_dtor(value); - ZVAL_BOOL(value, 0); + ZVAL_NULL(value); return; } } diff --git a/ext/filter/tests/010.phpt b/ext/filter/tests/010.phpt index 1a385ff373..0de3467cec 100644 --- a/ext/filter/tests/010.phpt +++ b/ext/filter/tests/010.phpt @@ -21,13 +21,13 @@ array(7) { [1]=> int(1) [2]=> - bool(false) + NULL [3]=> int(-23234) [4]=> - bool(false) + NULL [5]=> - bool(false) + NULL [6]=> array(0) { } @@ -38,13 +38,13 @@ array(7) { [1]=> float(1.7) [2]=> - bool(false) + NULL [3]=> float(-23234.123) [4]=> - bool(false) + NULL [5]=> - bool(false) + NULL [6]=> array(0) { } diff --git a/ext/filter/tests/013.phpt b/ext/filter/tests/013.phpt index 55c71e3535..d88145a6e7 100644 --- a/ext/filter/tests/013.phpt +++ b/ext/filter/tests/013.phpt @@ -49,24 +49,24 @@ int(255) int(7) int(16711680) int(438) -bool(false) +NULL int(0) int(0) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) +NULL +NULL +NULL +NULL +NULL +NULL +NULL int(6) -bool(false) -bool(false) +NULL +NULL int(-1) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) +NULL +NULL +NULL +NULL +NULL +NULL Done diff --git a/ext/filter/tests/014.phpt b/ext/filter/tests/014.phpt index ffee527f00..f12eac0ed4 100644 --- a/ext/filter/tests/014.phpt +++ b/ext/filter/tests/014.phpt @@ -34,7 +34,7 @@ echo "Done\n"; ?> --EXPECTF-- bool(false) -bool(false) +NULL bool(false) array(5) { [0]=> @@ -48,7 +48,7 @@ array(5) { [4]=> array(2) { [0]=> - bool(false) + NULL [1]=> bool(false) } @@ -61,7 +61,7 @@ bool(true) bool(false) bool(true) bool(false) -bool(false) +NULL bool(false) bool(false) bool(false) diff --git a/ext/filter/tests/015.phpt b/ext/filter/tests/015.phpt index 682ed19e4d..67c506f3d0 100644 --- a/ext/filter/tests/015.phpt +++ b/ext/filter/tests/015.phpt @@ -52,20 +52,20 @@ string(18) "file:///tmp/test.c" string(26) "ftp://ftp.example.com/tmp/" string(11) "/tmp/test.c" string(1) "/" -bool(false) +NULL string(6) "http:/" string(5) "http:" string(4) "http" string(0) "" string(2) "-1" bool(false) -bool(false) +NULL string(10) "http://qwe" -bool(false) -bool(false) +NULL +NULL string(22) "http://www.example.com" -bool(false) +NULL string(42) "http://www.example.com/path/at/the/server/" -bool(false) +NULL string(40) "http://www.example.com/index.php?a=b&c=d" Done diff --git a/ext/filter/tests/016.phpt b/ext/filter/tests/016.phpt index 67921f0188..d1c959c119 100644 --- a/ext/filter/tests/016.phpt +++ b/ext/filter/tests/016.phpt @@ -22,11 +22,11 @@ echo "Done\n"; --EXPECT-- string(5) "a@b.c" string(17) "abuse@example.com" -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) +NULL +NULL +NULL +NULL +NULL +NULL string(57) "QWERTYUIOPASDFGHJKLZXCVBNM@QWERTYUIOPASDFGHJKLZXCVBNM.NET" Done diff --git a/ext/filter/tests/017.phpt b/ext/filter/tests/017.phpt index 661dfe40ff..2b2d9de889 100644 --- a/ext/filter/tests/017.phpt +++ b/ext/filter/tests/017.phpt @@ -14,11 +14,11 @@ echo "Done\n"; ?> --EXPECTF-- string(4) "data" -bool(false) +NULL string(4) "data" -bool(false) -bool(false) +NULL +NULL Warning: filter_var(): 'regexp' option missing in %s on line %d -bool(false) +NULL Done diff --git a/ext/filter/tests/018.phpt b/ext/filter/tests/018.phpt index 7ea17b329c..5b0b16da28 100644 --- a/ext/filter/tests/018.phpt +++ b/ext/filter/tests/018.phpt @@ -27,24 +27,24 @@ echo "Done\n"; ?> --EXPECT-- string(11) "192.168.0.1" -bool(false) +NULL string(3) "::1" string(7) "fe00::0" -bool(false) -bool(false) +NULL +NULL string(9) "127.0.0.1" -bool(false) +NULL string(12) "192.0.34.166" string(9) "127.0.0.1" string(9) "192.0.0.1" string(12) "192.0.34.166" -bool(false) +NULL string(15) "255.255.255.255" -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) +NULL +NULL +NULL +NULL +NULL string(3) "::1" string(9) "127.0.0.1" Done diff --git a/ext/filter/tests/019.phpt b/ext/filter/tests/019.phpt index 712c0ac459..e8c85c8243 100644 --- a/ext/filter/tests/019.phpt +++ b/ext/filter/tests/019.phpt @@ -12,9 +12,9 @@ var_dump(filter_var("1.1.1.1", FILTER_VALIDATE_IP)); echo "Done\n"; ?> --EXPECTF-- -bool(false) -bool(false) -bool(false) -bool(false) +NULL +NULL +NULL +NULL string(7) "1.1.1.1" Done diff --git a/ext/filter/tests/031.phpt b/ext/filter/tests/031.phpt index 74883b8b26..81dcc1c0e9 100644 --- a/ext/filter/tests/031.phpt +++ b/ext/filter/tests/031.phpt @@ -45,10 +45,10 @@ float(7000) float(0.007) custom decimal: -bool(false) +NULL float(1.234) float(1.234) Warning: filter_var(): decimal separator must be one char in %s on line %d -bool(false) -bool(false) +NULL +NULL diff --git a/ext/filter/tests/034.phpt b/ext/filter/tests/034.phpt index d6f4e846ff..a041786639 100644 --- a/ext/filter/tests/034.phpt +++ b/ext/filter/tests/034.phpt @@ -15,7 +15,8 @@ $booleans = array( 'False' => false, 'faLsE' => false, 'oFf' => false, -'' => false + +'' => null ); foreach($booleans as $val=>$exp) { diff --git a/ext/filter/tests/bug8315.phpt b/ext/filter/tests/bug8315.phpt index 35d9f8950a..ae2ac45f85 100644 --- a/ext/filter/tests/bug8315.phpt +++ b/ext/filter/tests/bug8315.phpt @@ -9,5 +9,5 @@ $var="3".chr(0)."foo"; var_dump(filter_var($var, FILTER_VALIDATE_FLOAT)); ?> --EXPECTF-- -bool(false) -bool(false) +NULL +NULL diff --git a/ext/filter/tests/filter_data.phpt b/ext/filter/tests/filter_data.phpt index 14e8545c9b..9ae9ab17bf 100644 --- a/ext/filter/tests/filter_data.phpt +++ b/ext/filter/tests/filter_data.phpt @@ -46,7 +46,7 @@ int(123) int(-123) int(0) int(123) -bool(false) +NULL float(-0.123) float(0) @@ -54,7 +54,7 @@ float(1.23) float(-1.23) float(0) float(1.23) -bool(false) +NULL bool(true) bool(false) @@ -67,5 +67,5 @@ bool(false) bool(true) bool(false) bool(true) -bool(false) -bool(false) +NULL +NULL -- 2.50.1