Skip to content

Commit 86dfbad

Browse files
committed
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.
1 parent b61479b commit 86dfbad

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

ext/mbstring/mbstring.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -269,12 +269,12 @@ static const mbfl_encoding *php_mb_get_encoding(zend_string *encoding_name, uint
269269
}
270270
}
271271

272-
static const mbfl_encoding *php_mb_get_encoding_or_pass(const char *encoding_name) {
273-
if (strcmp(encoding_name, "pass") == 0) {
272+
static const mbfl_encoding *php_mb_get_encoding_or_pass(const char *encoding_name, size_t encoding_name_len) {
273+
if (strncmp(encoding_name, "pass", encoding_name_len) == 0) {
274274
return &mbfl_encoding_pass;
275275
}
276276

277-
return mbfl_name2encoding(encoding_name);
277+
return mbfl_name2encoding_ex(encoding_name, encoding_name_len);
278278
}
279279

280280
static size_t count_commas(const char *p, const char *end) {
@@ -761,7 +761,7 @@ static PHP_INI_MH(OnUpdate_mbstring_http_input)
761761
/* }}} */
762762

763763
static zend_result _php_mb_ini_mbstring_http_output_set(const char *new_value, size_t length) {
764-
const mbfl_encoding *encoding = php_mb_get_encoding_or_pass(new_value);
764+
const mbfl_encoding *encoding = php_mb_get_encoding_or_pass(new_value, length);
765765
if (!encoding) {
766766
return FAILURE;
767767
}
@@ -1348,7 +1348,7 @@ PHP_FUNCTION(mb_http_output)
13481348
ZEND_ASSERT(MBSTRG(current_http_output_encoding));
13491349
RETURN_STRING(MBSTRG(current_http_output_encoding)->name);
13501350
} else {
1351-
const mbfl_encoding *encoding = php_mb_get_encoding_or_pass(name);
1351+
const mbfl_encoding *encoding = php_mb_get_encoding_or_pass(name, name_len);
13521352
if (!encoding) {
13531353
zend_argument_value_error(1, "must be a valid encoding, \"%s\" given", name);
13541354
RETURN_THROWS();

0 commit comments

Comments
 (0)