From dfb18b0afbb040a496ddce1f224176a97f8a5667 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Mon, 18 Jul 2016 14:07:42 -0400 Subject: [PATCH] tools: Fix comparison in virLoginShellGetShellArgv Commit id '740e4d70' altered the logic to fetch the sysconf values and added a new virConfGetValueStringList which returns -1 on failure, 0 if missing, and 1 if the value was present. However, the caller only checked !shargv which caught Coverity's attention since the following VIR_ALLOC_N(*shargv, 2) would be a NULL ptr deref Signed-off-by: John Ferlan --- tools/virt-login-shell.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/virt-login-shell.c b/tools/virt-login-shell.c index 632d49325b..a2b32ac0c4 100644 --- a/tools/virt-login-shell.c +++ b/tools/virt-login-shell.c @@ -99,10 +99,12 @@ static int virLoginShellGetShellArgv(virConfPtr conf, char ***shargv, size_t *shargvlen) { - if (virConfGetValueStringList(conf, "shell", true, shargv) < 0) + int rv; + + if ((rv = virConfGetValueStringList(conf, "shell", true, shargv)) < 0) return -1; - if (!shargv) { + if (rv == 0) { if (VIR_ALLOC_N(*shargv, 2) < 0) return -1; if (VIR_STRDUP((*shargv)[0], "/bin/sh") < 0) {