]> www.infradead.org Git - users/jedix/linux-maple.git/commit
net: bpf: reject invalid shifts
authorRabin Vincent <rabin@rab.in>
Tue, 12 Jan 2016 19:17:08 +0000 (20:17 +0100)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 26 May 2016 22:43:27 +0000 (15:43 -0700)
commitad8a731320c4cfaa80dbfbcbd01d079e09dd92c5
tree38ba8a2aeb16252befce71c745e9f6d97d13bf49
parente1b41dbb5e8d9d97ab45639c1415e30ed372f161
net: bpf: reject invalid shifts

Orabug: 23330560

[ Upstream commit 229394e8e62a4191d592842cf67e80c62a492937 ]

On ARM64, a BUG() is triggered in the eBPF JIT if a filter with a
constant shift that can't be encoded in the immediate field of the
UBFM/SBFM instructions is passed to the JIT.  Since these shifts
amounts, which are negative or >= regsize, are invalid, reject them in
the eBPF verifier and the classic BPF filter checker, for all
architectures.

Signed-off-by: Rabin Vincent <rabin@rab.in>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit dc1cfcc266978d0213d7d4f9f813bafd4e9f709a)

Signed-off-by: Dan Duval <dan.duval@oracle.com>
kernel/bpf/verifier.c
net/core/filter.c