From: Remi Collet Date: Mon, 20 Jan 2014 07:38:53 +0000 (+0100) Subject: Fixed Bug #66412 readline_clear_history() with libedit causes segfault after #65714 X-Git-Tag: php-5.6.0alpha1~8^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=31d67bd35362c1ab570caccedfec3e24257b55c5;p=php 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 --- diff --git a/NEWS b/NEWS index ce2d100799..f03180d859 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 ecd5533350..4bd9103462 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;