summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinson Lee <vlee@freedesktop.org>2021-02-13 20:34:39 -0800
committerDylan Baker <dylan.c.baker@intel.com>2021-02-18 14:09:07 -0800
commitc6140fb09df58f0bcd7249397c158c9d8c4e5b9c (patch)
treeb0fbaa25ff23ce6a599316d3bf1a0ce9ceedba56
parenteeb7cb93d2da1c4a12b335ba2baff2ea9b67843d (diff)
downloadmesa-c6140fb09df58f0bcd7249397c158c9d8c4e5b9c.tar.gz
mesa-c6140fb09df58f0bcd7249397c158c9d8c4e5b9c.tar.bz2
mesa-c6140fb09df58f0bcd7249397c158c9d8c4e5b9c.zip
etnaviv: Fix memory leak in etna_vertex_elements_state_create.
Fix defect reported by Coverity Scan. Resource leak (RESOURCE_LEAK) leaked_storage: Variable cs going out of scope leaks the storage it points to. Fixes: c9e8b49b885 ("etnaviv: gallium driver for Vivante GPUs") Signed-off-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9034> (cherry picked from commit a7a7d25e5b909711e3649eba2f24cc04dca8ab20)
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_state.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json
index 11052ffa27d..3b97c9b3ef7 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -832,7 +832,7 @@
"description": "etnaviv: Fix memory leak in etna_vertex_elements_state_create.",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "c9e8b49b885242d84ba031dacef5aa4a5ac1e5b6"
},
diff --git a/src/gallium/drivers/etnaviv/etnaviv_state.c b/src/gallium/drivers/etnaviv/etnaviv_state.c
index 730853698af..b38b2e7181d 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_state.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_state.c
@@ -518,6 +518,7 @@ etna_vertex_elements_state_create(struct pipe_context *pctx,
if (num_elements > screen->specs.vertex_max_elements) {
BUG("number of elements (%u) exceeds chip maximum (%u)", num_elements,
screen->specs.vertex_max_elements);
+ FREE(cs);
return NULL;
}