[libvirt] [PATCH v2 06/15] vbox: Errors in vboxAttachDrives are now critical
John Ferlan
jferlan at redhat.com
Fri Nov 3 13:44:03 UTC 2017
On 10/24/2017 03:35 PM, Dawid Zamirski wrote:
> Previously, if one tried to define a VBOX VM and the API failed to
> perform the requested actions for some reason, it would just log the
> error and move on to process remaining disk definitions. This is not
> desired as it could result in incorrectly defined VM without the caller
> even knowing about it. So now all the code paths that call
> virReportError are now treated as hard failures as they should have
> been.
> ---
> src/vbox/vbox_common.c | 22 +++++++++++++++-------
> 1 file changed, 15 insertions(+), 7 deletions(-)
>
> diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
> index b949c4db7..9f4bf18a3 100644
> --- a/src/vbox/vbox_common.c
> +++ b/src/vbox/vbox_common.c
> @@ -955,17 +955,17 @@ vboxSetBootDeviceOrder(virDomainDefPtr def, vboxDriverPtr data,
> }
> }
>
> -static void
> +static int
> vboxAttachDrives(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
> {
> size_t i;
> - int type, format;
> + int type, format, ret = 0;
> const char *src = NULL;
> nsresult rc = 0;
> virDomainDiskDefPtr disk = NULL;
> PRUnichar *storageCtlName = NULL;
> IMedium *medium = NULL;
> - PRUnichar *mediumFileUtf16 = NULL, *mediumEmpty = NULL;
> + PRUnichar *mediumFileUtf16 = NULL;
> PRUint32 devicePort, deviceSlot, deviceType, accessMode;
> vboxIID mediumUUID;
>
> @@ -1049,6 +1049,7 @@ vboxAttachDrives(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
> deviceType = DeviceType_Floppy;
> accessMode = AccessMode_ReadWrite;
> } else {
> + ret = -1;
> goto cleanup;
> }
>
> @@ -1056,19 +1057,17 @@ vboxAttachDrives(virDomainDefPtr def, vboxDriverPtr data, IMachine *machine)
> deviceType, accessMode, &medium);
>
> if (!medium) {
> - VBOX_UTF8_TO_UTF16("", &mediumEmpty);
> -
> rc = gVBoxAPI.UIVirtualBox.OpenMedium(data->vboxObj,
> mediumFileUtf16,
> deviceType, accessMode,
> &medium);
> - VBOX_UTF16_FREE(mediumEmpty);
> }
The mediumEmpty changes could have gone into the previous patch or in a
separate patch. It's unused as of commit 34364df3 which should have
never copied it in from the "old" code which ended up getting removed as
part of commit c7c286c6.
I can extract it into a separate patch before pushing...
Reviewed-by: John Ferlan <jferlan at redhat.com>
John
[...]
More information about the libvir-list
mailing list