]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
jfs: Regular file corruption check
authorEdward Adam Davis <eadavis@qq.com>
Wed, 4 Jun 2025 06:48:43 +0000 (14:48 +0800)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Mon, 14 Jul 2025 22:08:13 +0000 (17:08 -0500)
The reproducer builds a corrupted file on disk with a negative i_size value.
Add a check when opening this file to avoid subsequent operation failures.

Reported-by: syzbot+630f6d40b3ccabc8e96e@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=630f6d40b3ccabc8e96e
Tested-by: syzbot+630f6d40b3ccabc8e96e@syzkaller.appspotmail.com
Signed-off-by: Edward Adam Davis <eadavis@qq.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
fs/jfs/file.c

index 01b6912e60f80891f148a0c2679f5a35e6d74586..742cadd1f37e84f71e6224fdbec01313d00a3cb8 100644 (file)
@@ -44,6 +44,9 @@ static int jfs_open(struct inode *inode, struct file *file)
 {
        int rc;
 
+       if (S_ISREG(inode->i_mode) && inode->i_size < 0)
+               return -EIO;
+
        if ((rc = dquot_file_open(inode, file)))
                return rc;