在 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@xxxxxxxxxxxxxxx> # 6.10+ > Cc: Chunhai Guo <guochunhai@xxxxxxxx> > Signed-off-by: Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx> > Reviewed-by: Chunhai Guo <guochunhai@xxxxxxxx> Thanks, Chunhai Guo