Mesa (main): virgl: Allocate qdws after virgl_init_context to avoid leak.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Nov 11 02:15:42 UTC 2021


Module: Mesa
Branch: main
Commit: 4a38ed822ab0c3d0f663dd5bec238a0839d03b01
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a38ed822ab0c3d0f663dd5bec238a0839d03b01

Author: Vinson Lee <vlee at freedesktop.org>
Date:   Sat Oct 30 15:12:00 2021 -0700

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 <gert.wollny at collabora.com>
Signed-off-by: Vinson Lee <vlee at freedesktop.org>
Reviewed-by: Gert Wollny <gert.wollny at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13609>

---

 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,



More information about the mesa-commit mailing list