]> git.ipfire.org Git - thirdparty/qemu.git/commit - block.c
block: Fix backing paths for filenames with colons
authorMax Reitz <mreitz@redhat.com>
Mon, 22 May 2017 19:52:15 +0000 (21:52 +0200)
committerMax Reitz <mreitz@redhat.com>
Mon, 29 May 2017 13:39:54 +0000 (15:39 +0200)
commit0d54a6fed3ebaf0e17656a712e5d6575c712459b
tree44445a3b56a65d8d14984c3b66b92f70cb66c930
parentbcb07dba9290407eb01971ade287ca9a332ad49d
block: Fix backing paths for filenames with colons

path_combine() naturally tries to preserve a protocol prefix. However,
it recognizes such a prefix by scanning for the first colon; which is
different from what path_has_protocol() does: There only is a protocol
prefix if there is a colon before the first slash.

A protocol prefix that is not recognized by path_has_protocol() is none,
and should thus not be taken as one.

Case in point, before this patch:
$ ./qemu-img create -f qcow2 -b backing.qcow2 ./top:image.qcow2
qemu-img: ./top:image.qcow2: Could not open './top:backing.qcow2':
    No such file or directory

Afterwards:
$ ./qemu-img create -f qcow2 -b backing.qcow2 ./top:image.qcow2
qemu-img: ./top:image.qcow2: Could not open './backing.qcow2':
    No such file or directory

Reported-by: yangyang <yangyang@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20170522195217.12991-2-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
block.c