From 4a38ed822ab0c3d0f663dd5bec238a0839d03b01 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Sat, 30 Oct 2021 15:12:00 -0700 Subject: [PATCH] virgl: Allocate qdws after virgl_init_context to avoid leak. Fix defect reported by Coverity Scan. Resource leak (RESOURCE_LEAK) leaked_storage: Variable qdws going out of scope leaks the storage it points to. Fixes: 9a7d6a110e2 ("virgl/drm: explicit context initialization") Suggested-by: Gert Wollny Signed-off-by: Vinson Lee Reviewed-by: Gert Wollny Part-of: --- src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c index 6d995f2a7b4..6bb14d7271d 100644 --- a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c +++ b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c @@ -1220,16 +1220,16 @@ virgl_drm_winsys_create(int drmFD) if (drm_version < 0) return NULL; - qdws = CALLOC_STRUCT(virgl_drm_winsys); - if (!qdws) - return NULL; - if (params[param_context_init].value) { ret = virgl_init_context(drmFD); if (ret) return NULL; } + qdws = CALLOC_STRUCT(virgl_drm_winsys); + if (!qdws) + return NULL; + qdws->fd = drmFD; virgl_resource_cache_init(&qdws->cache, CACHE_TIMEOUT_USEC, virgl_drm_resource_cache_entry_is_busy,