提交 5924e6ec 编写于 作者: R Ryusuke Konishi 提交者: akpm

nilfs2: fix incorrect masking of permission flags for symlinks

The permission flags of newly created symlinks are wrongly dropped on
nilfs2 with the current umask value even though symlinks should have 777
(rwxrwxrwx) permissions:

 $ umask
 0022
 $ touch file && ln -s file symlink; ls -l file symlink
 -rw-r--r--. 1 root root 0 Jun 23 16:29 file
 lrwxr-xr-x. 1 root root 4 Jun 23 16:29 symlink -> file

This fixes the bug by inserting a missing check that excludes
symlinks.

Link: https://lkml.kernel.org/r/1655974441-5612-1-git-send-email-konishi.ryusuke@gmail.comSigned-off-by: NRyusuke Konishi <konishi.ryusuke@gmail.com>
Reported-by: NTommy Pettersson <ptp@lysator.liu.se>
Reported-by: NCiprian Craciun <ciprian.craciun@gmail.com>
Tested-by: NRyusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
上级 1118234e
...@@ -198,6 +198,9 @@ static inline int nilfs_acl_chmod(struct inode *inode) ...@@ -198,6 +198,9 @@ static inline int nilfs_acl_chmod(struct inode *inode)
static inline int nilfs_init_acl(struct inode *inode, struct inode *dir) static inline int nilfs_init_acl(struct inode *inode, struct inode *dir)
{ {
if (S_ISLNK(inode->i_mode))
return 0;
inode->i_mode &= ~current_umask(); inode->i_mode &= ~current_umask();
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册