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

Matthias Bolte matthias.bolte at googlemail.com
Mon Apr 23 19:45:30 UTC 2012


Am 23. April 2012 18:48 schrieb Eric Blake <eblake at redhat.com>:
> 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.

Thanks, pushed.

-- 
Matthias Bolte
http://photron.blogspot.com




More information about the libvir-list mailing list