fs/ext4/acl: apply umask if ACL support is disabled
Subsystems (2)
PATCH 1/1 fs/ext4/acl: apply umask if ACL support is disabled
The function ext4_init_acl() calls posix_acl_create() which is responsible for applying the umask. But without CONFIG_EXT4_FS_POSIX_ACL, ext4_init_acl() is an empty inline function, and nobody applies the umask.
This fixes a bug which causes the umask to be ignored with O_TMPFILE on ext4:
https://github.com/MusicPlayerDaemon/MPD/issues/558
https://bugs.gentoo.org/show_bug.cgi?id=686142#c3
https://bugzilla.kernel.org/show_bug.cgi?id=203625
--- fs/ext4/acl.h | 5 +++++ 1 file changed, 5 insertions(+)
fs/ext4/acl.h +5 -0
@@ -68,6 +68,11 @@ extern int ext4_init_acl(handle_t *, struct inode *, struct inode *);static inline int ext4_init_acl (handle_t *handle,struct inode *inode,struct inode *dir) { +/* usually, the umask is applied by posix_acl_create(), but if +ext4 ACL support is disabled at compile time, we need to do +it here, because posix_acl_create() will never be called */ + inode->i_mode &= ~current_umask (); +return 0 ; }#endif /* CONFIG_EXT4_FS_POSIX_ACL */
Signature · 1 line
2.39.2
Quoted 9 lines · Max Kellermann
The function
ext4_init_acl()callsposix_acl_create()which is responsible for applying the umask. But withoutCONFIG_EXT4_FS_POSIX_ACL,ext4_init_acl()is an empty inline function, and nobody applies the umask.This fixes a bug which causes the umask to be ignored with
O_TMPFILEon ext4:[...]
Applied, thanks!
[1/1] fs/ext4/acl: apply umask if ACL support is disabled
commit: 484fd6c1de13b336806a967908a927cc0356e312
Best regards,
Signature · 1 line
Theodore Ts'o <[email protected]>