]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
tun: Add missing bpf_net_ctx_clear() in do_xdp_generic()
authorJeongjun Park <aha310510@gmail.com>
Thu, 25 Jul 2024 21:40:49 +0000 (06:40 +0900)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Jul 2024 09:55:15 +0000 (10:55 +0100)
There are cases where do_xdp_generic returns bpf_net_context without
clearing it. This causes various memory corruptions, so the missing
bpf_net_ctx_clear must be added.

Reported-by: syzbot+44623300f057a28baf1e@syzkaller.appspotmail.com
Fixes: fecef4cd42c6 ("tun: Assign missing bpf_net_context.")
Signed-off-by: Jeongjun Park <aha310510@gmail.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Reported-by: syzbot+3c2b6d5d4bec3b904933@syzkaller.appspotmail.com
Reported-by: syzbot+707d98c8649695eaf329@syzkaller.appspotmail.com
Reported-by: syzbot+c226757eb784a9da3e8b@syzkaller.appspotmail.com
Reported-by: syzbot+61a1cfc2b6632363d319@syzkaller.appspotmail.com
Reported-by: syzbot+709e4c85c904bcd62735@syzkaller.appspotmail.com
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c

index 6ea1d20676fbe9da53c1b7491fc87202bb100649..751d9b70e6ad763dfb2850217056474971722f81 100644 (file)
@@ -5150,6 +5150,7 @@ int do_xdp_generic(struct bpf_prog *xdp_prog, struct sk_buff **pskb)
                        bpf_net_ctx_clear(bpf_net_ctx);
                        return XDP_DROP;
                }
+               bpf_net_ctx_clear(bpf_net_ctx);
        }
        return XDP_PASS;
 out_redir: