mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
staging: erofs: some compressed cluster should be submitted for corrupted images
commitee45197c80upstream. As reported by erofs_utils fuzzer, a logical page can belong to at most 2 compressed clusters, if one compressed cluster is corrupted, but the other has been ready in submitting chain. The chain needs to submit anyway in order to keep the page working properly (page unlocked with PG_error set, PG_uptodate not set). Let's fix it now. Fixes:3883a79abd("staging: erofs: introduce VLE decompression support") Cc: <stable@vger.kernel.org> # 4.19+ Signed-off-by: Gao Xiang <gaoxiang25@huawei.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Link: https://lore.kernel.org/r/20190819103426.87579-2-gaoxiang25@huawei.com [ Gao Xiang: Manually backport to v4.19.y stable. ] Signed-off-by: Gao Xiang <gaoxiang25@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e7c4441038
commit
596bbc4e0e
@@ -1335,19 +1335,18 @@ static int z_erofs_vle_normalaccess_readpage(struct file *file,
|
||||
err = z_erofs_do_read_page(&f, page, &pagepool);
|
||||
(void)z_erofs_vle_work_iter_end(&f.builder);
|
||||
|
||||
if (err) {
|
||||
errln("%s, failed to read, err [%d]", __func__, err);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* if some compressed cluster ready, need submit them anyway */
|
||||
z_erofs_submit_and_unzip(&f, &pagepool, true);
|
||||
out:
|
||||
|
||||
if (err)
|
||||
errln("%s, failed to read, err [%d]", __func__, err);
|
||||
|
||||
if (f.m_iter.mpage != NULL)
|
||||
put_page(f.m_iter.mpage);
|
||||
|
||||
/* clean up the remaining free pages */
|
||||
put_pages_list(&pagepool);
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
|
||||
static inline int __z_erofs_vle_normalaccess_readpages(
|
||||
|
||||
Reference in New Issue
Block a user