[libvirt] [PATCH] qemu: Fix the crash in qemuDomainBlockCopyCommon

Shanzhi Yu shyu at redhat.com
Mon Apr 27 10:38:14 UTC 2015



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




More information about the libvir-list mailing list