On 5/7/24 08:42, Zhenzhong Duan wrote:
> Local pointer info is freed before return from
> iommufd_cdev_get_info_iova_range().
>
> Use 'g_autofree' to avoid the g_free() calls.
>
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> hw/vfio/iommufd.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c
> index 8827ffe636..c644127972 100644
> --- a/hw/vfio/iommufd.c
> +++ b/hw/vfio/iommufd.c
> @@ -258,7 +258,7 @@ static int iommufd_cdev_get_info_iova_range(VFIOIOMMUFDContainer *container,
> uint32_t ioas_id, Error **errp)
> {
> VFIOContainerBase *bcontainer = &container->bcontainer;
> - struct iommu_ioas_iova_ranges *info;
> + g_autofree struct iommu_ioas_iova_ranges *info = NULL;
> struct iommu_iova_range *iova_ranges;
> int ret, sz, fd = container->be->fd;
>
> @@ -291,12 +291,10 @@ static int iommufd_cdev_get_info_iova_range(VFIOIOMMUFDContainer *container,
> }
> bcontainer->pgsizes = info->out_iova_alignment;
>
> - g_free(info);
> return 0;
>
> error:
> ret = -errno;
> - g_free(info);
> error_setg_errno(errp, errno, "Cannot get IOVA ranges");
> return ret;
> }