diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-07 09:59:51 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-07 09:59:51 +0200 |
commit | 623bf96e7e37a05622df163a228c8e1c3f7d0b02 (patch) | |
tree | 8c3ca2f67926a461c8db61a236168c215d3a765d | |
parent | ace876cdd66dc79be1c3a763bd2865dd88e723e7 (diff) | |
download | php-git-623bf96e7e37a05622df163a228c8e1c3f7d0b02.tar.gz |
Throw on invalid mb_http_input() type
-rw-r--r-- | ext/mbstring/mbstring.c | 6 | ||||
-rw-r--r-- | ext/mbstring/tests/mb_http_input.phpt | 17 |
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" |