On Mon, May 26, 2014 at 10:02:15AM -0700, Andy Lutomirski wrote: > 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. Ok, I'll change it in v2. Thanks -- Djalal Harouni http://opendz.org -- 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