Message ID | ded44f8865cd7f337f52fc5fb0a5fbed7d6bd641.1714374022.git.tanggeliang@kylinos.cn (mailing list archive) |
---|---|
State | Accepted |
Commit | 25927d0a1bec5091d371693c9fdd9640478837de |
Headers | show |
Series | Free strdup memory in selftests | expand |
On 4/29/24 12:07 AM, Geliang Tang wrote: > From: Geliang Tang <tanggeliang@kylinos.cn> > > The strdup() function returns a pointer to a new string which is a > duplicate of the string "input". Memory for the new string is obtained > with malloc(), and need to be freed with free(). > > This patch adds these missing "free(input)" in parse_stats() to avoid > memory leak in veristat.c. > > Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> Acked-by: Yonghong Song <yonghong.song@linux.dev>
Geliang Tang wrote: > From: Geliang Tang <tanggeliang@kylinos.cn> > > The strdup() function returns a pointer to a new string which is a > duplicate of the string "input". Memory for the new string is obtained > with malloc(), and need to be freed with free(). > > This patch adds these missing "free(input)" in parse_stats() to avoid > memory leak in veristat.c. > > Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> > --- Acked-by: John Fastabend <john.fastabend@gmail.com>
diff --git a/tools/testing/selftests/bpf/veristat.c b/tools/testing/selftests/bpf/veristat.c index 244d4996e06e..b2854238d4a0 100644 --- a/tools/testing/selftests/bpf/veristat.c +++ b/tools/testing/selftests/bpf/veristat.c @@ -792,10 +792,13 @@ static int parse_stats(const char *stats_str, struct stat_specs *specs) while ((next = strtok_r(state ? NULL : input, ",", &state))) { err = parse_stat(next, specs); - if (err) + if (err) { + free(input); return err; + } } + free(input); return 0; }