aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/udp_impl.h
diff options
context:
space:
mode:
authorEric Dumazet <[email protected]>2016-11-22 17:06:45 +0000
committerDavid S. Miller <[email protected]>2016-11-24 20:32:14 +0000
commit30c7be26fd3587abcb69587f781098e3ca2d565b (patch)
tree72bc8ac2183042913c6bf7d9332f811b11378f02 /net/ipv4/udp_impl.h
parentipv6: bump genid when the IFA_F_TENTATIVE flag is clear (diff)
downloadkernel-30c7be26fd3587abcb69587f781098e3ca2d565b.tar.gz
kernel-30c7be26fd3587abcb69587f781098e3ca2d565b.zip
udplite: call proper backlog handlers
In commits 93821778def10 ("udp: Fix rcv socket locking") and f7ad74fef3af ("net/ipv6/udp: UDP encapsulation: break backlog_rcv into __udpv6_queue_rcv_skb") UDP backlog handlers were renamed, but UDPlite was forgotten. This leads to crashes if UDPlite header is pulled twice, which happens starting from commit e6afc8ace6dd ("udp: remove headers from UDP packets before queueing") Bug found by syzkaller team, thanks a lot guys ! Note that backlog use in UDP/UDPlite is scheduled to be removed starting from linux-4.10, so this patch is only needed up to linux-4.9 Fixes: 93821778def1 ("udp: Fix rcv socket locking") Fixes: f7ad74fef3af ("net/ipv6/udp: UDP encapsulation: break backlog_rcv into __udpv6_queue_rcv_skb") Fixes: e6afc8ace6dd ("udp: remove headers from UDP packets before queueing") Signed-off-by: Eric Dumazet <[email protected]> Reported-by: Andrey Konovalov <[email protected]> Cc: Benjamin LaHaise <[email protected]> Cc: Herbert Xu <[email protected]> Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/ipv4/udp_impl.h')
-rw-r--r--net/ipv4/udp_impl.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/udp_impl.h b/net/ipv4/udp_impl.h
index 7e0fe4bdd967..feb50a16398d 100644
--- a/net/ipv4/udp_impl.h
+++ b/net/ipv4/udp_impl.h
@@ -25,7 +25,7 @@ int udp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int noblock,
int flags, int *addr_len);
int udp_sendpage(struct sock *sk, struct page *page, int offset, size_t size,
int flags);
-int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb);
+int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb);
void udp_destroy_sock(struct sock *sk);
#ifdef CONFIG_PROC_FS