]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: fix sk_skb programs without skb->dev assigned
authorJohn Fastabend <john.fastabend@gmail.com>
Thu, 5 Jul 2018 15:49:59 +0000 (08:49 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 7 Jul 2018 22:19:29 +0000 (15:19 -0700)
commit3c36c531e26fd8c0437e1701b79eca5e4359be53
tree77b565cda20fbeeec014f9d7c63b48d1b9c14505
parent68575ad54107278a73fd6b163220f6e11ea8add9
bpf: fix sk_skb programs without skb->dev assigned

Multiple BPF helpers in use by sk_skb programs calculate the max
skb length using the __bpf_skb_max_len function. However, this
calculates the max length using the skb->dev pointer which can be
NULL when an sk_skb program is paired with an sk_msg program.

To force this a sk_msg program needs to redirect into the ingress
path of a sock with an attach sk_skb program. Then the the sk_skb
program would need to call one of the helpers that adjust the skb
size.

To fix the null ptr dereference use SKB_MAX_ALLOC size if no dev
is available.

Fixes: 995b1a2f7b09 ("bpf: sockmap redirect ingress support")
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
net/core/filter.c