linux/net/l2tp
Eric Dumazet 5b1bb4cbd7 l2tp: do not use udp_ioctl()
[ Upstream commit 72fb96e7bd ]

udp_ioctl(), as its name suggests, is used by UDP protocols,
but is also used by L2TP :(

L2TP should use its own handler, because it really does not
look the same.

SIOCINQ for instance should not assume UDP checksum or headers.

Thanks to Andrey and syzkaller team for providing the report
and a nice reproducer.

While crashes only happen on recent kernels (after commit
7c13f97ffd ("udp: do fwd memory scheduling on dequeue")), this
probably needs to be backported to older kernels.

Fixes: 7c13f97ffd ("udp: do fwd memory scheduling on dequeue")
Fixes: 8558467201 ("udp: Fix udp_poll() and ioctl()")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Andrey Konovalov <andreyknvl@google.com>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-02-18 15:11:43 +01:00
..
Kconfig l2tp: Call udp_sock_create 2014-07-14 16:12:15 -07:00
l2tp_core.c l2tp: fix use-after-free during module unload 2016-09-02 11:44:44 -07:00
l2tp_core.h l2tp: do not use udp_ioctl() 2017-02-18 15:11:43 +01:00
l2tp_debugfs.c ipv6: make lookups simpler and faster 2013-10-09 00:01:25 -04:00
l2tp_eth.c net: revert "net: l2tp: Treat NET_XMIT_CN as success in l2tp_eth_dev_xmit" 2016-11-23 20:18:36 -05:00
l2tp_ip.c l2tp: do not use udp_ioctl() 2017-02-18 15:11:43 +01:00
l2tp_ip6.c l2tp: do not use udp_ioctl() 2017-02-18 15:11:43 +01:00
l2tp_netlink.c l2tp: make nla_policy const 2016-09-01 14:09:01 -07:00
l2tp_ppp.c l2tp: use IS_ENABLED() instead of checking for built-in or module 2016-09-10 21:19:11 -07:00
Makefile l2tp: introduce L2TPv3 IP encapsulation support for IPv6 2012-05-01 09:30:55 -04:00