]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ovpn: reset MAC header before passing skb up
authorQingfang Deng <qingfang.deng@linux.dev>
Mon, 27 Apr 2026 04:00:11 +0000 (12:00 +0800)
committerAntonio Quartulli <antonio@openvpn.net>
Mon, 4 May 2026 22:31:05 +0000 (00:31 +0200)
After decapsulating a packet, the skb->mac_header still points to the
outer transport header.

Fix this by calling skb_reset_mac_header() in ovpn_netdev_write() to
ensure the MAC header points to the beginning of
the inner IP/network packet, as expected by the rest of the stack.

Reported-by: Minqiang Chen <ptpt52@gmail.com>
Fixes: 8534731dbf2d ("ovpn: implement packet processing")
Signed-off-by: Qingfang Deng <qingfang.deng@linux.dev>
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
drivers/net/ovpn/io.c

index db43a1f8a07a271fc4c8c8847a949f454d077643..d92bb87be2b2e11eb0be60a086c729bf914f6a91 100644 (file)
@@ -85,6 +85,7 @@ static void ovpn_netdev_write(struct ovpn_peer *peer, struct sk_buff *skb)
        skb_scrub_packet(skb, true);
 
        /* network header reset in ovpn_decrypt_post() */
+       skb_reset_mac_header(skb);
        skb_reset_transport_header(skb);
        skb_reset_inner_headers(skb);