[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20181201011521.wevfputribyv4dfs@ast-mbp.dhcp.thefacebook.com>
Date: Fri, 30 Nov 2018 17:15:22 -0800
From: Alexei Starovoitov <alexei.starovoitov@...il.com>
To: Daniel Borkmann <daniel@...earbox.net>
Cc: davem@...emloft.net, john.fastabend@...il.com,
netdev@...r.kernel.org
Subject: Re: [PATCH bpf] bpf: fix pointer offsets in context for 32 bit
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 <davem@...emloft.net>
> Signed-off-by: Daniel Borkmann <daniel@...earbox.net>
> Acked-by: David S. Miller <davem@...emloft.net>
Applied. Thanks everyone
Powered by blists - more mailing lists