Re: [PATCH] vfs: O_* bit numbers uniqueness check fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 12, 2010 at 11:01:27PM +0800, Eric Paris wrote:
> On Fri, 2010-03-12 at 21:41 +0800, Wu Fengguang wrote:
> > Follow the comment by Eric:
> > 
> > 	Until the FMODE_ and O_ bits do not overload I think we need to check
> > 	FMODE_EXEC and FMODE_NONOTIFY (if you have that one) inside fcntl_init()
> > 	as well.  I guess I'll send a patch to someone ?Al? to add FMODE_EXEC to
> > 	the list....
> > 
> > CC: Eric Paris <eparis@xxxxxxxxxx>
> > Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
> > ---
> >  fs/fcntl.c |    3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > --- linux-mm.orig/fs/fcntl.c	2010-03-12 21:27:12.000000000 +0800
> > +++ linux-mm/fs/fcntl.c	2010-03-12 21:38:51.000000000 +0800
> > @@ -748,7 +748,8 @@ static int __init fcntl_init(void)
> >  		O_TRUNC		| O_APPEND	| O_NONBLOCK	|
> >  		__O_SYNC	| O_DSYNC	| FASYNC	|
> >  		O_DIRECT	| O_LARGEFILE	| O_DIRECTORY	|
> > -		O_NOFOLLOW	| O_NOATIME	| O_CLOEXEC
> > +		O_NOFOLLOW	| O_NOATIME	| O_CLOEXEC	|
> > +		FMODE_EXEC
> >  		));
> 
> I think we need to update the hweight as well, otherwise I sure hope
> this would panic....

Ah faint.. Here is the fixed one.

Thanks,
Fengguang
---
Subject: vfs: O_* bit numbers uniqueness check fix
From: Wu Fengguang <fengguang.wu@xxxxxxxxx>
Date: Fri Mar 12 21:38:54 CST 2010

Follow the comment by Eric:

	Until the FMODE_ and O_ bits do not overload I think we need to check
	FMODE_EXEC and FMODE_NONOTIFY (if you have that one) inside fcntl_init()
	as well.  I guess I'll send a patch to someone ?Al? to add FMODE_EXEC to
	the list....

CC: Eric Paris <eparis@xxxxxxxxxx>
Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
---
 fs/fcntl.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- linux-mm.orig/fs/fcntl.c	2010-03-12 21:27:12.000000000 +0800
+++ linux-mm/fs/fcntl.c	2010-03-12 23:11:46.000000000 +0800
@@ -742,13 +742,14 @@ EXPORT_SYMBOL(kill_fasync);
 static int __init fcntl_init(void)
 {
 	/* please add new bits here to ensure allocation uniqueness */
-	BUILD_BUG_ON(17 != HWEIGHT32(
+	BUILD_BUG_ON(18 != HWEIGHT32(
 		O_RDONLY	| O_WRONLY	| O_RDWR	|
 		O_CREAT		| O_EXCL	| O_NOCTTY	|
 		O_TRUNC		| O_APPEND	| O_NONBLOCK	|
 		__O_SYNC	| O_DSYNC	| FASYNC	|
 		O_DIRECT	| O_LARGEFILE	| O_DIRECTORY	|
-		O_NOFOLLOW	| O_NOATIME	| O_CLOEXEC
+		O_NOFOLLOW	| O_NOATIME	| O_CLOEXEC	|
+		FMODE_EXEC
 		));
 
 	fasync_cache = kmem_cache_create("fasync_cache",
--
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

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux