1
0
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:
Antony Dovgal
2006-08-30 16:46:23 +00:00
parent a08e79e900
commit a0a7595bbf
2 changed files with 72 additions and 0 deletions

View File

@@ -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);

View 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