]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
jfs: Regular file corruption check
authorEdward Adam Davis <eadavis@qq.com>
Wed, 4 Jun 2025 06:48:43 +0000 (14:48 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:26:00 +0000 (16:26 +0200)
[ Upstream commit 2d04df8116426b6c7b9f8b9b371250f666a2a2fb ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/jfs/file.c

index 332dc9ac47a9161856a884ca9f782076d8fe0e45..ae8df3d11663955637680254433085664b4546b5 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;