linux/net/l2tp
Guillaume Nault 0e0c3fee3a l2tp: hold reference on tunnels printed in pppol2tp proc file
Use l2tp_tunnel_get_nth() instead of l2tp_tunnel_find_nth(), to be safe
against concurrent tunnel deletion.

Unlike sessions, we can't drop the reference held on tunnels in
pppol2tp_seq_show(). Tunnels are reused across several calls to
pppol2tp_seq_start() when iterating over sessions. These iterations
need the tunnel for accessing the next session. Therefore the only safe
moment for dropping the reference is just before searching for the next
tunnel.

Normally, the last invocation of pppol2tp_next_tunnel() doesn't find
any new tunnel, so it drops the last tunnel without taking any new
reference. However, in case of error, pppol2tp_seq_stop() is called
directly, so we have to drop the reference there.

Fixes: fd558d186d ("l2tp: Split pppol2tp patch into separate l2tp and ppp parts")
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-04-13 12:17:26 -04:00
..
Kconfig l2tp: Call udp_sock_create 2014-07-14 16:12:15 -07:00
l2tp_core.c l2tp: hold reference on tunnels in netlink dumps 2018-04-13 12:17:26 -04:00
l2tp_core.h l2tp: hold reference on tunnels in netlink dumps 2018-04-13 12:17:26 -04:00
l2tp_debugfs.c l2tp: remove l2specific_len configurable parameter 2018-01-19 15:00:49 -05:00
l2tp_eth.c l2tp: remove .tunnel_sock from struct l2tp_eth 2017-11-11 22:08:23 +09:00
l2tp_ip6.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-06 01:20:46 -05:00
l2tp_ip.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-06 01:20:46 -05:00
l2tp_netlink.c l2tp: hold reference on tunnels in netlink dumps 2018-04-13 12:17:26 -04:00
l2tp_ppp.c l2tp: hold reference on tunnels printed in pppol2tp proc file 2018-04-13 12:17:26 -04:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00