On Sat, Dec 01, 2018 at 01:18:53AM +0100, Daniel Borkmann wrote:
> Currently, pointer offsets in three BPF context structures are
> broken in two scenarios: i) 32 bit compiled applications running
> on 64 bit kernels, and ii) LLVM compiled BPF programs running
> on 32 bit kernels. The latter is due to BPF target machine being
> strictly 64 bit. So in each of the cases the offsets will mismatch
> in verifier when checking / rewriting context access. Fix this by
> providing a helper macro __bpf_md_ptr() that will enforce padding
> up to 64 bit and proper alignment, and for context access a macro
> bpf_ctx_range_ptr() which will cover full 64 bit member range on
> 32 bit archs. For flow_keys, we additionally need to force the
> size check to sizeof(__u64) as with other pointer types.
> 
> Fixes: d58e468b1112 ("flow_dissector: implements flow dissector BPF hook")
> Fixes: 4f738adba30a ("bpf: create tcp_bpf_ulp allowing BPF to monitor socket 
> TX/RX data")
> Fixes: 2dbb9b9e6df6 ("bpf: Introduce BPF_PROG_TYPE_SK_REUSEPORT")
> Reported-by: David S. Miller <da...@davemloft.net>
> Signed-off-by: Daniel Borkmann <dan...@iogearbox.net>
> Acked-by: David S. Miller <da...@davemloft.net>

Applied. Thanks everyone

Reply via email to