| From 861c14dede58a6c08e06e934c463e21e8f6c7ed1 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 6 Nov 2023 21:21:29 +0500 |
| Subject: gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump |
| |
| From: Osama Muhammad <osmtendev@gmail.com> |
| |
| [ 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 | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c |
| index f602fb844951..dcaaa32efc4a 100644 |
| --- a/fs/gfs2/rgrp.c |
| +++ b/fs/gfs2/rgrp.c |
| @@ -2306,7 +2306,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, |
| -- |
| 2.43.0 |
| |