summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorQingfang Deng <qingfang.deng@linux.dev>2026-04-27 12:00:11 +0800
committerAntonio Quartulli <antonio@openvpn.net>2026-05-05 00:31:05 +0200
commita200cdbf95932631ec338d08a6e9e31b34c4e8a6 (patch)
tree0e05f4add0f213ea66b7448fbe9ae1441519e6db /drivers
parentbd3a4795d5744f59a1f485379f1303e5e606f377 (diff)
ovpn: reset MAC header before passing skb up
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ovpn/io.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ovpn/io.c b/drivers/net/ovpn/io.c
index db43a1f8a07a..d92bb87be2b2 100644
--- a/drivers/net/ovpn/io.c
+++ b/drivers/net/ovpn/io.c
@@ -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);