From 22851007ca8ff33274e844ad08706cb4e22d6d02 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Thu, 20 Nov 2008 22:26:32 +0000 Subject: [PATCH] - MFH: Fixed memory leaks in readline_completion_function() --- ext/readline/readline.c | 9 +++++-- .../readline_completion_function_001.phpt | 25 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 ext/readline/tests/readline_completion_function_001.phpt diff --git a/ext/readline/readline.c b/ext/readline/readline.c index 9060a62464..3a481dfa4c 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -115,8 +115,10 @@ PHP_MINIT_FUNCTION(readline) 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 @@ PHP_FUNCTION(readline_completion_function) 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; diff --git a/ext/readline/tests/readline_completion_function_001.phpt b/ext/readline/tests/readline_completion_function_001.phpt new file mode 100644 index 0000000000..828636cd83 --- /dev/null +++ b/ext/readline/tests/readline_completion_function_001.phpt @@ -0,0 +1,25 @@ +--TEST-- +readline_completion_function(): Basic test +--SKIPIF-- + +--FILE-- + +--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 -- 2.50.1