From: Geliang Tang <[email protected]>

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 <[email protected]>
---
 tools/testing/selftests/bpf/veristat.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

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;
 }
 
-- 
2.40.1


Reply via email to