]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
erofs: avoid reading more for fragment maps
authorGao Xiang <hsiangkao@linux.alibaba.com>
Tue, 16 Sep 2025 08:48:51 +0000 (16:48 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Tue, 23 Sep 2025 07:56:31 +0000 (15:56 +0800)
commit334c0e493c2aa3e843a80bb9f3862bb50360cb36
treee162fdfae60fd3c641fa7508e34c727d634fd6b8
parentf83ec76bf285bea5727f478a68b894f5543ca76e
erofs: avoid reading more for fragment maps

Since all real encoded extents (directly handled by the decompression
subsystem) have a sane, limited maximum decoded length
(Z_EROFS_PCLUSTER_MAX_DSIZE), and the read-more policy is only applied
if needed.

However, it makes no sense to read more for non-encoded maps, such as
fragment extents, since such extents can be huge (up to i_size) and
there is no benefit to reading more at this layer.

For normal images, it does not really matter, but for crafted images
generated by syzbot, excessively large fragment extents can cause
read-more to run for an overly long time.

Reported-and-tested-by: syzbot+1a9af3ef3c84c5e14dcc@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/r/68c8583d.050a0220.2ff435.03a3.GAE@google.com
Fixes: b44686c8391b ("erofs: fix large fragment handling")
Fixes: b15b2e307c3a ("erofs: support on-disk compressed fragments data")
Reviewed-by: Hongbo Li <lihongbo22@huawei.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/zdata.c