2020-07-02 11:03:52

by Chen Wandun

[permalink] [raw]
Subject: [PATCH] objtool: fix potential memory leak special_get_alts()

If get_alt_entry() return error, struct special_alt will leak.

Fixes: 442f04c34a1a ("objtool: Add tool to perform compile-time stack metadata validation")
Signed-off-by: Chen Wandun <[email protected]>
---
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 e893f1e48e44..90a6ba2d5895 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.17.1


2020-07-02 11:09:10

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] objtool: fix potential memory leak special_get_alts()

On Thu, Jul 02, 2020 at 07:00:25PM +0800, Chen Wandun wrote:
> If get_alt_entry() return error, struct special_alt will leak.
>
> Fixes: 442f04c34a1a ("objtool: Add tool to perform compile-time stack metadata validation")
> Signed-off-by: Chen Wandun <[email protected]>

https://lkml.kernel.org/r/20200427144439.rrywv56mjfypupgh@treble