]> git.baikalelectronics.ru Git - kernel.git/commit
udplite: call proper backlog handlers
authorEric Dumazet <edumazet@google.com>
Tue, 22 Nov 2016 17:06:45 +0000 (09:06 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 24 Nov 2016 20:32:14 +0000 (15:32 -0500)
commitd6b24b28088531836a9bb3b3dffd9be88178ad46
tree72bc8ac2183042913c6bf7d9332f811b11378f02
parent3f27ad671d11962f36f012387e9e7cae2e37c620
udplite: call proper backlog handlers

In commits 9ef872c45e6d3 ("udp: Fix rcv socket locking") and
f15dff04cfed ("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 f1b0743d94dc ("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: 9ef872c45e6d ("udp: Fix rcv socket locking")
Fixes: f15dff04cfed ("net/ipv6/udp: UDP encapsulation: break backlog_rcv into __udpv6_queue_rcv_skb")
Fixes: f1b0743d94dc ("udp: remove headers from UDP packets before queueing")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Andrey Konovalov <andreyknvl@google.com>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/udp.c
net/ipv4/udp_impl.h
net/ipv4/udplite.c
net/ipv6/udp.c
net/ipv6/udp_impl.h
net/ipv6/udplite.c