Skip to contentSkip to conversation

fs/ext4/acl: apply umask if ACL support is disabled

PATCH Applied Max Kellermann 2 participants 2 messages Sep 19, 2023 – Oct 6, 2023

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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
index 0c5a79c3b5d4..ef4c19e5f570 100644
@@ -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
maintainer Applied
#1 lore raw
Quoted 9 lines · Max Kellermann

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:

[...]

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]>