From 587969154f2cca5c9973bdc20693cd548895efbe Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Mon, 7 Sep 2020 17:23:35 -0700 Subject: [PATCH] freedreno: Fix file descriptor leak. Fix defects reported by Coverity Scan. Resource leak (RESOURCE_LEAK) leaked_handle: Handle variable fd going out of scope leaks the handle. Argument cannot be negative (NEGATIVE_RETURNS) negative_returns: fd is passed to a parameter that cannot be negative. Fixes: 1ea4ef0d3be8 ("freedreno: slurp in decode tools") Signed-off-by: Vinson Lee Reviewed-by: Rob Clark Part-of: --- src/freedreno/decode/pgmdump.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/freedreno/decode/pgmdump.c b/src/freedreno/decode/pgmdump.c index 932fdb55f7e..9bac866e647 100644 --- a/src/freedreno/decode/pgmdump.c +++ b/src/freedreno/decode/pgmdump.c @@ -405,7 +405,10 @@ static void dump_raw_shader(uint32_t *dwords, uint32_t sizedwords, int n, char * sprintf(filename, "%.*s-%d.%s", (int)strlen(infile)-3, infile, n, ext); fd = open(filename, O_WRONLY | O_TRUNC | O_CREAT, 0644); - write(fd, dwords, sizedwords * 4); + if (fd != -1) { + write(fd, dwords, sizedwords * 4); + close(fd); + } } static void dump_shaders_a2xx(struct state *state)