[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20180422.144923.1733547081005038351.davem@davemloft.net>
Date: Sun, 22 Apr 2018 14:49:23 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: g.nault@...halink.fr
Cc: netdev@...r.kernel.org, jchapman@...alix.com
Subject: Re: [PATCH net] l2tp: fix {pppol2tp,l2tp_dfs}_seq_stop() in case
of seq_file overflow
From: Guillaume Nault <g.nault@...halink.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.nault@...halink.fr>
Applied and queued up for -stable, thank you.
Powered by blists - more mailing lists