Message ID | b76f2f4c550aebe4ab8ea73d23c4cbe4f06ea996.1714374022.git.tanggeliang@kylinos.cn (mailing list archive) |
---|---|
State | Accepted |
Commit | 237c522c1d5d19e8d3057a38ce690c753020c7d1 |
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 "ptr". Memory for the new string is obtained > with malloc(), and need to be freed with free(). > > This patch adds these missing "free(ptr)" in check_whitelist() and > check_blacklist() to avoid memory leaks in test_sockmap.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 "ptr". Memory for the new string is obtained > with malloc(), and need to be freed with free(). > > This patch adds these missing "free(ptr)" in check_whitelist() and > check_blacklist() to avoid memory leaks in test_sockmap.c. > > Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> > --- Acked-by: John Fastabend <john.fastabend@gmail.com>
diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c index 43612de44fbf..92752f5eeded 100644 --- a/tools/testing/selftests/bpf/test_sockmap.c +++ b/tools/testing/selftests/bpf/test_sockmap.c @@ -1887,10 +1887,13 @@ static int check_whitelist(struct _test *t, struct sockmap_options *opt) while (entry) { if ((opt->prepend && strstr(opt->prepend, entry) != 0) || strstr(opt->map, entry) != 0 || - strstr(t->title, entry) != 0) + strstr(t->title, entry) != 0) { + free(ptr); return 0; + } entry = strtok(NULL, ","); } + free(ptr); return -EINVAL; } @@ -1907,10 +1910,13 @@ static int check_blacklist(struct _test *t, struct sockmap_options *opt) while (entry) { if ((opt->prepend && strstr(opt->prepend, entry) != 0) || strstr(opt->map, entry) != 0 || - strstr(t->title, entry) != 0) + strstr(t->title, entry) != 0) { + free(ptr); return 0; + } entry = strtok(NULL, ","); } + free(ptr); return -EINVAL; }