diff options
| author | Qingfang Deng <qingfang.deng@linux.dev> | 2026-04-27 12:00:11 +0800 |
|---|---|---|
| committer | Antonio Quartulli <antonio@openvpn.net> | 2026-05-05 00:31:05 +0200 |
| commit | a200cdbf95932631ec338d08a6e9e31b34c4e8a6 (patch) | |
| tree | 0e05f4add0f213ea66b7448fbe9ae1441519e6db /drivers | |
| parent | bd3a4795d5744f59a1f485379f1303e5e606f377 (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.c | 1 |
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); |
