diff options
Diffstat (limited to 'kernel/bpf')
| -rw-r--r-- | kernel/bpf/verifier.c | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index f5a0077c9981..206c221453cf 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -12295,6 +12295,10 @@ static int convert_ctx_accesses(struct bpf_verifier_env *env)  		if (is_narrower_load && size < target_size) {  			u8 shift = bpf_ctx_narrow_access_offset(  				off, size, size_default) * 8; +			if (shift && cnt + 1 >= ARRAY_SIZE(insn_buf)) { +				verbose(env, "bpf verifier narrow ctx load misconfigured\n"); +				return -EINVAL; +			}  			if (ctx_field_size <= 4) {  				if (shift)  					insn_buf[cnt++] = BPF_ALU32_IMM(BPF_RSH, | 
