Hello All, Here are some changes, which as I understand, takes the right approach in fixing the offset/length bounds check problem reported in threads [1]-[2]. These warnings in iomap_apply/ext4 path are reported after ext4_fiemap() was moved to use iomap framework and when overlayfs is mounted on top of ext4. Though the issues were identified after ext4 moved to iomap framework, but these changes tries to fix the problem which are anyways present in current code irrespective of ext4 using iomap framework for fiemap or not. Patch 1 & 4 commit msg may give more details of the problem. Tests done ========== 1. Tested xfstest-suite with "-g quick" & "-overlay -g quick" configuration on a 4k blocksize on x86 & Power. There were no new failures reported due to these changes. 2. Tested syzcaller reported problem with this change. [1] 3. Tested below change which was reported by Murphy. [2] The minimal reproducer is: ------------------------------------- fallocate -l 256M test.img mkfs.ext4 -Fq -b 4096 -I 256 test.img mkdir -p test mount -o loop test.img test || exit pushd test rm -rf l u w m mkdir -p l u w m mount -t overlay -o lowerdir=l,upperdir=u,workdir=w overlay m || exit xfs_io -f -c "pwrite 0 4096" -c "fiemap" m/tf umount m rm -rf l u w m popd umount -d test rm -rf test test.img ------------------------------------- Comments/feedback are much welcome!! References ========== [1]: https://lkml.org/lkml/2020/4/11/46 [2]: https://patchwork.ozlabs.org/project/linux-ext4/patch/20200418233231.z767yvfiupy7hwgp@xxxxxxxxxxxxxxxxxxxxxxxxx/ Ritesh Harjani (5): ext4: Fix EXT4_MAX_LOGICAL_BLOCK macro ext4: Rename fiemap_check_ranges() to make it ext4 specific vfs: EXPORT_SYMBOL for fiemap_check_ranges() overlayfs: Check for range bounds before calling i_op->fiemap() ext4: Get rid of ext4_fiemap_check_ranges fs/ext4/ext4.h | 2 +- fs/ext4/ioctl.c | 23 ----------------------- fs/ioctl.c | 5 +++-- fs/overlayfs/inode.c | 7 ++++++- include/linux/fs.h | 2 ++ 5 files changed, 12 insertions(+), 27 deletions(-) -- 2.21.0