2014-06-01 11:36:05

by Rickard Strandqvist

[permalink] [raw]
Subject: [PATCH] tools: lib: traceevent: parse-filter.c: Cleaning up memory leak

There is a risk for memory leak in when something unexpected happens
and the function returns.

This was largely found by using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <[email protected]>
---
tools/lib/traceevent/parse-filter.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/lib/traceevent/parse-filter.c b/tools/lib/traceevent/parse-filter.c
index b502344..5865c9e 100644
--- a/tools/lib/traceevent/parse-filter.c
+++ b/tools/lib/traceevent/parse-filter.c
@@ -1492,8 +1492,10 @@ static int copy_filter_type(struct event_filter *filter,
arg->boolean.value = 0;

filter_type = add_filter_type(filter, event->id);
- if (filter_type == NULL)
+ if (filter_type == NULL) {
+ free_arg(arg);
return -1;
+ }

filter_type->filter = arg;

--
1.7.10.4


2014-06-03 02:19:55

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] tools: lib: traceevent: parse-filter.c: Cleaning up memory leak

On Sun, 1 Jun 2014 13:36:56 +0200
Rickard Strandqvist <[email protected]> wrote:

> There is a risk for memory leak in when something unexpected happens
> and the function returns.
>
> This was largely found by using a static code analysis program called cppcheck.
>
> Signed-off-by: Rickard Strandqvist <[email protected]>

Acked-by: Steven Rostedt <[email protected]>

-- Steve

> ---
> tools/lib/traceevent/parse-filter.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/lib/traceevent/parse-filter.c b/tools/lib/traceevent/parse-filter.c
> index b502344..5865c9e 100644
> --- a/tools/lib/traceevent/parse-filter.c
> +++ b/tools/lib/traceevent/parse-filter.c
> @@ -1492,8 +1492,10 @@ static int copy_filter_type(struct event_filter *filter,
> arg->boolean.value = 0;
>
> filter_type = add_filter_type(filter, event->id);
> - if (filter_type == NULL)
> + if (filter_type == NULL) {
> + free_arg(arg);
> return -1;
> + }
>
> filter_type->filter = arg;
>

2014-06-03 03:11:56

by Namhyung Kim

[permalink] [raw]
Subject: Re: [PATCH] tools: lib: traceevent: parse-filter.c: Cleaning up memory leak

Hi Rickard,

On Sun, 1 Jun 2014 13:36:56 +0200, Rickard Strandqvist wrote:
> There is a risk for memory leak in when something unexpected happens
> and the function returns.
>
> This was largely found by using a static code analysis program called cppcheck.

Nice work!

Acked-by: Namhyung Kim <[email protected]>

Thanks,
Namhyung