summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeliang Tang <tanggeliang@kylinos.cn>2024-04-29 10:07:34 +0300
committerAndrii Nakryiko <andrii@kernel.org>2024-04-30 02:17:15 +0300
commit25927d0a1bec5091d371693c9fdd9640478837de (patch)
treef4e0204c8bf1d4b7ca95c274c723c5fe18e82bf1
parent237c522c1d5d19e8d3057a38ce690c753020c7d1 (diff)
downloadlinux-25927d0a1bec5091d371693c9fdd9640478837de.tar.xz
selftests/bpf: Free strdup memory in veristat
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> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Acked-by: Yonghong Song <yonghong.song@linux.dev> Acked-by: John Fastabend <john.fastabend@gmail.com> Link: https://lore.kernel.org/bpf/ded44f8865cd7f337f52fc5fb0a5fbed7d6bd641.1714374022.git.tanggeliang@kylinos.cn
-rw-r--r--tools/testing/selftests/bpf/veristat.c5
1 files changed, 4 insertions, 1 deletions
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;
}