From dbf7b727fb7ec5dd806c216f49a1ee87d64fa09f Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 25 Apr 2024 10:15:53 +0200 Subject: [PATCH] vshReadlineInit: Initialize only once MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 'vshReadlineInit' is called when interactive virsh is started but also on each call to 'cmdComplete'. Calling it repeatedly (using the 'complete' command interactively, or multiple times in batch mode) leaks the buffers for history file configuration. Avoid multiple setups of this function by returning success in case the history file config is already present. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- tools/vsh.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/vsh.c b/tools/vsh.c index 05de54b5b0..f954f7af77 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -2908,6 +2908,10 @@ vshReadlineInit(vshControl *ctl) const char *break_characters = " \t\n`@$><=;|&{("; const char *quote_characters = "\"'"; + /* initialize readline stuff only once */ + if (ctl->historydir) + return 0; + /* Opaque data for autocomplete callbacks. */ autoCompleteOpaque = ctl; -- 2.47.2