From 31d67bd35362c1ab570caccedfec3e24257b55c5 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 20 Jan 2014 08:38:53 +0100 Subject: [PATCH] Fixed Bug #66412 readline_clear_history() with libedit causes segfault after #65714 Checking all libedit functions, this check is done in each functions (add_history, read_history, write_history, ...) but is missing in clear_history. Test coverage: readline_clear_history_001.phpt --- NEWS | 4 ++++ ext/readline/readline.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/NEWS b/NEWS index ce2d100799f..f03180d8593 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,10 @@ PHP NEWS . Fixed bug #66298 (ext/opcache/Optimizer/zend_optimizer.c has dos-style ^M as lineend). (Laruence) +- Readline + . Fixed Bug #66412 (readline_clear_history() with libedit causes segfault after + #65714). (Remi) + - Session . Fixed bug #66469 (Session module is sending multiple set-cookie headers when session.use_strict_mode=1) (Yasuo) diff --git a/ext/readline/readline.c b/ext/readline/readline.c index ecd55333504..4bd91034629 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -354,6 +354,11 @@ PHP_FUNCTION(readline_clear_history) return; } +#if HAVE_LIBEDIT + /* clear_history is the only function where rl_initialize + is not call to ensure correct allocation */ + using_history(); +#endif clear_history(); RETURN_TRUE;