]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
hfsplus: pretend special inodes as regular files
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Tue, 6 Jan 2026 09:39:33 +0000 (18:39 +0900)
committerViacheslav Dubeyko <slava@dubeyko.com>
Tue, 6 Jan 2026 20:41:50 +0000 (12:41 -0800)
Since commit af153bb63a33 ("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 special inodes.

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>
Reviewed-by: Viacheslav Dubeyko <slava@dubeyko.com>
Signed-off-by: Viacheslav Dubeyko <slava@dubeyko.com>
Link: https://lore.kernel.org/r/d0a07b1b-8b73-4002-8e29-e2bd56871262@I-love.SAKURA.ne.jp
Signed-off-by: Viacheslav Dubeyko <slava@dubeyko.com>
fs/hfsplus/super.c

index 829c8ac2639cad1f62e6f623fbda0a28848bf1e0..942b8ff01ad0704d7485f0b8e25e9fec28144682 100644 (file)
@@ -53,6 +53,12 @@ static int hfsplus_system_read_inode(struct inode *inode)
                return -EIO;
        }
 
+       /*
+        * Assign a dummy file type, for may_open() requires that
+        * an inode has a valid file type.
+        */
+       inode->i_mode = S_IFREG;
+
        return 0;
 }