diff --git a/ext/standard/string.c b/ext/standard/string.c index b4398818ea3..e7102d0b03a 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -4555,8 +4555,8 @@ PHP_FUNCTION(addcslashes) RETURN_STRINGL(str, str_len, 1); } - RETURN_STRING(php_addcslashes(str, str_len, &Z_STRLEN_P(return_value), 0, - what, what_len TSRMLS_CC), 0); + Z_STRVAL_P(return_value) = php_addcslashes(str, str_len, &Z_STRLEN_P(return_value), 0, what, what_len TSRMLS_CC); + RETURN_STRINGL(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value), 0); } /* }}} */ diff --git a/ext/standard/tests/strings/bug40915.phpt b/ext/standard/tests/strings/bug40915.phpt new file mode 100644 index 00000000000..854853ed2e3 Binary files /dev/null and b/ext/standard/tests/strings/bug40915.phpt differ