Re: [ocfs2?] kernel BUG in ocfs2_truncate_inline

From: Edward Adam Davis
Date: Wed Oct 09 2024 - 05:00:14 EST


offset or offset + len greater than UINT_MAX, if true, it will overflow in ocfs2_truncate_inline

#syz test

diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index ad131a2fc58e..ed26ec8ac6b6 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -2117,6 +2117,9 @@ static long ocfs2_fallocate(struct file *file, int mode, loff_t offset,
return ret;
}

+ if (offset > UINT_MAX || offset + len > UINT_MAX)
+ return -EFBIG;
+
if (mode & FALLOC_FL_PUNCH_HOLE)
cmd = OCFS2_IOC_UNRESVSP64;