mirror of
https://github.com/php/php-src.git
synced 2024-11-23 18:04:36 +08:00
Do not allow zend.script_encoding to be set to 'pass'
When investigating another bug reported by GitHub user 'tstangner',
I discovered that PHP segfaults when the INI parameter
zend.script_encoding is set to "pass". This bug dates back to
December 2022 (caused by yours truly in 953864661a
).
If any PHP users in the wild were actually setting zend.script_encoding
to "pass" (which would be an utterly useless thing to do), I expect that
someone would have filed a bug report by now. The absence of such bug
reports is evidence that nobody is doing this.
Hence, it seems that the best fix is simply to disallow "pass" as a
choice for zend.script_encoding. The internal function
'php_mb_zend_encoding_list_parser' which I am modifying to accomplish
this has no other in-tree callers, aside from the 'exif' extension.
Further, exif only calls the function with a few hard-coded values, and
none of them are the string "pass", so this change will not have any
impact on exif.
This commit is contained in:
parent
cb97e7d8f3
commit
1e92d47f41
15
Zend/tests/multibyte/multibyte_encoding_007.phpt
Normal file
15
Zend/tests/multibyte/multibyte_encoding_007.phpt
Normal file
@ -0,0 +1,15 @@
|
||||
--TEST--
|
||||
Don't segfault when zend.script_encoding=pass
|
||||
--EXTENSIONS--
|
||||
mbstring
|
||||
--INI--
|
||||
zend.multibyte=1
|
||||
zend.script_encoding=pass
|
||||
internal_encoding=UTF-8
|
||||
--FILE--
|
||||
<?php
|
||||
print "Done!\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
Warning: PHP Startup: INI setting contains invalid encoding "pass" in Unknown on line 0
|
||||
Done!
|
@ -474,7 +474,7 @@ static zend_result php_mb_zend_encoding_list_parser(const char *encoding_list, s
|
||||
return php_mb_parse_encoding_list(
|
||||
encoding_list, encoding_list_len,
|
||||
(const mbfl_encoding ***)return_list, return_size,
|
||||
persistent, /* arg_num */ 0, /* allow_pass_encoding */ 1);
|
||||
persistent, /* arg_num */ 0, /* allow_pass_encoding */ 0);
|
||||
}
|
||||
|
||||
static const zend_encoding *php_mb_zend_internal_encoding_getter(void)
|
||||
|
Loading…
Reference in New Issue
Block a user