On Thu, 27 May 2021 at 15:28, Gerd Hoffmann <kra...@redhat.com> wrote: > > From: Li Qiang <liq...@163.com> > > Call 'vugbm_buffer_destroy' in error path to avoid resource leak. > > Fixes: CVE-2021-3544 > Reported-by: Li Qiang <liq...@163.com> > Reviewed-by: Prasad J Pandit <p...@fedoraproject.org> > Signed-off-by: Li Qiang <liq...@163.com> > Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> > Message-Id: <20210516030403.107723-3-liq...@163.com> > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > --- > contrib/vhost-user-gpu/vhost-user-gpu.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/contrib/vhost-user-gpu/vhost-user-gpu.c > b/contrib/vhost-user-gpu/vhost-user-gpu.c > index f73f292c9f72..b5e153d0d648 100644 > --- a/contrib/vhost-user-gpu/vhost-user-gpu.c > +++ b/contrib/vhost-user-gpu/vhost-user-gpu.c > @@ -349,6 +349,7 @@ vg_resource_create_2d(VuGpu *g, > g_critical("%s: resource creation failed %d %d %d", > __func__, c2d.resource_id, c2d.width, c2d.height); > g_free(res); > + vugbm_buffer_destroy(&res->buffer); > cmd->error = VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY; > return; > }
Hi; Coverity reports this as a use-after-free: we free 'res' and then on the next line we pass a pointer into this freed memory to vugbm_buffer_destroy(), which dereferences it. Probably the two lines should be in the other order ? (CID 1453812) thanks -- PMM