bpf: fix a (false) compiler warning
authorPeter Oskolkov <posk@google.com>
Wed, 16 Jan 2019 18:43:01 +0000 (10:43 -0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 17 Jan 2019 09:40:16 +0000 (10:40 +0100)
An older GCC compiler complains:

kernel/bpf/verifier.c: In function 'bpf_check':
kernel/bpf/verifier.c:4***:13: error: 'prev_offset' may be used uninitialized
      in this function [-Werror=maybe-uninitialized]
   } else if (krecord[i].insn_offset <= prev_offset) {
             ^
kernel/bpf/verifier.c:4***:38: note: 'prev_offset' was declared here
  u32 i, nfuncs, urec_size, min_size, prev_offset;

Although the compiler is wrong here, the patch makes sure
that prev_offset is always initialized, just to silence the warning.

v2: fix a spelling error in the commit message.

Signed-off-by: Peter Oskolkov <posk@google.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
kernel/bpf/verifier.c

index 56674a7c377884b17d8296b6cf6f6e31a8158916..ce87198ecd01e3268ec25dd7859d863cec9c8f34 100644 (file)
@@ -4997,13 +4997,14 @@ static int check_btf_func(struct bpf_verifier_env *env,
                          const union bpf_attr *attr,
                          union bpf_attr __user *uattr)
 {
-       u32 i, nfuncs, urec_size, min_size, prev_offset;
+       u32 i, nfuncs, urec_size, min_size;
        u32 krec_size = sizeof(struct bpf_func_info);
        struct bpf_func_info *krecord;
        const struct btf_type *type;
        struct bpf_prog *prog;
        const struct btf *btf;
        void __user *urecord;
+       u32 prev_offset = 0;
        int ret = 0;
 
        nfuncs = attr->func_info_cnt;