From 45fe1e4b92cde944f0e63c83596a59bc6071fb93 Mon Sep 17 00:00:00 2001 From: "S.J.R. van Schaik" Date: Mon, 12 Jun 2017 16:48:23 +0200 Subject: [PATCH] mufs: check if directory va does not exceed the file size in mufs_readdir() --- source/fs/mufs/dir.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/fs/mufs/dir.c b/source/fs/mufs/dir.c index c72c2d0..d4a1edb 100644 --- a/source/fs/mufs/dir.c +++ b/source/fs/mufs/dir.c @@ -270,6 +270,9 @@ int mufs_readdir(struct mufs_dir *dir, struct mufs_dirent *dirent) dir->va = align_up(dir->va + 1, dir->fs->dev->log2_block_size); + if (dir->va >= dir->tree->file_size) + return -1; + if ((ret = read_dirent(dir->fs, dir->tree, dirent, dir->va)) > 0) { dir->va += ret; return 0;