Mesa (staging/20.1): etnaviv: Fix memory leak on error path.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jun 1 16:45:52 UTC 2020
Module: Mesa
Branch: staging/20.1
Commit: 0ce16144db63e7ff3e6416451bb624646ee08be3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0ce16144db63e7ff3e6416451bb624646ee08be3
Author: Vinson Lee <vlee at freedesktop.org>
Date: Tue May 26 15:54:06 2020 -0700
etnaviv: Fix memory leak on error path.
Fix warning reported by Coverity Scan.
Resource leak (RESOURCE_LEAK)
leaked_storage: Variable pq going out of scope leaks the storage it
points to.
Suggested-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Fixes: eed5a009897a ("etnaviv: convert perfmon queries to acc queries")
Signed-off-by: Vinson Lee <vlee at freedesktop.org>
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5220>
(cherry picked from commit f047d585ee472a314d4ad5da4dffa5e7c2a42eb5)
---
.pick_status.json | 2 +-
src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c | 9 +++++----
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/.pick_status.json b/.pick_status.json
index b7a3b94e115..a01d9561317 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -130,7 +130,7 @@
"description": "etnaviv: Fix memory leak on error path.",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "eed5a009897a859ec118ef84c0437be174a49da3"
},
diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c b/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c
index 5a5ffdb5d61..7c49fc88fad 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c
@@ -101,12 +101,9 @@ perfmon_supports(unsigned query_type)
static struct etna_acc_query *
perfmon_allocate(struct etna_context *ctx, unsigned query_type)
{
- struct etna_pm_query *pq = CALLOC_STRUCT(etna_pm_query);
+ struct etna_pm_query *pq;
const struct etna_perfmon_config *cfg;
- if (!pq)
- return NULL;
-
cfg = etna_pm_query_config(query_type);
if (!cfg)
return false;
@@ -114,6 +111,10 @@ perfmon_allocate(struct etna_context *ctx, unsigned query_type)
if (!etna_pm_cfg_supported(ctx->screen->perfmon, cfg))
return false;
+ pq = CALLOC_STRUCT(etna_pm_query);
+ if (!pq)
+ return NULL;
+
pm_add_signal(pq, ctx->screen->perfmon, cfg);
return &pq->base;
More information about the mesa-commit
mailing list