felipe Thu Nov 20 22:26:32 2008 UTC Added files: (Branch: PHP_5_2) /php-src/ext/readline/tests readline_completion_function_001.phpt
Modified files: /php-src/ext/readline readline.c Log: - MFH: Fixed memory leaks in readline_completion_function() http://cvs.php.net/viewvc.cgi/php-src/ext/readline/readline.c?r1=1.42.2.3.2.6&r2=1.42.2.3.2.7&diff_format=u Index: php-src/ext/readline/readline.c diff -u php-src/ext/readline/readline.c:1.42.2.3.2.6 php-src/ext/readline/readline.c:1.42.2.3.2.7 --- php-src/ext/readline/readline.c:1.42.2.3.2.6 Sun Nov 16 18:01:24 2008 +++ php-src/ext/readline/readline.c Thu Nov 20 22:26:32 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: readline.c,v 1.42.2.3.2.6 2008/11/16 18:01:24 iliaa Exp $ */ +/* $Id: readline.c,v 1.42.2.3.2.7 2008/11/20 22:26:32 felipe Exp $ */ /* {{{ includes & prototypes */ @@ -115,8 +115,10 @@ PHP_RSHUTDOWN_FUNCTION(readline) { - if (_readline_completion) + if (_readline_completion) { + zval_dtor(_readline_completion); FREE_ZVAL(_readline_completion); + } #if HAVE_RL_CALLBACK_READ_CHAR if (_prepped_callback) { rl_callback_handler_remove(); @@ -456,9 +458,12 @@ efree(name); RETURN_FALSE; } + efree(name); - if (_readline_completion) + if (_readline_completion) { + zval_dtor(_readline_completion); FREE_ZVAL(_readline_completion); + } MAKE_STD_ZVAL(_readline_completion); *_readline_completion = *arg; http://cvs.php.net/viewvc.cgi/php-src/ext/readline/tests/readline_completion_function_001.phpt?view=markup&rev=1.1 Index: php-src/ext/readline/tests/readline_completion_function_001.phpt +++ php-src/ext/readline/tests/readline_completion_function_001.phpt --TEST-- readline_completion_function(): Basic test --SKIPIF-- <?php if (!extension_loaded("readline")) die("skip"); ?> --FILE-- <?php function foo() { } $data = array( 'foo', 'strtolower', 1, 1.1231 ); foreach ($data as $callback) { readline_completion_function($callback); } ?> --EXPECTF-- Warning: readline_completion_function(): 1 is not callable in %s on line %d Warning: readline_completion_function(): 1.1231 is not callable in %s on line %d -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php