From: Guillaume Nault <g.na...@alphalink.fr> Date: Thu, 19 Apr 2018 16:20:48 +0200
> Commit 0e0c3fee3a59 ("l2tp: hold reference on tunnels printed in pppol2tp > proc file") > assumed that if pppol2tp_seq_stop() was called with non-NULL private > data (the 'v' pointer), then pppol2tp_seq_start() would not be called > again. It turns out that this isn't guaranteed, and overflowing the > seq_file's buffer in pppol2tp_seq_show() is a way to get into this > situation. > > Therefore, pppol2tp_seq_stop() needs to reset pd->tunnel, so that > pppol2tp_seq_start() won't drop a reference again if it gets called. > We also have to clear pd->session, because the rest of the code expects > a non-NULL tunnel when pd->session is set. > > The l2tp_debugfs module has the same issue. Fix it in the same way. > > Fixes: 0e0c3fee3a59 ("l2tp: hold reference on tunnels printed in pppol2tp > proc file") > Fixes: f726214d9b23 ("l2tp: hold reference on tunnels printed in l2tp/tunnels > debugfs file") > Signed-off-by: Guillaume Nault <g.na...@alphalink.fr> Applied and queued up for -stable, thank you.