Skip to content

Commit 6fa253b

Browse files
Papya-jkdave
authored andcommitted
affs: bound hash_pos before table lookup in affs_readdir
affs_readdir() decodes ctx->pos into hash_pos and chain_pos and then dereferences AFFS_HEAD(dir_bh)->table[hash_pos] before validating that hash_pos is within the runtime table bound. Treat out-of-range positions as end-of-directory before the first table lookup. Signed-off-by: Hyungjung Joo <jhj140711@gmail.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
1 parent c369299 commit 6fa253b

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

fs/affs/dir.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ affs_readdir(struct file *file, struct dir_context *ctx)
119119
pr_debug("readdir() left off=%d\n", ino);
120120
goto inside;
121121
}
122+
if (hash_pos >= AFFS_SB(sb)->s_hashsize)
123+
goto done;
122124

123125
ino = be32_to_cpu(AFFS_HEAD(dir_bh)->table[hash_pos]);
124126
for (i = 0; ino && i < chain_pos; i++) {

0 commit comments

Comments
 (0)