On 04/27/2015 05:57 PM, Peter Krempa wrote: > On Mon, Apr 27, 2015 at 15:38:57 +0800, Shanzhi Yu wrote: >> The crash caused when checking the backing file path of a disk while >> the disk has no backing file, add a check before using disk->src->backingStore->path >> >> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1215569 >> --- >> src/qemu/qemu_driver.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c >> index 70bf7aa..175d00b 100644 >> --- a/src/qemu/qemu_driver.c >> +++ b/src/qemu/qemu_driver.c >> @@ -16816,6 +16816,15 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, >> goto endjob; >> >> if ((flags & VIR_DOMAIN_BLOCK_COPY_SHALLOW) && >> + !disk->src->backingStore) { >> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, >> + _("disk '%s' has no backing file, so shallow copy " >> + "is not possible"), > Well, we can also discard the SHALLOW flag in case the backing file is > not present since it will behave semantically correctly that way. > > >> + disk->src->path); >> + goto endjob; >> + } >> + >> + if ((flags & VIR_DOMAIN_BLOCK_COPY_SHALLOW) && >> mirror->format == VIR_STORAGE_FILE_RAW && >> disk->src->backingStore->path) { >> virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > The docs correctly state that for shallow copy the reused file has to > have the same guest visible contents as the backing file of the current > file so this condition can be removed altogether fixing the crash. > > I'll post a different approach soon. Ok, thanks > Peter -- Regards shyu -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list