linux/fs/ext2
Ernesto A. Fernández fe26569eb9 ext2: preserve i_mode if ext2_set_acl() fails
When changing a file's acl mask, ext2_set_acl() will first set the group
bits of i_mode to the value of the mask, and only then set the actual
extended attribute representing the new acl.

If the second part fails (due to lack of space, for example) and the file
had no acl attribute to begin with, the system will from now on assume
that the mask permission bits are actual group permission bits, potentially
granting access to the wrong users.

Prevent this by only changing the inode mode after the acl has been set.

[JK: Rebased on top of "ext2: Don't clear SGID when inheriting ACLs"]
Signed-off-by: Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
2017-07-18 11:23:56 +02:00
..
acl.c ext2: preserve i_mode if ext2_set_acl() fails 2017-07-18 11:23:56 +02:00
acl.h
balloc.c sched/headers: Prepare to remove <linux/cred.h> inclusion from <linux/sched.h> 2017-03-02 08:42:31 +01:00
dir.c mm: drop "wait" parameter from write_one_page() 2017-07-05 18:44:22 -04:00
ext2.h ext2, ext4: make mb block cache names more explicit 2017-06-22 11:28:55 -04:00
file.c fs: check for writeback errors after syncing out buffers in generic_file_fsync 2017-07-06 07:02:21 -04:00
ialloc.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-10-10 20:16:43 -07:00
inode.c ext2: Fix memory leak when truncate races ext2_get_blocks 2017-07-13 13:45:08 +02:00
ioctl.c ext2: Remove ext2_get_inode_flags() 2017-04-19 14:21:23 +02:00
Kconfig dax: fix build warnings with FS_DAX and !FS_IOMAP 2017-01-24 16:26:14 -08:00
Makefile ext2: remove xip.c and xip.h 2015-02-16 17:56:03 -08:00
namei.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-10-10 20:16:43 -07:00
super.c ext2, ext4: make mb block cache names more explicit 2017-06-22 11:28:55 -04:00
symlink.c vfs: remove ".readlink = generic_readlink" assignments 2016-12-09 16:45:04 +01:00
xattr_security.c switch xattr_handler->set() to passing dentry and inode separately 2016-05-27 15:39:43 -04:00
xattr_trusted.c switch xattr_handler->set() to passing dentry and inode separately 2016-05-27 15:39:43 -04:00
xattr_user.c switch xattr_handler->set() to passing dentry and inode separately 2016-05-27 15:39:43 -04:00
xattr.c ext2, ext4: make mb block cache names more explicit 2017-06-22 11:28:55 -04:00
xattr.h mbcache2: rename to mbcache 2016-02-22 22:35:22 -05:00