OpenCloudOS-Kernel/net/l2tp
Eric Dumazet 72fb96e7bd l2tp: do not use udp_ioctl()
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>
2017-02-10 15:57:34 -05:00
..
Kconfig l2tp: Call udp_sock_create 2014-07-14 16:12:15 -07:00
Makefile l2tp: introduce L2TPv3 IP encapsulation support for IPv6 2012-05-01 09:30:55 -04:00
l2tp_core.c net: l2tp: fix negative assignment to unsigned int 2016-11-09 18:55:36 -05:00
l2tp_core.h l2tp: do not use udp_ioctl() 2017-02-10 15:57:34 -05:00
l2tp_debugfs.c ipv6: make lookups simpler and faster 2013-10-09 00:01:25 -04:00
l2tp_eth.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-11-26 23:42:21 -05:00
l2tp_ip.c l2tp: do not use udp_ioctl() 2017-02-10 15:57:34 -05:00
l2tp_ip6.c l2tp: do not use udp_ioctl() 2017-02-10 15:57:34 -05:00
l2tp_netlink.c net: l2tp: cleanup: remove redundant condition 2016-11-09 18:55:36 -05:00
l2tp_ppp.c net: l2tp: ppp: change PPPOL2TP_MSG_* => L2TP_MSG_* 2016-12-10 23:29:11 -05:00