mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 09:17:52 +03:00
vbox: Fix passing an empty IMedium* array to IMachine::Delete
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.
This commit is contained in:
parent
52ee7c2ba3
commit
a9bc123ea3
@ -5294,11 +5294,10 @@ vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
|
||||
|
||||
((IMachine_Delete)machine->vtbl->Delete)(machine, &safeArray, &progress);
|
||||
# else
|
||||
union {
|
||||
vboxArray array;
|
||||
IMedium *medium;
|
||||
} u = { .array = VBOX_ARRAY_INITIALIZER };
|
||||
machine->vtbl->Delete(machine, 0, &u.medium, &progress);
|
||||
/* 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);
|
||||
|
Loading…
Reference in New Issue
Block a user