mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
ext/mbstring: Always pass length to php_mb_get_encoding_or_pass()
We have access to this information, so propagate it instead of calling strlen(). This also removes the newly introduced _ex() variant.
This commit is contained in:
parent
b61479bb28
commit
86dfbadc06
@ -269,12 +269,12 @@ static const mbfl_encoding *php_mb_get_encoding(zend_string *encoding_name, uint
|
||||
}
|
||||
}
|
||||
|
||||
static const mbfl_encoding *php_mb_get_encoding_or_pass(const char *encoding_name) {
|
||||
if (strcmp(encoding_name, "pass") == 0) {
|
||||
static const mbfl_encoding *php_mb_get_encoding_or_pass(const char *encoding_name, size_t encoding_name_len) {
|
||||
if (strncmp(encoding_name, "pass", encoding_name_len) == 0) {
|
||||
return &mbfl_encoding_pass;
|
||||
}
|
||||
|
||||
return mbfl_name2encoding(encoding_name);
|
||||
return mbfl_name2encoding_ex(encoding_name, encoding_name_len);
|
||||
}
|
||||
|
||||
static size_t count_commas(const char *p, const char *end) {
|
||||
@ -761,7 +761,7 @@ static PHP_INI_MH(OnUpdate_mbstring_http_input)
|
||||
/* }}} */
|
||||
|
||||
static zend_result _php_mb_ini_mbstring_http_output_set(const char *new_value, size_t length) {
|
||||
const mbfl_encoding *encoding = php_mb_get_encoding_or_pass(new_value);
|
||||
const mbfl_encoding *encoding = php_mb_get_encoding_or_pass(new_value, length);
|
||||
if (!encoding) {
|
||||
return FAILURE;
|
||||
}
|
||||
@ -1348,7 +1348,7 @@ PHP_FUNCTION(mb_http_output)
|
||||
ZEND_ASSERT(MBSTRG(current_http_output_encoding));
|
||||
RETURN_STRING(MBSTRG(current_http_output_encoding)->name);
|
||||
} else {
|
||||
const mbfl_encoding *encoding = php_mb_get_encoding_or_pass(name);
|
||||
const mbfl_encoding *encoding = php_mb_get_encoding_or_pass(name, name_len);
|
||||
if (!encoding) {
|
||||
zend_argument_value_error(1, "must be a valid encoding, \"%s\" given", name);
|
||||
RETURN_THROWS();
|
||||
|
Loading…
Reference in New Issue
Block a user