summaryrefslogtreecommitdiff
path: root/lib/iomap.c
diff options
context:
space:
mode:
authorGuillaume Nault <g.nault@alphalink.fr>2018-04-12 21:50:34 +0300
committerDavid S. Miller <davem@davemloft.net>2018-04-13 19:17:26 +0300
commit0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443 (patch)
tree4a6b39a662e8f76bdc67369e2e638d0e054cace3 /lib/iomap.c
parent5846c131c39b6d0add36ec19dc8650700690f930 (diff)
downloadlinux-0e0c3fee3a59a387aeecc4fca6f3a2e9615a5443.tar.xz
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: fd558d186df2 ("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>
Diffstat (limited to 'lib/iomap.c')
0 files changed, 0 insertions, 0 deletions