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.

Reply via email to