mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Merge branch 'PHP-7.3'
This commit is contained in:
commit
93a221ec4b
2 changed files with 21 additions and 6 deletions
|
@ -4953,11 +4953,9 @@ PHP_FUNCTION(mb_chr)
|
|||
/* }}} */
|
||||
|
||||
|
||||
static inline char* php_mb_scrub(const char* str, size_t str_len, const mbfl_encoding *enc)
|
||||
static inline char* php_mb_scrub(const char* str, size_t str_len, const mbfl_encoding *enc, size_t *ret_len)
|
||||
{
|
||||
size_t ret_len;
|
||||
|
||||
return php_mb_convert_encoding_ex(str, str_len, enc, enc, &ret_len);
|
||||
return php_mb_convert_encoding_ex(str, str_len, enc, enc, ret_len);
|
||||
}
|
||||
|
||||
|
||||
|
@ -4969,6 +4967,7 @@ PHP_FUNCTION(mb_scrub)
|
|||
size_t str_len;
|
||||
zend_string *enc_name = NULL;
|
||||
char *ret;
|
||||
size_t ret_len;
|
||||
|
||||
ZEND_PARSE_PARAMETERS_START(1, 2)
|
||||
Z_PARAM_STRING(str, str_len)
|
||||
|
@ -4981,13 +4980,13 @@ PHP_FUNCTION(mb_scrub)
|
|||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
ret = php_mb_scrub(str, str_len, enc);
|
||||
ret = php_mb_scrub(str, str_len, enc, &ret_len);
|
||||
|
||||
if (ret == NULL) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
RETVAL_STRING(ret);
|
||||
RETVAL_STRINGL(ret, ret_len);
|
||||
efree(ret);
|
||||
}
|
||||
/* }}} */
|
||||
|
|
16
ext/mbstring/tests/bug77454.phpt
Normal file
16
ext/mbstring/tests/bug77454.phpt
Normal file
|
@ -0,0 +1,16 @@
|
|||
--TEST--
|
||||
Bug #77454: mb_scrub() silently truncates after a null byte
|
||||
--FILE--
|
||||
<?php
|
||||
$str = "before\0after";
|
||||
function test($str, $enc) {
|
||||
echo str_replace("\0", '\0', mb_scrub($str, $enc)), "\n";
|
||||
}
|
||||
test($str, 'latin1');
|
||||
test($str, 'utf-8');
|
||||
test($str, 'ascii');
|
||||
?>
|
||||
--EXPECT--
|
||||
before\0after
|
||||
before\0after
|
||||
before\0after
|
Loading…
Add table
Add a link
Reference in a new issue