selftests/bpf: Initialize duration variable before using
authorJohn Sperbeck <jsperbeck@google.com>
Thu, 23 Jan 2020 23:51:44 +0000 (15:51 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 24 Jan 2020 10:05:45 +0000 (11:05 +0100)
The 'duration' variable is referenced in the CHECK() macro, and there are
some uses of the macro before 'duration' is set.  The clang compiler
(validly) complains about this.

Sample error:

.../selftests/bpf/prog_tests/fexit_test.c:23:6: warning: variable 'duration' is uninitialized when used here [-Wuninitialized]
        if (CHECK(err, "prog_load sched cls", "err %d errno %d\n", err, errno))
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../selftests/bpf/test_progs.h:134:25: note: expanded from macro 'CHECK'
        if (CHECK(err, "prog_load sched cls", "err %d errno %d\n", err, errno))
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        _CHECK(condition, tag, duration, format)
                               ^~~~~~~~

Signed-off-by: John Sperbeck <jsperbeck@google.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/20200123235144.93610-1-sdf@google.com
tools/testing/selftests/bpf/prog_tests/fentry_test.c
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
tools/testing/selftests/bpf/prog_tests/fexit_test.c

index e1a379f..5cc0602 100644 (file)
@@ -9,7 +9,7 @@ void test_fentry_test(void)
        struct test_pkt_access *pkt_skel = NULL;
        struct fentry_test *fentry_skel = NULL;
        int err, pkt_fd, i;
-       __u32 duration, retval;
+       __u32 duration = 0, retval;
        __u64 *result;
 
        pkt_skel = test_pkt_access__open_and_load();
index db5c74d..cde463a 100644 (file)
@@ -11,7 +11,7 @@ static void test_fexit_bpf2bpf_common(const char *obj_file,
        int err, pkt_fd, i;
        struct bpf_link **link = NULL;
        struct bpf_program **prog = NULL;
-       __u32 duration, retval;
+       __u32 duration = 0, retval;
        struct bpf_map *data_map;
        const int zero = 0;
        u64 *result = NULL;
index f990132..d2c3655 100644 (file)
@@ -13,7 +13,7 @@ void test_fexit_test(void)
        int err, pkt_fd, kfree_skb_fd, i;
        struct bpf_link *link[6] = {};
        struct bpf_program *prog[6];
-       __u32 duration, retval;
+       __u32 duration = 0, retval;
        struct bpf_map *data_map;
        const int zero = 0;
        u64 result[6];