]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
authorOsama Muhammad <osmtendev@gmail.com>
Mon, 6 Nov 2023 16:21:29 +0000 (21:21 +0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 22:52:35 +0000 (14:52 -0800)
[ Upstream commit 8877243beafa7c6bfc42022cbfdf9e39b25bd4fa ]

Syzkaller has reported a NULL pointer dereference when accessing
rgd->rd_rgl in gfs2_rgrp_dump().  This can happen when creating
rgd->rd_gl fails in read_rindex_entry().  Add a NULL pointer check in
gfs2_rgrp_dump() to prevent that.

Reported-and-tested-by: syzbot+da0fc229cc1ff4bb2e6d@syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?extid=da0fc229cc1ff4bb2e6d
Fixes: 72244b6bc752 ("gfs2: improve debug information when lvb mismatches are found")
Signed-off-by: Osama Muhammad <osmtendev@gmail.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/gfs2/rgrp.c

index 6901cd85f1df7b744f38a575d1de9b72b20c6664..e4e85010ab5bd8e2acbfcc43a93ad1afebe0705a 100644 (file)
@@ -2316,7 +2316,7 @@ void gfs2_rgrp_dump(struct seq_file *seq, struct gfs2_rgrpd *rgd,
                       (unsigned long long)rgd->rd_addr, rgd->rd_flags,
                       rgd->rd_free, rgd->rd_free_clone, rgd->rd_dinodes,
                       rgd->rd_requested, rgd->rd_reserved, rgd->rd_extfail_pt);
-       if (rgd->rd_sbd->sd_args.ar_rgrplvb) {
+       if (rgd->rd_sbd->sd_args.ar_rgrplvb && rgd->rd_rgl) {
                struct gfs2_rgrp_lvb *rgl = rgd->rd_rgl;
 
                gfs2_print_dbg(seq, "%s  L: f:%02x b:%u i:%u\n", fs_id_buf,