[libvirt PATCH 3/3] nodedev: handle null return from GetIOMMUGroupDev()

Laine Stump laine at redhat.com
Tue Apr 13 22:07:38 UTC 2021


On 4/13/21 4:49 PM, Jonathon Jongsma wrote:
> Coverity reported that this function can return NULL, so it should be
> handled properly.
> 
> Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>

Reviewed-by: Laine Stump <laine at redhat.com>

> ---
>   src/node_device/node_device_driver.c | 11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
> index 5f8995172d..2fcebd065b 100644
> --- a/src/node_device/node_device_driver.c
> +++ b/src/node_device/node_device_driver.c
> @@ -1192,9 +1192,18 @@ nodeDeviceDestroy(virNodeDevicePtr device)
>            * shouldn't try to remove the device. */
>           g_autofree char *vfiogroup =
>               virMediatedDeviceGetIOMMUGroupDev(def->caps->data.mdev.uuid);
> -        VIR_AUTOCLOSE fd = open(vfiogroup, O_RDONLY);
> +        VIR_AUTOCLOSE fd = -1;
>           g_autofree char *errmsg = NULL;
>   
> +        if (!vfiogroup) {
> +            virReportError(VIR_ERR_INTERNAL_ERROR,
> +                           _("Unable to determine iommu group for '%s'"),
> +                           def->name);
> +            goto cleanup;
> +        }
> +
> +        fd = open(vfiogroup, O_RDONLY);
> +
>           if (fd < 0 && errno == EBUSY) {
>               virReportError(VIR_ERR_INTERNAL_ERROR,
>                              _("Unable to destroy '%s': device in use"),
> 




More information about the libvir-list mailing list