Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix mb_ord() crash if internal encoding not supported
This commit is contained in:
Nikita Popov 2020-01-29 16:19:21 +01:00
commit 2e97ae91c8
2 changed files with 9 additions and 4 deletions

View file

@ -4440,7 +4440,7 @@ static inline zend_long php_mb_ord(const char *str, size_t str_len, zend_string
no_enc = enc->no_encoding; no_enc = enc->no_encoding;
if (php_mb_is_unsupported_no_encoding(no_enc)) { if (php_mb_is_unsupported_no_encoding(no_enc)) {
php_error_docref(NULL, E_WARNING, "Unsupported encoding \"%s\"", ZSTR_VAL(enc_name)); php_error_docref(NULL, E_WARNING, "Unsupported encoding \"%s\"", enc->name);
return -1; return -1;
} }

View file

@ -19,6 +19,9 @@ var_dump(
mb_ord("\u{d800}", "utf-7"), mb_ord("\u{d800}", "utf-7"),
mb_ord("") mb_ord("")
); );
mb_internal_encoding("utf-7");
mb_ord("");
?> ?>
--EXPECTF-- --EXPECTF--
bool(true) bool(true)
@ -29,11 +32,11 @@ Warning: mb_ord(): Unknown encoding "typo" %s 10
Warning: mb_ord(): Unsupported encoding "pass" %s 11 Warning: mb_ord(): Unsupported encoding "pass" %s 11
Warning: mb_ord(): Unsupported encoding "jis" %s 12 Warning: mb_ord(): Unsupported encoding "JIS" in %s on line %d
Warning: mb_ord(): Unsupported encoding "cp50222" %s 13 Warning: mb_ord(): Unsupported encoding "CP50222" in %s on line %d
Warning: mb_ord(): Unsupported encoding "utf-7" %s 14 Warning: mb_ord(): Unsupported encoding "UTF-7" in %s on line %d
Warning: mb_ord(): Empty string in %s on line %d Warning: mb_ord(): Empty string in %s on line %d
bool(false) bool(false)
@ -42,3 +45,5 @@ bool(false)
bool(false) bool(false)
bool(false) bool(false)
bool(false) bool(false)
Warning: mb_ord(): Unsupported encoding "UTF-7" in %s on line %d