From: Chris Lalancette Date: Fri, 12 Mar 2010 11:00:46 +0000 (+0100) Subject: Fix crash in virsh after bogus command X-Git-Tag: v0.8.0~303 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3ebbc241a1052eea18bd1fb97325f5ba996b974d;p=thirdparty%2Flibvirt.git Fix crash in virsh after bogus command If you ran virsh in interactive mode and ran a command that virsh could not parse, it would then SEGV on subsequent commands. The problem is that we are freeing the vshCmd structure in the syntaxError label at the end of vshCommandParse, but forgetting to set ctl->cmd to NULL. This means that on the next command, we would try to free the same structure again, leading to badness. * tools/virsh.c: Make sure to set ctl->cmd to NULL after freeing it in vshCommandParse() --- diff --git a/tools/virsh.c b/tools/virsh.c index 952114470e..aa85ee65e4 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -8639,8 +8639,10 @@ vshCommandParse(vshControl *ctl, char *cmdstr) return TRUE; syntaxError: - if (ctl->cmd) + if (ctl->cmd) { vshCommandFree(ctl->cmd); + ctl->cmd = NULL; + } if (first) vshCommandOptFree(first); VIR_FREE(tkdata);