diff options
| author | Edward Adam Davis <eadavis@qq.com> | 2025-06-04 14:48:43 +0800 |
|---|---|---|
| committer | Dave Kleikamp <dave.kleikamp@oracle.com> | 2025-07-14 17:08:13 -0500 |
| commit | 2d04df8116426b6c7b9f8b9b371250f666a2a2fb (patch) | |
| tree | 1f366fef8c28684230000e33ab894956fadfc07b | |
| parent | c214006856ff52a8ff17ed8da52d50601d54f9ce (diff) | |
jfs: Regular file corruption check
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>
| -rw-r--r-- | fs/jfs/file.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/jfs/file.c b/fs/jfs/file.c index 01b6912e60f8..742cadd1f37e 100644 --- a/fs/jfs/file.c +++ b/fs/jfs/file.c @@ -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; |