@@ -269,12 +269,12 @@ static const mbfl_encoding *php_mb_get_encoding(zend_string *encoding_name, uint
269
269
}
270
270
}
271
271
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 ) {
274
274
return & mbfl_encoding_pass ;
275
275
}
276
276
277
- return mbfl_name2encoding (encoding_name );
277
+ return mbfl_name2encoding_ex (encoding_name , encoding_name_len );
278
278
}
279
279
280
280
static size_t count_commas (const char * p , const char * end ) {
@@ -761,7 +761,7 @@ static PHP_INI_MH(OnUpdate_mbstring_http_input)
761
761
/* }}} */
762
762
763
763
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 );
765
765
if (!encoding ) {
766
766
return FAILURE ;
767
767
}
@@ -1348,7 +1348,7 @@ PHP_FUNCTION(mb_http_output)
1348
1348
ZEND_ASSERT (MBSTRG (current_http_output_encoding ));
1349
1349
RETURN_STRING (MBSTRG (current_http_output_encoding )-> name );
1350
1350
} 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 );
1352
1352
if (!encoding ) {
1353
1353
zend_argument_value_error (1 , "must be a valid encoding, \"%s\" given" , name );
1354
1354
RETURN_THROWS ();
0 commit comments