udp: fix IP_CHECKSUM handling
First bug was added in commitad6f939ab1
("ip: Add offset parameter to ip_cmsg_recv") : Tom missed that ipv4 udp messages could be received on AF_INET6 socket. ip_cmsg_recv(msg, skb) should have been replaced by ip_cmsg_recv_offset(msg, skb, sizeof(struct udphdr)); Then commite6afc8ace6
("udp: remove headers from UDP packets before queueing") forgot to adjust the offsets now UDP headers are pulled before skb are put in receive queue. Fixes:ad6f939ab1
("ip: Add offset parameter to ip_cmsg_recv") Fixes:e6afc8ace6
("udp: remove headers from UDP packets before queueing") Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Sam Kumar <samanthakumar@google.com> Cc: Willem de Bruijn <willemb@google.com> Tested-by: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

کامیت شده توسط
David S. Miller

والد
ecc515d723
کامیت
10df8e6152
@@ -427,7 +427,8 @@ try_again:
|
||||
|
||||
if (is_udp4) {
|
||||
if (inet->cmsg_flags)
|
||||
ip_cmsg_recv(msg, skb);
|
||||
ip_cmsg_recv_offset(msg, skb,
|
||||
sizeof(struct udphdr), off);
|
||||
} else {
|
||||
if (np->rxopt.all)
|
||||
ip6_datagram_recv_specific_ctl(sk, msg, skb);
|
||||
|
مرجع در شماره جدید
Block a user