[libvirt] [PATCH] Fix crash in virsh after bogus command.
Daniel Veillard
veillard at redhat.com
Fri Mar 12 11:02:56 UTC 2010
On Thu, Mar 11, 2010 at 06:00:54PM -0500, Chris Lalancette wrote:
> 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. Make sure to set ctl->cmd to NULL after
> freeing it.
>
> Signed-off-by: Chris Lalancette <clalance at redhat.com>
> ---
> tools/virsh.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/tools/virsh.c b/tools/virsh.c
> index c6e3f2a..eeaddbc 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -8643,8 +8643,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);
ACK, serious one, pushed ! Thanks !
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list