mirror of https://github.com/torvalds/linux.git
ntfs3: pretend $Extend records as regular files
Since commit af153bb63a ("vfs: catch invalid modes in may_open()")
requires any inode be one of S_IFDIR/S_IFLNK/S_IFREG/S_IFCHR/S_IFBLK/
S_IFIFO/S_IFSOCK type, use S_IFREG for $Extend records.
Reported-by: syzbot <syzbot+895c23f6917da440ed0d@syzkaller.appspotmail.com>
Closes: https://syzkaller.appspot.com/bug?extid=895c23f6917da440ed0d
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
parent
21dc07ac9c
commit
4e8011ffec
|
|
@ -471,6 +471,7 @@ static struct inode *ntfs_read_mft(struct inode *inode,
|
||||||
fname->home.seq == cpu_to_le16(MFT_REC_EXTEND)) {
|
fname->home.seq == cpu_to_le16(MFT_REC_EXTEND)) {
|
||||||
/* Records in $Extend are not a files or general directories. */
|
/* Records in $Extend are not a files or general directories. */
|
||||||
inode->i_op = &ntfs_file_inode_operations;
|
inode->i_op = &ntfs_file_inode_operations;
|
||||||
|
mode = S_IFREG;
|
||||||
} else {
|
} else {
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue