Skip to content
  • Markus Armbruster's avatar
    f62514b3
    qemu-img: Reject broken -o "" · f62514b3
    Markus Armbruster authored
    
    
    qemu-img create, convert, amend, and measure use accumulate_options()
    to merge multiple -o options.  This is broken for -o "":
    
        $ qemu-img create -f qcow2 -o backing_file=a -o "" -o backing_fmt=raw,size=1M new.qcow2
        qemu-img: warning: Could not verify backing image. This may become an error in future versions.
        Could not open 'a,backing_fmt=raw': No such file or directory
        Formatting 'new.qcow2', fmt=qcow2 size=1048576 backing_file=a,,backing_fmt=raw cluster_size=65536 lazy_refcounts=off refcount_bits=16
        $ qemu-img info new.qcow2
        image: new.qcow2
        file format: qcow2
        virtual size: 1 MiB (1048576 bytes)
        disk size: 196 KiB
        cluster_size: 65536
    --> backing file: a,backing_fmt=raw
        Format specific information:
            compat: 1.1
            lazy refcounts: false
            refcount bits: 16
            corrupt: false
    
    Merging these three -o the obvious way is wrong, because it results in
    an unwanted ',' escape:
    
        backing_file=a,,backing_fmt=raw,size=1M
                      ~~
    
    We could silently drop -o "", but Kevin asked me to reject it instead.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20200415074927.19897-10-armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    f62514b3
    qemu-img: Reject broken -o ""
    Markus Armbruster authored
    
    
    qemu-img create, convert, amend, and measure use accumulate_options()
    to merge multiple -o options.  This is broken for -o "":
    
        $ qemu-img create -f qcow2 -o backing_file=a -o "" -o backing_fmt=raw,size=1M new.qcow2
        qemu-img: warning: Could not verify backing image. This may become an error in future versions.
        Could not open 'a,backing_fmt=raw': No such file or directory
        Formatting 'new.qcow2', fmt=qcow2 size=1048576 backing_file=a,,backing_fmt=raw cluster_size=65536 lazy_refcounts=off refcount_bits=16
        $ qemu-img info new.qcow2
        image: new.qcow2
        file format: qcow2
        virtual size: 1 MiB (1048576 bytes)
        disk size: 196 KiB
        cluster_size: 65536
    --> backing file: a,backing_fmt=raw
        Format specific information:
            compat: 1.1
            lazy refcounts: false
            refcount bits: 16
            corrupt: false
    
    Merging these three -o the obvious way is wrong, because it results in
    an unwanted ',' escape:
    
        backing_file=a,,backing_fmt=raw,size=1M
                      ~~
    
    We could silently drop -o "", but Kevin asked me to reject it instead.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20200415074927.19897-10-armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Loading