bpf: reserve flags in bpf_skb_net_shrink
authorWillem de Bruijn <willemb@google.com>
Fri, 12 Apr 2019 13:30:48 +0000 (09:30 -0400)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 16 Apr 2019 07:56:20 +0000 (09:56 +0200)
The ENCAP flags in bpf_skb_adjust_room are ignored on decap with
bpf_skb_net_shrink. Reserve these bits for future use.

Fixes: 868d523535c2d ("bpf: add bpf_skb_adjust_room encap flags")
Signed-off-by: Willem de Bruijn <willemb@google.com>
Reviewed-by: Alan Maguire <alan.maguire@oracle.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
net/core/filter.c

index 95a27fd..bd1f519 100644 (file)
@@ -3069,6 +3069,9 @@ static int bpf_skb_net_shrink(struct sk_buff *skb, u32 off, u32 len_diff,
 {
        int ret;
 
+       if (flags & ~BPF_F_ADJ_ROOM_FIXED_GSO)
+               return -EINVAL;
+
        if (skb_is_gso(skb) && !skb_is_gso_tcp(skb)) {
                /* udp gso_size delineates datagrams, only allow if fixed */
                if (!(skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4) ||