Fix resource leaks on error paths in write_noreturns(): free buf on
fopen() failure, and free buf + fclose fp on fwrite() failure.
Found by Sashiko review.
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
tools/objtool/check.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 626402023e4a3..8d1448cdb40ca 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -350,11 +350,14 @@ static int write_noreturns(struct objtool_file *file)
fp = fopen(opts.noreturns_write, "w");
if (!fp) {
ERROR_GLIBC("fopen");
+ free(buf);
return -1;
}
if (fwrite(buf, 1, len, fp) != len) {
ERROR_GLIBC("fwrite");
+ free(buf);
+ fclose(fp);
return -1;
}
--
2.55.0