tony2001                Wed Aug 30 16:46:59 2006 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/pcre/tests     preg_replace_callback3.phpt 

  Modified files:              
    /php-src/ext/pcre   php_pcre.c 
  Log:
  fix leak, add test
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/php_pcre.c?r1=1.168.2.9.2.9&r2=1.168.2.9.2.10&diff_format=u
Index: php-src/ext/pcre/php_pcre.c
diff -u php-src/ext/pcre/php_pcre.c:1.168.2.9.2.9 
php-src/ext/pcre/php_pcre.c:1.168.2.9.2.10
--- php-src/ext/pcre/php_pcre.c:1.168.2.9.2.9   Thu Jul 20 22:53:07 2006
+++ php-src/ext/pcre/php_pcre.c Wed Aug 30 16:46:59 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_pcre.c,v 1.168.2.9.2.9 2006/07/20 22:53:07 helly Exp $ */
+/* $Id: php_pcre.c,v 1.168.2.9.2.10 2006/08/30 16:46:59 tony2001 Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1272,6 +1272,7 @@
                        efree(callback_name);
                        *return_value = **subject;
                        zval_copy_ctor(return_value);
+                       INIT_PZVAL(return_value);
                        return;
                }
                efree(callback_name);

http://cvs.php.net/viewvc.cgi/php-src/ext/pcre/tests/preg_replace_callback3.phpt?view=markup&rev=1.1
Index: php-src/ext/pcre/tests/preg_replace_callback3.phpt
+++ php-src/ext/pcre/tests/preg_replace_callback3.phpt
--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

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to