mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
ARM: net: bpf: fix zero right shift
The LSR instruction cannot be used to perform a zero right shift since a 0 as the immediate value (imm5) in the LSR instruction encoding means that a shift of 32 is perfomed. See DecodeIMMShift() in the ARM ARM. Make the JIT skip generation of the LSR if a zero-shift is requested. This was found using american fuzzy lop. Signed-off-by: Rabin Vincent <rabin@rab.in> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
60aa3b080a
commit
f941461c92
@ -756,7 +756,8 @@ load_ind:
|
||||
case BPF_ALU | BPF_RSH | BPF_K:
|
||||
if (unlikely(k > 31))
|
||||
return -1;
|
||||
emit(ARM_LSR_I(r_A, r_A, k), ctx);
|
||||
if (k)
|
||||
emit(ARM_LSR_I(r_A, r_A, k), ctx);
|
||||
break;
|
||||
case BPF_ALU | BPF_RSH | BPF_X:
|
||||
update_on_xread(ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user