[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <tencent_9C66663DC537949618361A4B5E750576B309@qq.com>
Date: Wed, 15 Oct 2025 17:51:04 +0800
From: Edward Adam Davis <eadavis@...com>
To: syzbot+6b156e132970e550194c@...kaller.appspotmail.com
Cc: agruenba@...hat.com,
gfs2@...ts.linux.dev,
linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com
Subject: [PATCH next] gfs2: Add sanity check for sd_jdesc
Asynchronous withdraw, when sd_withdraw_work is scheduled later than
put_super, will set sd_jdesc to NULL when clearing all journal index
information, triggering the syz report uaf.
Reported-by: syzbot+6b156e132970e550194c@...kaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=6b156e132970e550194c
Signed-off-by: Edward Adam Davis <eadavis@...com>
---
fs/gfs2/log.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index 8312cd2cdae4..433a3a11a2f5 100644
--- a/fs/gfs2/log.c
+++ b/fs/gfs2/log.c
@@ -427,7 +427,8 @@ static void ail2_empty(struct gfs2_sbd *sdp, unsigned int new_tail)
*/
bool gfs2_log_is_empty(struct gfs2_sbd *sdp) {
- return atomic_read(&sdp->sd_log_blks_free) == sdp->sd_jdesc->jd_blocks;
+ return sdp->sd_jdesc &&
+ atomic_read(&sdp->sd_log_blks_free) == sdp->sd_jdesc->jd_blocks;
}
static bool __gfs2_log_try_reserve_revokes(struct gfs2_sbd *sdp, unsigned int revokes)
--
2.43.0
Powered by blists - more mailing lists