The 'res' variable was only being initialized to NULL in the
if (!state) path; however, that path never used res and evenutally
res is assigned one of two results based on a pair of if then else if
conditions. If for some reason neither of those paths was taken and
the (!state) path wasn't take, then 'res' would be indeterminate.
Found by Coverity, probably a false positive based on code paths, but
better safe than sorry for the future.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
tools/vsh.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/vsh.c b/tools/vsh.c
index 68f7785..9ac4f21 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -2636,7 +2636,8 @@ vshReadlineParse(const char *text, int state)
vshCommandToken tk;
static const vshCmdDef *cmd;
const vshCmdOptDef *opt;
- char *tkdata, *optstr, *const_tkdata, *res;
+ char *tkdata, *optstr, *const_tkdata;
+ char *res = NULL;
static char *ctext, *sanitized_text;
static uint64_t const_opts_need_arg, const_opts_required, const_opts_seen;
uint64_t opts_need_arg, opts_required, opts_seen;
@@ -2656,7 +2657,6 @@ vshReadlineParse(const char *text, int state)
tkdata = NULL;
sanitized_text = NULL;
optstr = NULL;
- res = NULL;
/* Sanitize/de-quote the autocomplete text */
tk = sanitizer.getNextArg(NULL, &sanitizer, &sanitized_text, false);
--
2.5.5