On Tue, Nov 24, 2020 at 4:44 PM Bob Peterson <[email protected]> wrote: > If gfs2 tries to mount a (corrupt) file system that has no resource groups > it still tries to set preferences on the first one, which causes a kernel null > pointer dereference. This patch adds a check to function gfs2_ri_update so > this condition is detected and reported back as an error. > > Reported-by: syzbot > Signed-off-by: Bob Peterson <[email protected]> > --- > fs/gfs2/rgrp.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c > index f7addc6197ed..5e8eef9990e3 100644 > --- a/fs/gfs2/rgrp.c > +++ b/fs/gfs2/rgrp.c > @@ -985,6 +985,10 @@ static int gfs2_ri_update(struct gfs2_inode *ip) > if (error < 0) > return error; > > + if (RB_EMPTY_ROOT(&sdp->sd_rindex_tree)) { > + fs_err(sdp, "no resource groups found in the file system.\n"); > + return -ENOENT; > + } > set_rgrp_preferences(sdp); > > sdp->sd_rindex_uptodate = 1;
Pushed to for-next, thanks. Andreas
