linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] seq_file allocation in seq_open()
@ 2015-05-04 22:19 Yann Droneaud
  2015-05-04 22:19 ` [PATCH 1/3] fs: use seq_open_private() for proc_mounts Yann Droneaud
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Yann Droneaud @ 2015-05-04 22:19 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-fsdevel, linux-kernel, Yann Droneaud

Hi,

I found myself trying to use seq_open() and experiencing
crash as seq_open() was using my private data in
file->private_data as its own struct seq_file.

It should be noted such behavior is not documented.

It's also an issue if seq_release() is used in release
handler, as it will kfree() a pointer which was not
allocated by seq_open().

So, please find a patchset that drop the support for
pre-allocated struct seq_file in seq_open(): it's
only of use in proc_namespace.c and can be easily
replaced by using seq_open_private()/seq_release_private().

Additionally, it documents the use of file->private_data
to hold pointer to struct seq_file.

Yann Droneaud (3):
  fs: use seq_open_private() for proc_mounts
  fs: allocate structure unconditionally in seq_open()
  fs: documents seq_open()'s usage of file->private_data

 fs/mount.h          |  3 ---
 fs/namespace.c      |  6 +++---
 fs/proc_namespace.c | 34 ++++++++++++++++------------------
 fs/seq_file.c       | 18 +++++++++++-------
 4 files changed, 30 insertions(+), 31 deletions(-)

-- 
2.1.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-05-04 22:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-04 22:19 [PATCH 0/3] seq_file allocation in seq_open() Yann Droneaud
2015-05-04 22:19 ` [PATCH 1/3] fs: use seq_open_private() for proc_mounts Yann Droneaud
2015-05-04 22:19 ` [PATCH 2/3] fs: allocate structure unconditionally in seq_open() Yann Droneaud
2015-05-04 22:19 ` [PATCH 3/3] fs: documents seq_open()'s usage of file->private_data Yann Droneaud

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).