erofs/zmap.c: Fix incorrect offset calculation
authorSiddh Raman Pant <code@siddh.me>
Fri, 9 Dec 2022 10:21:51 +0000 (15:51 +0530)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Tue, 10 Jan 2023 08:38:53 +0000 (16:38 +0800)
commit6acd87d50998ef0afafc441613aeaf5a8f5c9eff
treedb88a2044f3ca5eaeab09cc31fc14a9d95f7cbb5
parent88603b6dc419445847923fcb7fe5080067a30f98
erofs/zmap.c: Fix incorrect offset calculation

Effective offset to add to length was being incorrectly calculated,
which resulted in iomap->length being set to 0, triggering a WARN_ON
in iomap_iter_done().

Fix that, and describe it in comments.

This was reported as a crash by syzbot under an issue about a warning
encountered in iomap_iter_done(), but unrelated to erofs.

C reproducer: https://syzkaller.appspot.com/text?tag=ReproC&x=1037a6b2880000
Kernel config: https://syzkaller.appspot.com/text?tag=KernelConfig&x=e2021a61197ebe02
link: https://syzkaller.appspot.com/bug?extid=a8e049cd3abd342936b6
Reported-by: syzbot+a8e049cd3abd342936b6@syzkaller.appspotmail.com
Suggested-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Signed-off-by: Siddh Raman Pant <code@siddh.me>
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20221209102151.311049-1-code@siddh.me
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/zmap.c