On 2015-02-02 at 14:00, Kevin Wolf wrote:
Am 26.01.2015 um 16:00 hat Max Reitz geschrieben:
Signed-off-by: Max Reitz <mre...@redhat.com>
---
  qemu-img.c | 57 ++++++++++++++++++++++++---------------------------------
  1 file changed, 24 insertions(+), 33 deletions(-)

diff --git a/qemu-img.c b/qemu-img.c
index be1953d..0b23c87 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -2430,7 +2430,6 @@ static int img_rebase(int argc, char **argv)
  {
      BlockBackend *blk = NULL, *blk_old_backing = NULL, *blk_new_backing = 
NULL;
      BlockDriverState *bs = NULL, *bs_old_backing = NULL, *bs_new_backing = 
NULL;
-    BlockDriver *old_backing_drv, *new_backing_drv;
      char *filename;
      const char *fmt, *cache, *src_cache, *out_basefmt, *out_baseimg;
      int c, flags, src_flags, ret;
@@ -2524,54 +2523,46 @@ static int img_rebase(int argc, char **argv)
      }
      bs = blk_bs(blk);
- /* Find the right drivers for the backing files */
-    old_backing_drv = NULL;
-    new_backing_drv = NULL;
-
-    if (!unsafe && bs->backing_format[0] != '\0') {
-        old_backing_drv = bdrv_find_format(bs->backing_format);
-        if (old_backing_drv == NULL) {
-            error_report("Invalid format name: '%s'", bs->backing_format);
-            ret = -1;
-            goto out;
-        }
-    }
-
-    if (out_basefmt != NULL) {
-        new_backing_drv = bdrv_find_format(out_basefmt);
-        if (new_backing_drv == NULL) {
-            error_report("Invalid format name: '%s'", out_basefmt);
-            ret = -1;
-            goto out;
-        }
-    }
You're removing the validity check of the new backing file format:

[master] $ ./qemu-img rebase -u -b /tmp/backing.qcow2 -F foobar /tmp/test.qcow2
qemu-img: Invalid format name: 'foobar'
[master] $

[growable-v3] $ ./qemu-img rebase -u -b /tmp/backing.qcow2 -F foobar 
/tmp/test.qcow2
[growable-v3] $

Oops, right, I missed that this changes the unsafe path. Thanks for catching it! I'll fix it in v4.

Max

Reply via email to