[libvirt PATCH 9/9] qemu: use g_new0

John Ferlan jferlan at redhat.com
Tue Oct 6 10:49:10 UTC 2020


Coverity notes ...

> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index 11b549b12b..09f8525cfa 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -928,8 +928,7 @@ qemuDomainFindOrCreateSCSIDiskController(virQEMUDriverPtr driver,
>  
>      /* No SCSI controller present, for backward compatibility we
>       * now hotplug a controller */
> -    if (VIR_ALLOC(cont) < 0)
> -        return NULL;
> +    cont = g_new0(virDomainControllerDef, 1);
>      cont->type = VIR_DOMAIN_CONTROLLER_TYPE_SCSI;
>      cont->idx = controller;
>      if (model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DEFAULT)
> @@ -1243,11 +1242,9 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
>          if (!tapfdSize)
>              tapfdSize = vhostfdSize = 1;
>          queueSize = tapfdSize;
> -        if (VIR_ALLOC_N(tapfd, tapfdSize) < 0)
> -            goto cleanup;
> +        tapfd = g_new0(int, tapfdSize);
>          memset(tapfd, -1, sizeof(*tapfd) * tapfdSize);
> -        if (VIR_ALLOC_N(vhostfd, vhostfdSize) < 0)
> -            goto cleanup;
> +        vhostfd = g_new0(int, vhostfdSize);
>          memset(vhostfd, -1, sizeof(*vhostfd) * vhostfdSize);
>          if (qemuInterfaceBridgeConnect(vm->def, driver, net,
>                                         tapfd, &tapfdSize) < 0)
> @@ -1262,11 +1259,9 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
>          if (!tapfdSize)
>              tapfdSize = vhostfdSize = 1;
>          queueSize = tapfdSize;
> -        if (VIR_ALLOC_N(tapfd, tapfdSize) < 0)
> -            goto cleanup;
> +        tapfd = g_new0(int, tapfdSize);
>          memset(tapfd, -1, sizeof(*tapfd) * tapfdSize);
> -        if (VIR_ALLOC_N(vhostfd, vhostfdSize) < 0)
> -            goto cleanup;
> +        vhostfd = g_new0(int, vhostfdSize);
>          memset(vhostfd, -1, sizeof(*vhostfd) * vhostfdSize);
>          if (qemuInterfaceDirectConnect(vm->def, driver, net,
>                                         tapfd, tapfdSize,
> @@ -1282,10 +1277,9 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
>          if (!tapfdSize)
>              tapfdSize = vhostfdSize = 1;
>          queueSize = tapfdSize;
> -        if (VIR_ALLOC_N(tapfd, tapfdSize) < 0)
> -            goto cleanup;
> +        tapfd = g_new0(int, tapfdSize);
>          memset(tapfd, -1, sizeof(*tapfd) * tapfdSize);
> -        if (VIR_ALLOC_N(vhostfd, vhostfdSize) < 0)
> +        vhostfd = g_new0(int, vhostfdSize);
>              goto cleanup;

^^^  Everything below here is unreachable.

FWIW: Similar issues after g_new0 calls in:

    libxlCapsInitNuma
    libxlConnectDomainXMLToNative
    virStorageBackendISCSIDirectVolWipeZero
    virLoginShellGetShellArgv

John


>          memset(vhostfd, -1, sizeof(*vhostfd) * vhostfdSize);
>          if (qemuInterfaceEthernetConnect(vm->def, driver, net,
> @@ -1381,9 +1375,8 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
>              goto cleanup;
>      }
>  

[...]




More information about the libvir-list mailing list