On Mon, May 26, 2014 at 6:27 AM, Djalal Harouni <tixxdz@xxxxxxxxxx> wrote: > This patch is preparation to handle sensitive ONE entries: > /proc/<pid>/stat > /proc/<pid>/stack > > These files use sequence iterators and we want to keep that logic, and > their internal handler semantics. > > The sequence iterators stock the inode in the seq_file->private field, > so in order to keep the semantic and to make the cached permission > checks available during ->read(), we add the 'pid_seq_private' struct > that contains both the inode and the cached permission. It will be the > one referenced in the seq_file->private. > > This way the internal handlers of /proc/<pid>/{stat|stack} wont change. > > Signed-off-by: Djalal Harouni <tixxdz@xxxxxxxxxx> > --- > fs/proc/internal.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/fs/proc/internal.h b/fs/proc/internal.h > index f5c452c..f28e4f01 100644 > --- a/fs/proc/internal.h > +++ b/fs/proc/internal.h > @@ -78,6 +78,17 @@ struct proc_inode { > struct inode vfs_inode; > }; > > +/* > + * Struct used by some /proc/<pid>/$entries that use sequence > + * iterators. > + * This struct will be saved in seq_file->private so seq handlers > + * can access the inode and the cached permission checks of ->open(). > + */ > +struct pid_seq_private { > + int permitted; > + struct inode *inode; > +}; > + > typedef int (*proc_read_fn_t)(char *page, > struct task_struct *task, int permitted); int opener_may_ptrace, please. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html