summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-03-09 11:43:10 +0800
committerXinchen Hui <laruence@php.net>2015-03-09 11:43:10 +0800
commit7bf082d63817fca0dd221e451842f92b477f8002 (patch)
treea29d68669066f4d998e41447982ed64c50c4d5ae
parent96f7a33df6e72dc855b82140ab10ddeaaf19b20c (diff)
parent1dc5bd47d8707ba805927681bc878087d6b9b5fa (diff)
downloadphp-git-7bf082d63817fca0dd221e451842f92b477f8002.tar.gz
Merge branch 'filter/adjust-logic' of https://github.com/whatthejeff/php-src
-rw-r--r--ext/filter/filter.c4
-rw-r--r--ext/filter/tests/057.phpt23
2 files changed, 25 insertions, 2 deletions
diff --git a/ext/filter/filter.c b/ext/filter/filter.c
index 107ba86374..475cfccb2e 100644
--- a/ext/filter/filter.c
+++ b/ext/filter/filter.c
@@ -800,7 +800,7 @@ PHP_FUNCTION(filter_input_array)
return;
}
- if (op && (Z_TYPE_P(op) != IS_ARRAY) && (Z_TYPE_P(op) == IS_LONG && !PHP_FILTER_ID_EXISTS(Z_LVAL_P(op)))) {
+ if (op && (Z_TYPE_P(op) != IS_ARRAY) && !(Z_TYPE_P(op) == IS_LONG && PHP_FILTER_ID_EXISTS(Z_LVAL_P(op)))) {
RETURN_FALSE;
}
@@ -845,7 +845,7 @@ PHP_FUNCTION(filter_var_array)
return;
}
- if (op && (Z_TYPE_P(op) != IS_ARRAY) && (Z_TYPE_P(op) == IS_LONG && !PHP_FILTER_ID_EXISTS(Z_LVAL_P(op)))) {
+ if (op && (Z_TYPE_P(op) != IS_ARRAY) && !(Z_TYPE_P(op) == IS_LONG && PHP_FILTER_ID_EXISTS(Z_LVAL_P(op)))) {
RETURN_FALSE;
}
diff --git a/ext/filter/tests/057.phpt b/ext/filter/tests/057.phpt
new file mode 100644
index 0000000000..93ab3eed36
--- /dev/null
+++ b/ext/filter/tests/057.phpt
@@ -0,0 +1,23 @@
+--TEST--
+filter_input_array() and filter_var_array() with invalid $definition arguments
+--SKIPIF--
+<?php if (!extension_loaded("filter")) die("skip"); ?>
+--FILE--
+<?php
+foreach (array(null, true, false, 1, "", new stdClass) as $invalid) {
+ var_dump(filter_input_array(INPUT_POST, $invalid));
+ var_dump(filter_var_array(array(), $invalid));
+}
+--EXPECT--
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)