Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/bpf: Fix file descriptor leak in load_kallsyms()

Currently, if sym_cnt > 0, it just returns and does not close file, fix it.

Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220405145711.49543-1-ytcoode@gmail.com

authored by

Yuntao Wang and committed by
Andrii Nakryiko
2d0df019 042152c2

+5 -4
+5 -4
tools/testing/selftests/bpf/trace_helpers.c
··· 25 25 26 26 int load_kallsyms(void) 27 27 { 28 - FILE *f = fopen("/proc/kallsyms", "r"); 28 + FILE *f; 29 29 char func[256], buf[256]; 30 30 char symbol; 31 31 void *addr; 32 32 int i = 0; 33 - 34 - if (!f) 35 - return -ENOENT; 36 33 37 34 /* 38 35 * This is called/used from multiplace places, ··· 37 40 */ 38 41 if (sym_cnt) 39 42 return 0; 43 + 44 + f = fopen("/proc/kallsyms", "r"); 45 + if (!f) 46 + return -ENOENT; 40 47 41 48 while (fgets(buf, sizeof(buf), f)) { 42 49 if (sscanf(buf, "%p %c %s", &addr, &symbol, func) != 3)