lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070424153534.GB20356@duck.suse.cz>
Date:	Tue, 24 Apr 2007 17:35:35 +0200
From:	Jan Kara <jack@...e.cz>
To:	Dave Kleikamp <shaggy@...ux.vnet.ibm.com>
Cc:	akpm@...l.org, linux-ext4@...r.kernel.org
Subject: Re: [PATCH] Copy i_flags to ext3 inode flags on write (version 2)

On Tue 24-04-07 10:14:37, Dave Kleikamp wrote:
> On Tue, 2007-04-17 at 12:38 +0200, Jan Kara wrote:
> >   Hi,
> > 
> >   attached is a second version of a patch that stores inode flags such as
> > S_IMMUTABLE, S_APPEND, etc. from i_flags to EXT3_I(inode)->i_flags when
> > inode is written to disk. The same thing is done on GETFLAGS ioctl.
> >   Quota code changes these flags on quota files (to make it harder for
> > sysadmin to screw himself) and these changes were not correctly
> > propagated into the filesystem (especially, lsattr did not show them and
> > users were wondering...). Andrew, could you please put the patch into your
> > queue? Thanks.
> 
> I think you need a call to ext3_get_inode_flags in one more place.  In
> ext3_ioctl(), EXT3_IOC_SETFLAGS modifies the flags based on what is in
> ei->i_flags, so this code should make sure that ei->i_flags is in sync
> with inode->i_flags.
  Hmm, I don't think so. The code does:
                flags = flags & EXT3_FL_USER_MODIFIABLE;
                flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
                ei->i_flags = flags;
  So all EXT3_FL_USER_MODIFIABLE are overwritten by what user has supplied,
which happens to be a superset of flags influenced by
ext3_get_inode_flags(). On the other hand, from some point of view, after your
change the code is safer (in case we add some new unmodifiable flags) so I
don't object against adding the call. I just wanted to point out, that
currently there's no difference...

									Honza

> 
> Signed-off-by: Dave Kleikamp <shaggy@...ux.vnet.ibm.com>
> 
> diff -Nurp linux-orig/fs/ext3/ioctl.c linux/fs/ext3/ioctl.c
> --- linux-orig/fs/ext3/ioctl.c	2007-04-24 10:04:50.000000000 -0500
> +++ linux/fs/ext3/ioctl.c	2007-04-24 10:05:59.000000000 -0500
> @@ -51,6 +51,7 @@ int ext3_ioctl (struct inode * inode, st
>  			flags &= ~EXT3_DIRSYNC_FL;
>  
>  		mutex_lock(&inode->i_mutex);
> +		ext3_get_inode_flags(ei);
>  		oldflags = ei->i_flags;
>  
>  		/* The JOURNAL_DATA flag is modifiable only by root */
> 
> -- 
> David Kleikamp
> IBM Linux Technology Center
> 
-- 
Jan Kara <jack@...e.cz>
SuSE CR Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ