[lvc-project] [PATCH] ocfs2: add directory size check to ocfs2_find_dir_space_id()
Dmitry Antipov
dmantipov at yandex.ru
Mon Oct 13 13:37:09 MSK 2025
In 'ocfs2_find_dir_space_id()', add extra check whether the directory
data block is large enough to hold at least one directory entry, and
raise 'ocfs2_error()' if the former is unexpectedly small.
Reported-by: syzbot+ded9116588a7b73c34bc at syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=ded9116588a7b73c34bc
Signed-off-by: Dmitry Antipov <dmantipov at yandex.ru>
---
fs/ocfs2/dir.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
index b9bf1428a3d9..3c2dacba9b0a 100644
--- a/fs/ocfs2/dir.c
+++ b/fs/ocfs2/dir.c
@@ -3444,6 +3444,14 @@ static int ocfs2_find_dir_space_id(struct inode *dir, struct buffer_head *di_bh,
offset += le16_to_cpu(de->rec_len);
}
+ if (!last_de) {
+ ret = ocfs2_error(sb, "Directory entry (#%llu: size=%lld) "
+ "is unexpectedly short",
+ (unsigned long long)OCFS2_I(dir)->ip_blkno,
+ i_size_read(dir));
+ goto out;
+ }
+
/*
* We're going to require expansion of the directory - figure
* out how many blocks we'll need so that a place for the
--
2.51.0
More information about the lvc-project
mailing list