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 |
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 --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;
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(-) --