]> granicus.if.org Git - php/commitdiff
Throw on invalid mb_http_input() type
authorNikita Popov <nikita.ppv@gmail.com>
Mon, 7 Sep 2020 07:59:51 +0000 (09:59 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 7 Sep 2020 07:59:51 +0000 (09:59 +0200)
ext/mbstring/mbstring.c
ext/mbstring/tests/mb_http_input.phpt

index 050afa26e677ffb0be43d3c4a47d46810ea6365d..2812580817eedd46372809f21f71bba56743fd1d 100644 (file)
@@ -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();
                }
        }
 
index a81969ffff1e7b400c1a81a7993492c2e0089c40..e6bb0528ec428e09025795a2f8dfebbcbbf71445 100644 (file)
@@ -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"