summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-09-07 09:59:51 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-09-07 09:59:51 +0200
commit623bf96e7e37a05622df163a228c8e1c3f7d0b02 (patch)
tree8c3ca2f67926a461c8db61a236168c215d3a765d
parentace876cdd66dc79be1c3a763bd2865dd88e723e7 (diff)
downloadphp-git-623bf96e7e37a05622df163a228c8e1c3f7d0b02.tar.gz
Throw on invalid mb_http_input() type
-rw-r--r--ext/mbstring/mbstring.c6
-rw-r--r--ext/mbstring/tests/mb_http_input.phpt17
2 files changed, 20 insertions, 3 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 050afa26e6..2812580817 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -1377,9 +1377,9 @@ PHP_FUNCTION(mb_http_input)
mbfl_string_clear(&result);
return;
default:
- // TODO ValueError
- encoding = MBSTRG(http_input_identify);
- break;
+ zend_argument_value_error(1,
+ "must be one of \"G\", \"P\", \"C\", \"S\", \"I\" or \"L\"");
+ RETURN_THROWS();
}
}
diff --git a/ext/mbstring/tests/mb_http_input.phpt b/ext/mbstring/tests/mb_http_input.phpt
index a81969ffff..e6bb0528ec 100644
--- a/ext/mbstring/tests/mb_http_input.phpt
+++ b/ext/mbstring/tests/mb_http_input.phpt
@@ -20,6 +20,15 @@ echo $_GET['b']."\n";
// Get encoding
var_dump(mb_http_input('P'));
var_dump(mb_http_input('G'));
+var_dump(mb_http_input('C'));
+var_dump(mb_http_input('S'));
+var_dump(mb_http_input('I'));
+var_dump(mb_http_input('L'));
+try {
+ var_dump(mb_http_input('Q'));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
?>
--EXPECT--
@@ -27,3 +36,11 @@ var_dump(mb_http_input('G'));
ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê
string(10) "ISO-8859-1"
string(10) "ISO-8859-1"
+bool(false)
+bool(false)
+array(1) {
+ [0]=>
+ string(10) "ISO-8859-1"
+}
+string(10) "ISO-8859-1"
+mb_http_input(): Argument #1 ($type) must be one of "G", "P", "C", "S", "I" or "L"