mirror of
https://github.com/php/php-src.git
synced 2026-03-28 02:02:32 +01:00
fix leak, add test
This commit is contained in:
@@ -1392,6 +1392,7 @@ static void preg_replace_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_callabl
|
||||
zval_dtor(&callback_name);
|
||||
*return_value = **subject;
|
||||
zval_copy_ctor(return_value);
|
||||
INIT_PZVAL(return_value);
|
||||
return;
|
||||
}
|
||||
zval_dtor(&callback_name);
|
||||
|
||||
71
ext/pcre/tests/preg_replace_callback3.phpt
Normal file
71
ext/pcre/tests/preg_replace_callback3.phpt
Normal file
@@ -0,0 +1,71 @@
|
||||
--TEST--
|
||||
preg_replace_callback() 3
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
var_dump(preg_replace_callback());
|
||||
var_dump(preg_replace_callback(1));
|
||||
var_dump(preg_replace_callback(1,2));
|
||||
var_dump(preg_replace_callback(1,2,3));
|
||||
var_dump(preg_replace_callback(1,2,3,4));
|
||||
$a = 5;
|
||||
var_dump(preg_replace_callback(1,2,3,4,$a));
|
||||
$a = "";
|
||||
var_dump(preg_replace_callback("","","","",$a));
|
||||
$a = array();
|
||||
var_dump(preg_replace_callback($a,$a,$a,$a,$a));
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
|
||||
int(3)
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
|
||||
int(3)
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
|
||||
int(3)
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, '', to be a valid callback in %s on line 1%d
|
||||
string(0) ""
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, 'Array', to be a valid callback in %s on line %d
|
||||
array(0) {
|
||||
}
|
||||
Done
|
||||
--UEXPECTF--
|
||||
Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: Wrong parameter count for preg_replace_callback() in %s on line %d
|
||||
NULL
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
|
||||
int(3)
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
|
||||
int(3)
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
|
||||
int(3)
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, '', to be a valid callback in %s on line %d
|
||||
unicode(0) ""
|
||||
|
||||
Warning: preg_replace_callback(): Requires argument 2, 'Array', to be a valid callback in %s on line %d
|
||||
array(0) {
|
||||
}
|
||||
Done
|
||||
Reference in New Issue
Block a user