arm64: bpf: fix mod-by-zero case
authorZi Shen Lim <zlim.lnx@gmail.com>
Thu, 5 Nov 2015 04:43:59 +0000 (20:43 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 31 Jan 2016 19:23:39 +0000 (11:23 -0800)
commitf22c64cd0745e9b6bc1c68d82affe9dd2151625a
treeac9c0d7c89b84cf4902ce4a655dfe6bbdefc92e7
parent40c5dde6eb7e1d23ab8f4152d28bd71b5e30f8f6
arm64: bpf: fix mod-by-zero case

commit 14e589ff4aa3f28a5424e92b6495ecb8950080f7 upstream.

Turns out in the case of modulo by zero in a BPF program:
A = A % X;  (X == 0)
the expected behavior is to terminate with return value 0.

The bug in JIT is exposed by a new test case [1].

[1] https://lkml.org/lkml/2015/11/4/499

Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com>
Reported-by: Yang Shi <yang.shi@linaro.org>
Reported-by: Xi Wang <xi.wang@gmail.com>
CC: Alexei Starovoitov <ast@plumgrid.com>
Fixes: e54bcde3d69d ("arm64: eBPF JIT compiler")
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/net/bpf_jit_comp.c