[PATCH] objtool: Fix memory leakage in special_get_alts

From: Hewenliang
Date: Fri Oct 25 2019 - 05:06:21 EST


special_get_alts just returns without releasing the memory which is
pointed by alt When get_alt_entry returns -1. It will cause the leakage
of memory. We should free the memory before special_get_alts returns
because of error.

Fixes: 442f04c34a1a ("objtool: Add tool to perform compile-time stack metadata validation")
Signed-off-by: Hewenliang <hewenliang4@xxxxxxxxxx>
---
tools/objtool/special.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/objtool/special.c b/tools/objtool/special.c
index fdbaa611146d..019ce8ecc101 100644
--- a/tools/objtool/special.c
+++ b/tools/objtool/special.c
@@ -188,8 +188,10 @@ int special_get_alts(struct elf *elf, struct list_head *alts)
memset(alt, 0, sizeof(*alt));

ret = get_alt_entry(elf, entry, sec, idx, alt);
- if (ret)
+ if (ret) {
+ free(alt);
return ret;
+ }

list_add_tail(&alt->list, alts);
}
--
2.19.1