[PATCH] erofs: fix out-of-bound access when z_erofs_gbuf_growsize() partially fails

Chunhai Guo guochunhai at vivo.com
Tue Aug 20 19:25:30 AEST 2024


在 2024/8/20 16:42, Gao Xiang 写道:
> If z_erofs_gbuf_growsize() partially fails on a global buffer due to
> memory allocation failure or fault injection (as reported by syzbot [1]),
> new pages need to be freed by comparing to the existing pages to avoid
> memory leaks.
>
> However, the old gbuf->pages[] array may not be large enough, which can
> lead to null-ptr-deref or out-of-bound access.
>
> Fix this by checking against gbuf->nrpages in advance.
>
> Fixes: d6db47e571dc ("erofs: do not use pagepool in z_erofs_gbuf_growsize()")
> Cc: <stable at vger.kernel.org> # 6.10+
> Cc: Chunhai Guo <guochunhai at vivo.com>
> Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
>
Reviewed-by: Chunhai Guo <guochunhai at vivo.com>

Thanks,

Chunhai Guo



More information about the Linux-erofs mailing list