From: Nikita Popov Date: Mon, 7 Sep 2020 07:59:51 +0000 (+0200) Subject: Throw on invalid mb_http_input() type X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=623bf96e7e37a05622df163a228c8e1c3f7d0b02;p=php Throw on invalid mb_http_input() type --- 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"