summaryrefslogtreecommitdiffstats
path: root/fs/exofs/inode.c
diff options
context:
space:
mode:
authorLukas Czerner <lczerner@redhat.com>2018-04-24 11:31:44 -0400
committerTheodore Ts'o <tytso@mit.edu>2018-04-24 11:31:44 -0400
commit22be37acce25d66ecf6403fc8f44df9c5ded2372 (patch)
treecfaaf985798f7c7aa10a66d9cead8c89cb0ebe8c /fs/exofs/inode.c
parentb2569260d55228b617bd82aba6d0db2faeeb4116 (diff)
downloadlinux-22be37acce25d66ecf6403fc8f44df9c5ded2372.tar.gz
linux-22be37acce25d66ecf6403fc8f44df9c5ded2372.tar.bz2
linux-22be37acce25d66ecf6403fc8f44df9c5ded2372.zip
ext4: fix bitmap position validation
Currently in ext4_valid_block_bitmap() we expect the bitmap to be positioned anywhere between 0 and s_blocksize clusters, but that's wrong because the bitmap can be placed anywhere in the block group. This causes false positives when validating bitmaps on perfectly valid file system layouts. Fix it by checking whether the bitmap is within the group boundary. The problem can be reproduced using the following mkfs -t ext3 -E stride=256 /dev/vdb1 mount /dev/vdb1 /mnt/test cd /mnt/test wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.16.3.tar.xz tar xf linux-4.16.3.tar.xz This will result in the warnings in the logs EXT4-fs error (device vdb1): ext4_validate_block_bitmap:399: comm tar: bg 84: block 2774529: invalid block bitmap [ Changed slightly for clarity and to not drop a overflow test -- TYT ] Signed-off-by: Lukas Czerner <lczerner@redhat.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reported-by: Ilya Dryomov <idryomov@gmail.com> Fixes: 7dac4a1726a9 ("ext4: add validity checks for bitmap block numbers") Cc: stable@vger.kernel.org
Diffstat (limited to 'fs/exofs/inode.c')
0 files changed, 0 insertions, 0 deletions