diff mbox series

[bpf-next] bpf: fix a (false) compiler warning

Message ID 20190116164432.102776-1-posk@google.com
State Superseded
Delegated to: BPF Maintainers
Headers show
Series [bpf-next] bpf: fix a (false) compiler warning | expand

Commit Message

Peter Oskolkov Jan. 16, 2019, 4:44 p.m. UTC
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 comiler is wrong here, the patch makes sure
that prev_offset is always initialized, just to silence the warning.

Signed-off-by: Peter Oskolkov <posk@google.com>
---
 kernel/bpf/verifier.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--

Comments

Martin KaFai Lau Jan. 16, 2019, 6:13 p.m. UTC | #1
On Wed, Jan 16, 2019 at 08:44:32AM -0800, Peter Oskolkov wrote:
> 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 comiler is wrong here, the patch makes sure
s/comiler/compiler/

> that prev_offset is always initialized, just to silence the warning.
> 
> Signed-off-by: Peter Oskolkov <posk@google.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
diff mbox series

Patch

diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 56674a7c3778..ce87198ecd01 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -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;