Re: [PATCH] perf lock: Fix a memory leak on an error path

From: Peter Zijlstra
Date: Fri Nov 24 2023 - 04:56:03 EST


On Fri, Nov 24, 2023 at 05:26:57PM +0800, zhaimingbing wrote:
> if a strdup-ed string is NULL,the allocated memory needs freeing.
>
> Signed-off-by: zhaimingbing <zhaimingbing@xxxxxxxxxxxxxxxxxxxx>
> ---
> tools/perf/builtin-lock.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
> index b141f2134..086041bcb 100644
> --- a/tools/perf/builtin-lock.c
> +++ b/tools/perf/builtin-lock.c
> @@ -2228,8 +2228,10 @@ static int __cmd_record(int argc, const char **argv)
> else
> ev_name = strdup(contention_tracepoints[j].name);
>
> - if (!ev_name)
> + if (!ev_name) {
> + free(rec_argv);
> return -ENOMEM;
> + }

Isn't this an error path straight into exit?