diff options
| author | Peter Oskolkov <posk@google.com> | 2019-01-16 13:43:01 -0500 |
|---|---|---|
| committer | Daniel Borkmann <daniel@iogearbox.net> | 2019-01-17 04:40:16 -0500 |
| commit | d0b2818efbe27e6c2e0c52621c8db18eb5abb5e1 (patch) | |
| tree | 5c56548f2657341295bbe2fd9a02fe4ff96c29c6 /kernel | |
| parent | 4edc01b846b765fed615ce84cc204453bd983dbf (diff) | |
bpf: fix a (false) compiler warning
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>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/bpf/verifier.c | 3 |
1 files changed, 2 insertions, 1 deletions
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, | |||
| 4997 | const union bpf_attr *attr, | 4997 | const union bpf_attr *attr, |
| 4998 | union bpf_attr __user *uattr) | 4998 | union bpf_attr __user *uattr) |
| 4999 | { | 4999 | { |
| 5000 | u32 i, nfuncs, urec_size, min_size, prev_offset; | 5000 | u32 i, nfuncs, urec_size, min_size; |
| 5001 | u32 krec_size = sizeof(struct bpf_func_info); | 5001 | u32 krec_size = sizeof(struct bpf_func_info); |
| 5002 | struct bpf_func_info *krecord; | 5002 | struct bpf_func_info *krecord; |
| 5003 | const struct btf_type *type; | 5003 | const struct btf_type *type; |
| 5004 | struct bpf_prog *prog; | 5004 | struct bpf_prog *prog; |
| 5005 | const struct btf *btf; | 5005 | const struct btf *btf; |
| 5006 | void __user *urecord; | 5006 | void __user *urecord; |
| 5007 | u32 prev_offset = 0; | ||
| 5007 | int ret = 0; | 5008 | int ret = 0; |
| 5008 | 5009 | ||
| 5009 | nfuncs = attr->func_info_cnt; | 5010 | nfuncs = attr->func_info_cnt; |
