Skip to content

Commit 9e0e48d

Browse files
wdebruijZhengShunQian
authored andcommitted
packet: reset network header if packet shorter than ll reserved space
[ Upstream commit 993675a ] If variable length link layer headers result in a packet shorter than dev->hard_header_len, reset the network header offset. Else skb->mac_len may exceed skb->len after skb_mac_reset_len. packet_sendmsg_spkt already has similar logic. Fixes: b84bbaf ("packet: in packet_snd start writing at link layer allocation") Signed-off-by: Willem de Bruijn <[email protected]> Signed-off-by: David S. Miller <[email protected]> Signed-off-by: Sasha Levin <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent dbcb419 commit 9e0e48d

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

net/packet/af_packet.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2780,6 +2780,8 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
27802780
goto out_free;
27812781
} else if (reserve) {
27822782
skb_reserve(skb, -reserve);
2783+
if (len < reserve)
2784+
skb_reset_network_header(skb);
27832785
}
27842786

27852787
/* Returns -EFAULT on error */

0 commit comments

Comments
 (0)