On Thu, 5 Nov 2020 23:55:32 +0000
Peter Maydell <peter.mayd...@linaro.org> wrote:

> On Sun, 1 Nov 2020 at 21:02, Alex Williamson <alex.william...@redhat.com> 
> wrote:
> >
> > From: Kirti Wankhede <kwankh...@nvidia.com>
> >
> > Whether the VFIO device supports migration or not is decided based of
> > migration region query. If migration region query is successful and 
> > migration
> > region initialization is successful then migration is supported else
> > migration is blocked.
> >
> > Signed-off-by: Kirti Wankhede <kwankh...@nvidia.com>
> > Reviewed-by: Neo Jia <c...@nvidia.com>
> > Acked-by: Dr. David Alan Gilbert <dgilb...@redhat.com>
> > Reviewed-by: Cornelia Huck <coh...@redhat.com>
> > Signed-off-by: Alex Williamson <alex.william...@redhat.com>  
> 
> Hi; Coverity points out (CID 1436126) that this code has a
> use-after-free:

Thanks, I already relayed this to Kirti and expect to see a patch.
Thanks,

Alex


> > +int vfio_migration_probe(VFIODevice *vbasedev, Error **errp)
> > +{
> > +    struct vfio_region_info *info = NULL;
> > +    Error *local_err = NULL;
> > +    int ret;
> > +
> > +    ret = vfio_get_dev_region_info(vbasedev, VFIO_REGION_TYPE_MIGRATION,
> > +                                   VFIO_REGION_SUBTYPE_MIGRATION, &info);
> > +    if (ret) {
> > +        goto add_blocker;
> > +    }
> > +
> > +    ret = vfio_migration_init(vbasedev, info);
> > +    if (ret) {
> > +        goto add_blocker;
> > +    }
> > +
> > +    g_free(info);
> > +    trace_vfio_migration_probe(vbasedev->name, info->index);  
> 
> We free info, and then access info->index. Switching the
> order of the g_free() and the tracepoint seems the obvious fix.
> 
> thanks
> -- PMM
> 


Reply via email to