[libvirt] [PATCH] vbox: Fix passing an empty IMedium* array to IMachine::Delete

Eric Blake eblake at redhat.com
Mon Apr 23 16:48:37 UTC 2012


On 04/23/2012 02:29 AM, Jean-Baptiste Rouault wrote:
> On Sunday 22 April 2012 10:35:59 Matthias Bolte wrote:
>> vboxArray is not castable to a COM item type. vboxArray is a
>> wrapper around the XPCOM and MSCOM specific array handling.
>>
>> In this case we can avoid passing NULL as an empty array to
>> IMachine::Delete by passing a dummy IMedium* array with a single
>> NULL item.
>> ---
>>
>> Jean-Baptiste, I can not reproduce the assertion you mentioned, or
>> I don't know where to look for it. So could you verify that is patch
>> avoids this assertion?
>>

>> +        /* XPCOM doesn't like NULL as an array, even when the array size
>> is 0. +         * Instead pass it a dummy array to avoid passing NULL. */
>> +        IMedium *array[] = { NULL };
>> +        machine->vtbl->Delete(machine, 0, array, &progress);
>>  # endif
>>          if (progress != NULL) {
>>              progress->vtbl->WaitForCompletion(progress, -1);
> 
> The patch is good, I don't get the assertion anymore.

Coupled with that functional test, I give my ACK to the code, as a much
nicer solution than my temporary build-breaker "fix" via a union hack.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120423/b8b1a9a0/attachment-0001.sig>


More information about the libvir-list mailing list