Module: Mesa Branch: staging/20.1 Commit: 87ec69b1f4a537be3c4adc6f5b28c85e0d5d1683 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=87ec69b1f4a537be3c4adc6f5b28c85e0d5d1683
Author: Vinson Lee <v...@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.gmei...@gmail.com> Fixes: eed5a009897a ("etnaviv: convert perfmon queries to acc queries") Signed-off-by: Vinson Lee <v...@freedesktop.org> Reviewed-by: Christian Gmeiner <christian.gmei...@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; _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit