]> rtime.felk.cvut.cz Git - lisovros/qemu_apohw.git/commit
block: make bdrv_find_backing_image compare canonical filenames
authorJeff Cody <jcody@redhat.com>
Tue, 16 Oct 2012 19:49:09 +0000 (15:49 -0400)
committerKevin Wolf <kwolf@redhat.com>
Wed, 24 Oct 2012 08:26:18 +0000 (10:26 +0200)
commitb1b1d783eabdb6ac4e4578b2c04b0c24483dce77
tree93934cecb2a119298e7346ce8a34fd761936806b
parenta616673dd1c2e00db5e3458d2ba4b6619b78876a
block: make bdrv_find_backing_image compare canonical filenames

Currently, bdrv_find_backing_image compares bs->backing_file with
what is passed in as a backing_file name.  Mismatches may occur,
however, when bs->backing_file and backing_file are not both
absolute or relative.

Use path_combine() to make sure any relative backing filenames are
relative to the current image filename being searched, and then use
realpath() to make all comparisons based on absolute filenames.

If either backing_file or bs->backing_file is determine to be a
protocol, then no filename normalization is performed.

This also changes bdrv_find_backing_image to no longer be recursive,
but iterative.

Signed-off-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c