[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1325604356.2095.23.camel@falcor>
Date: Tue, 03 Jan 2012 10:25:55 -0500
From: Mimi Zohar <zohar@...ux.vnet.ibm.com>
To: Jan Kara <jack@...e.cz>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
linux-kernel@...r.kernel.org, reiserfs-devel@...r.kernel.org,
haiyangz@...rosoft.com, hjanssen@...rosoft.com,
"'Rafael J. Wysocki'" <rjw@...k.pl>,
James Morris <jmorris@...ei.org>,
Jorge Bastos <mysql.jorge@...imal.pt>,
Mark Fasheh <mfasheh@...e.com>,
Joel Becker <jlbec@...lplan.org>
Subject: Re: Reiserfs.c bug in 3.2-rc5
On Tue, 2012-01-03 at 13:38 +0100, Jan Kara wrote:
> Hell,
>
> On Tue 03-01-12 09:31:22, Jorge Bastos wrote:
> > > Yes, thanks! So we see that reiserfs_security_init() returned bogus
> > > number 790797. This is caused by security_old_inode_init_security()
> > > either returning some bogus number or setting sec->length to
> > > something bogus. In any case it's some security module problem so
> > > I'm adding Mimi Zohar who did the changes in this code recently to
> > > CC. I'm also adding Rafael since this is a regression.
> > >
> > > Also I think he might use your kernel config so can you please send
> > > it?
> > > Thanks.
> >
> > Sure,
> > Please grab it here:
> >
> > http://neotrix.decimal.pt/bugs/config-3.2-rc7.txt
> >
> > Let me know when the fix gets commited git master.
> Thanks! So I've managed to reproduce the problem and I now understand
> what is the problem. Commit 1e39f384bb01b0395b69cb70c2cacae65012f203 makes
> security_old_inode_init_security() return 0 when CONFIG_SECURITY is not
> set. But that makes caller such as reiserfs_security_init() assume that
> security_old_inode_init_security() has set name, value, and len arguments
> properly (which is IMO correct assumption). But they were left
> uninitialized which makes things break in an interesting ways... The fix is
> below.
>
> Mimi, James, Linus, this patch fixes a regression from 3.1 and should make
> it to 3.2 if possible.
>
> Honza
Commit fb88c2b changed the security_old_inode_init_security() return
code for S_PRIVATE inodes. As long as -EOPNOTSUPP is expected, probably
should revert that as well.
(I'm cc'ing the ocfs2 maintainers.)
thanks,
Mimi
> ----
>
> From 5bcd17065fa27d5f27756e24a98331f796ff2481 Mon Sep 17 00:00:00 2001
> From: Jan Kara <jack@...e.cz>
> Date: Tue, 3 Jan 2012 13:14:29 +0100
> Subject: [PATCH] security: Fix security_old_inode_init_security() when CONFIG_SECURITY is not set
>
> Commit 1e39f384bb01b0395b69cb70c2cacae65012f203 makes
> security_old_inode_init_security() return 0 when CONFIG_SECURITY is not set.
> But that makes callers such as reiserfs_security_init() assume that
> security_old_inode_init_security() has set name, value, and len arguments
> properly. But security_old_inode_init_security() left them uninitialized
> which then results in interesting failures.
>
> Revert security_old_inode_init_security() to the old behavior of returning
> EOPNOTSUPP since both callers (reiserfs and ocfs2) handle this just fine.
>
> Reported-by: Jorge Bastos <mysql.jorge@...imal.pt>
> CC: James Morris <jmorris@...ei.org>
> CC: Mimi Zohar <zohar@...ibm.com>
> Signed-off-by: Jan Kara <jack@...e.cz>
> ---
> include/linux/security.h | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/include/linux/security.h b/include/linux/security.h
> index 19d8e04..e8c619d 100644
> --- a/include/linux/security.h
> +++ b/include/linux/security.h
> @@ -2056,7 +2056,7 @@ static inline int security_old_inode_init_security(struct inode *inode,
> char **name, void **value,
> size_t *len)
> {
> - return 0;
> + return -EOPNOTSUPP;
> }
>
> static inline int security_inode_create(struct inode *dir,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists