]> xenbits.xensource.com Git - qemu-upstream-4.3-testing.git/commitdiff
stream: pass new base image format to bdrv_change_backing_file
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 8 May 2012 14:51:55 +0000 (16:51 +0200)
committerKevin Wolf <kwolf@redhat.com>
Thu, 10 May 2012 09:01:59 +0000 (11:01 +0200)
When an image is modified to point to the new backing file, the backing
file format is set to NULL, which means auto-probe.  This is wrong, in
fact it is a small security problem.

Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/stream.c

index 930e3cf37b10ef001a220aebcc449eb67ce05727..25f98e493c7c14ee66b0afb9a2da200610c9f725 100644 (file)
@@ -235,11 +235,14 @@ wait:
     }
 
     if (!block_job_is_cancelled(&s->common) && sector_num == end && ret == 0) {
-        const char *base_id = NULL;
+        const char *base_id = NULL, *base_fmt = NULL;
         if (base) {
             base_id = s->backing_file_id;
+            if (base->drv) {
+                base_fmt = base->drv->format_name;
+            }
         }
-        ret = bdrv_change_backing_file(bs, base_id, NULL);
+        ret = bdrv_change_backing_file(bs, base_id, base_fmt);
         close_unused_images(bs, base, base_id);
     }