samples/bpf: fix uninitialized warning with test_current_task_under_cgroup
authorDaniel T. Lee <danieltimlee@gmail.com>
Sun, 18 Dec 2022 06:14:53 +0000 (15:14 +0900)
committerMartin KaFai Lau <martin.lau@kernel.org>
Mon, 19 Dec 2022 22:21:05 +0000 (14:21 -0800)
Currently, compiling samples/bpf with LLVM warns about the uninitialized
use of variable with test_current_task_under_cgroup.

    ./samples/bpf/test_current_task_under_cgroup_user.c:57:6:
    warning: variable 'cg2' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    if (setup_cgroup_environment())
^~~~~~~~~~~~~~~~~~~~~~~~~~
    ./samples/bpf/test_current_task_under_cgroup_user.c:106:8:
    note: uninitialized use occurs here
    close(cg2);
  ^~~
    ./samples/bpf/test_current_task_under_cgroup_user.c:57:2:
    note: remove the 'if' if its condition is always false
    if (setup_cgroup_environment())
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./samples/bpf/test_current_task_under_cgroup_user.c:19:9:
    note: initialize the variable 'cg2' to silence this warning
    int cg2, idx = 0, rc = 1;
   ^
    = 0
    1 warning generated.

This commit resolve this compiler warning by pre-initialize the variable
with error for safeguard.

Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/r/20221218061453.6287-4-danieltimlee@gmail.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
samples/bpf/test_current_task_under_cgroup_user.c

index ac251a4..6fb2590 100644 (file)
@@ -14,9 +14,9 @@
 int main(int argc, char **argv)
 {
        pid_t remote_pid, local_pid = getpid();
+       int cg2 = -1, idx = 0, rc = 1;
        struct bpf_link *link = NULL;
        struct bpf_program *prog;
-       int cg2, idx = 0, rc = 1;
        struct bpf_object *obj;
        char filename[256];
        int map_fd[2];
@@ -103,7 +103,9 @@ int main(int argc, char **argv)
        rc = 0;
 
 err:
-       close(cg2);
+       if (cg2 != -1)
+               close(cg2);
+
        cleanup_cgroup_environment();
 
 cleanup: