summaryrefslogtreecommitdiff
path: root/ext/mbstring
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-05-07 14:43:36 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-05-07 14:44:13 +0200
commit481b7421f3dc2f2706e54dc1b8d4701960fde4aa (patch)
tree49e628b990e0eb7df511aa4612ee57d1d4cbee65 /ext/mbstring
parent98acdbff1832cc7b7f1187e4d9feff1c99835c9b (diff)
downloadphp-git-481b7421f3dc2f2706e54dc1b8d4701960fde4aa.tar.gz
Throw warning if invalid internal_encoding ini is specified
Diffstat (limited to 'ext/mbstring')
-rw-r--r--ext/mbstring/mbstring.c4
-rw-r--r--ext/mbstring/tests/ini_mbstring_invalid.phpt3
-rw-r--r--ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt3
3 files changed, 10 insertions, 0 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index f42b449c34..84e28f4a4b 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -898,6 +898,10 @@ static int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, siz
if (!new_value || !new_value_length || !(encoding = mbfl_name2encoding(new_value))) {
/* falls back to UTF-8 if an unknown encoding name is given */
+ if (new_value) {
+ php_error_docref("ref.mbstring", E_WARNING,
+ "Unknown encoding \"%s\" in ini setting", new_value);
+ }
encoding = mbfl_no2encoding(mbfl_no_encoding_utf8);
}
MBSTRG(internal_encoding) = encoding;
diff --git a/ext/mbstring/tests/ini_mbstring_invalid.phpt b/ext/mbstring/tests/ini_mbstring_invalid.phpt
index 57f2404fc7..17a1efd245 100644
--- a/ext/mbstring/tests/ini_mbstring_invalid.phpt
+++ b/ext/mbstring/tests/ini_mbstring_invalid.phpt
@@ -23,6 +23,7 @@ PHP Deprecated: PHP Startup: Use of mbstring.http_input is deprecated in Unknow
PHP Warning: PHP Startup: INI setting contains invalid encoding "HTTP_INPUT" in Unknown on line 0
PHP Deprecated: PHP Startup: Use of mbstring.http_output is deprecated in Unknown on line 0
PHP Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
+PHP Warning: PHP Startup: Unknown encoding "UNKNOWN_ENCODING" in ini setting in Unknown on line 0
Warning: PHP Startup: INI setting contains invalid encoding "DETECT_ORDER" in Unknown on line 0
@@ -33,3 +34,5 @@ Warning: PHP Startup: INI setting contains invalid encoding "HTTP_INPUT" in Unkn
Deprecated: PHP Startup: Use of mbstring.http_output is deprecated in Unknown on line 0
Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
+
+Warning: PHP Startup: Unknown encoding "UNKNOWN_ENCODING" in ini setting in Unknown on line 0
diff --git a/ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt b/ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt
index 9f3ce5f8c5..4d2fb1eca1 100644
--- a/ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt
+++ b/ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt
@@ -21,8 +21,11 @@ echo ini_get('mbstring.internal_encoding')."\n";
?>
--EXPECT--
PHP Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
+PHP Warning: PHP Startup: Unknown encoding "BAD" in ini setting in Unknown on line 0
Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
+
+Warning: PHP Startup: Unknown encoding "BAD" in ini setting in Unknown on line 0
*** Testing INI mbstring.internal_encoding: invalid encoding specified in INI ***
UTF-8
BAD