2021-07-02 03:15:29

by Gu Shengxian

[permalink] [raw]
Subject: [PATCH] objtool: avoid Memory leak: orig_alt_group

From: gushengxian <[email protected]>

free(orig_alt_group) should be added in order to avoid memery leak.
Reported by cppcheck.

Signed-off-by: gushengxian <[email protected]>
---
tools/objtool/check.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index e5947fbb9e7a..deb48b1bc16d 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1097,6 +1097,7 @@ static int handle_group_alt(struct objtool_file *file,
sizeof(struct cfi_state *));
if (!orig_alt_group->cfi) {
WARN("calloc failed");
+ free(orig_alt_group);
return -1;
}

--
2.25.1


2021-07-02 08:29:21

by Miroslav Benes

[permalink] [raw]
Subject: Re: [PATCH] objtool: avoid Memory leak: orig_alt_group

Hi,

On Thu, 1 Jul 2021, gushengxian wrote:

> From: gushengxian <[email protected]>
>
> free(orig_alt_group) should be added in order to avoid memery leak.
> Reported by cppcheck.
>
> Signed-off-by: gushengxian <[email protected]>

It is not necessary. Objtool would exit immediately in case of this error
and we do not handle the allocations in such cases.

> ---
> tools/objtool/check.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tools/objtool/check.c b/tools/objtool/check.c
> index e5947fbb9e7a..deb48b1bc16d 100644
> --- a/tools/objtool/check.c
> +++ b/tools/objtool/check.c
> @@ -1097,6 +1097,7 @@ static int handle_group_alt(struct objtool_file *file,
> sizeof(struct cfi_state *));
> if (!orig_alt_group->cfi) {
> WARN("calloc failed");
> + free(orig_alt_group);
> return -1;
> }

There are more sites like this in the code. For example there is one a
couple of lines later in the same function. It is fine.

Regards
Miroslav