Patchwork fix savevm command without id or tag

login
register
mail settings
Submitter Marcelo Tosatti
Date Jan. 20, 2010, 4:26 p.m.
Message ID <20100120162634.GA15296@amt.cnet>
Download mbox | patch
Permalink /patch/43309/
State New
Headers show

Comments

Marcelo Tosatti - Jan. 20, 2010, 4:26 p.m.
savevm without id or tag segfaults in:

(gdb) bt
#0  0x00007f600a83bf8a in __strcmp_sse42 () from /lib64/libc.so.6
#1  0x00000000004745b6 in bdrv_snapshot_find (bs=<value optimized out>,
    sn_info=0x7fff996be280, name=0x0) at savevm.c:1631
#2  0x0000000000475c80 in del_existing_snapshots (name=<value optimized out>,
    mon=<value optimized out>) at savevm.c:1654
#3  do_savevm (name=<value optimized out>, mon=<value optimized out>)

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Kevin Wolf - Jan. 20, 2010, 4:45 p.m.
Am 20.01.2010 17:26, schrieb Marcelo Tosatti:
> 
> savevm without id or tag segfaults in:
> 
> (gdb) bt
> #0  0x00007f600a83bf8a in __strcmp_sse42 () from /lib64/libc.so.6
> #1  0x00000000004745b6 in bdrv_snapshot_find (bs=<value optimized out>,
>     sn_info=0x7fff996be280, name=0x0) at savevm.c:1631
> #2  0x0000000000475c80 in del_existing_snapshots (name=<value optimized out>,
>     mon=<value optimized out>) at savevm.c:1654
> #3  do_savevm (name=<value optimized out>, mon=<value optimized out>)
> 
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

Acked-by: Kevin Wolf <kwolf@redhat.com>

> 
> 
> diff --git a/savevm.c b/savevm.c
> index b3bb909..2fd3de6 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -1718,7 +1718,7 @@ void do_savevm(Monitor *mon, const QDict *qdict)
>      sn->vm_clock_nsec = qemu_get_clock(vm_clock);
>  
>      /* Delete old snapshots of the same name */
> -    if (del_existing_snapshots(mon, name) < 0) {
> +    if (name && del_existing_snapshots(mon, name) < 0) {
>          goto the_end;
>      }
>  
> 
>
Anthony Liguori - Jan. 26, 2010, 9:59 p.m.
Applied.  Thanks.

Regards,

Anthony Liguori

On 01/20/2010 10:26 AM, Marcelo Tosatti wrote:
> savevm without id or tag segfaults in:
>
> (gdb) bt
> #0  0x00007f600a83bf8a in __strcmp_sse42 () from /lib64/libc.so.6
> #1  0x00000000004745b6 in bdrv_snapshot_find (bs=<value optimized out>,
>      sn_info=0x7fff996be280, name=0x0) at savevm.c:1631
> #2  0x0000000000475c80 in del_existing_snapshots (name=<value optimized out>,
>      mon=<value optimized out>) at savevm.c:1654
> #3  do_savevm (name=<value optimized out>, mon=<value optimized out>)
>
> Signed-off-by: Marcelo Tosatti<mtosatti@redhat.com>
>
>
> diff --git a/savevm.c b/savevm.c
> index b3bb909..2fd3de6 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -1718,7 +1718,7 @@ void do_savevm(Monitor *mon, const QDict *qdict)
>       sn->vm_clock_nsec = qemu_get_clock(vm_clock);
>
>       /* Delete old snapshots of the same name */
> -    if (del_existing_snapshots(mon, name)<  0) {
> +    if (name&&  del_existing_snapshots(mon, name)<  0) {
>           goto the_end;
>       }
>
>
>
>
>

Patch

diff --git a/savevm.c b/savevm.c
index b3bb909..2fd3de6 100644
--- a/savevm.c
+++ b/savevm.c
@@ -1718,7 +1718,7 @@  void do_savevm(Monitor *mon, const QDict *qdict)
     sn->vm_clock_nsec = qemu_get_clock(vm_clock);
 
     /* Delete old snapshots of the same name */
-    if (del_existing_snapshots(mon, name) < 0) {
+    if (name && del_existing_snapshots(mon, name) < 0) {
         goto the_end;
     }