Skip to content

Commit 326ae9d

Browse files
committed
net: hsr: fix hsr_init_sk() vs network/transport headers.
JIRA: https://issues.redhat.com/browse/RHEL-84580 commit 9cfb5e7 Author: Eric Dumazet <edumazet@google.com> Date: Fri Nov 22 17:13:43 2024 +0000 net: hsr: fix hsr_init_sk() vs network/transport headers. Following sequence in hsr_init_sk() is invalid : skb_reset_mac_header(skb); skb_reset_mac_len(skb); skb_reset_network_header(skb); skb_reset_transport_header(skb); It is invalid because skb_reset_mac_len() needs the correct network header, which should be after the mac header. This patch moves the skb_reset_network_header() and skb_reset_transport_header() before the call to dev_hard_header(). As a result skb->mac_len is no longer set to a value close to 65535. Fixes: 48b491a ("net: hsr: fix mac_len checks") Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: George McCollister <george.mccollister@gmail.com> Link: https://patch.msgid.link/20241122171343.897551-1-edumazet@google.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Felix Maurer <fmaurer@redhat.com>
1 parent 0268d0a commit 326ae9d

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

net/hsr/hsr_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,15 +260,15 @@ static struct sk_buff *hsr_init_skb(struct hsr_port *master)
260260
skb->dev = master->dev;
261261
skb->priority = TC_PRIO_CONTROL;
262262

263+
skb_reset_network_header(skb);
264+
skb_reset_transport_header(skb);
263265
if (dev_hard_header(skb, skb->dev, ETH_P_PRP,
264266
hsr->sup_multicast_addr,
265267
skb->dev->dev_addr, skb->len) <= 0)
266268
goto out;
267269

268270
skb_reset_mac_header(skb);
269271
skb_reset_mac_len(skb);
270-
skb_reset_network_header(skb);
271-
skb_reset_transport_header(skb);
272272

273273
return skb;
274274
out:

0 commit comments

Comments
 (0)