summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Lerda <patrick9876@free.fr>2023-01-18 15:03:01 +0100
committerMarge Bot <emma+marge@anholt.net>2023-01-18 17:50:40 +0000
commit5e3ca1f97fa9a3518f782f9721968dbe936fc8c4 (patch)
tree42a7c1aaa0b10307dbebe580d78be5965b97b061
parent926ba335fdf357e8bc8df0959c1ae72ba35204a4 (diff)
downloadmesa-5e3ca1f97fa9a3518f782f9721968dbe936fc8c4.tar.gz
lima: fix memory leak related to u_transfer_helper_create()
Direct leak of 16 byte(s) in 1 object(s) allocated from: #0 0x7fb6224340 in calloc (/usr/lib64/libasan.so.6.0.0+0xa4340) #1 0x7facfdd5a0 in u_transfer_helper_create ../src/gallium/auxiliary/util/u_transfer_helper.c:580 #2 0x7facf2e09c in lima_resource_screen_init ../src/gallium/drivers/lima/lima_resource.c:935 #3 0x7facf23af4 in lima_screen_create ../src/gallium/drivers/lima/lima_screen.c:746 #4 0x7fac83ed30 in kmsro_drm_screen_create ../src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c:124 Signed-off-by: Patrick Lerda <patrick9876@free.fr> Reviewed-by: Erico Nunes <nunes.erico@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20764>
-rw-r--r--src/gallium/drivers/lima/lima_resource.c6
-rw-r--r--src/gallium/drivers/lima/lima_resource.h3
-rw-r--r--src/gallium/drivers/lima/lima_screen.c1
3 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/lima/lima_resource.c b/src/gallium/drivers/lima/lima_resource.c
index 260212178bb..54869ec03d2 100644
--- a/src/gallium/drivers/lima/lima_resource.c
+++ b/src/gallium/drivers/lima/lima_resource.c
@@ -935,6 +935,12 @@ lima_resource_screen_init(struct lima_screen *screen)
}
void
+lima_resource_screen_destroy(struct lima_screen *screen)
+{
+ u_transfer_helper_destroy(screen->base.transfer_helper);
+}
+
+void
lima_resource_context_init(struct lima_context *ctx)
{
ctx->base.create_surface = lima_surface_create;
diff --git a/src/gallium/drivers/lima/lima_resource.h b/src/gallium/drivers/lima/lima_resource.h
index b02fa2d14ec..300a606f55c 100644
--- a/src/gallium/drivers/lima/lima_resource.h
+++ b/src/gallium/drivers/lima/lima_resource.h
@@ -95,6 +95,9 @@ void
lima_resource_screen_init(struct lima_screen *screen);
void
+lima_resource_screen_destroy(struct lima_screen *screen);
+
+void
lima_resource_context_init(struct lima_context *ctx);
#endif
diff --git a/src/gallium/drivers/lima/lima_screen.c b/src/gallium/drivers/lima/lima_screen.c
index fd0f0818d14..081060eba57 100644
--- a/src/gallium/drivers/lima/lima_screen.c
+++ b/src/gallium/drivers/lima/lima_screen.c
@@ -63,6 +63,7 @@ lima_screen_destroy(struct pipe_screen *pscreen)
lima_bo_cache_fini(screen);
lima_bo_table_fini(screen);
disk_cache_destroy(screen->disk_cache);
+ lima_resource_screen_destroy(screen);
ralloc_free(screen);
}