Re: [syzbot] [jfs?] KMSAN: uninit-value in diFree

From: Edward Adam Davis
Date: Wed Feb 19 2025 - 18:18:31 EST


#syz test

diff --git a/fs/jfs/jfs_imap.c b/fs/jfs/jfs_imap.c
index a360b24ed320..0cedaccb7218 100644
--- a/fs/jfs/jfs_imap.c
+++ b/fs/jfs/jfs_imap.c
@@ -134,6 +134,10 @@ int diMount(struct inode *ipimap)
imap->im_agctl[index].numfree =
le32_to_cpu(dinom_le->in_agctl[index].numfree);
}
+ imap->im_diskblock = 0;
+ imap->im_maxag = 0;
+ imap->im_enuminos = 0;
+ imap->im_enumfree = 0;

/* release the buffer. */
release_metapage(mp);
diff --git a/fs/jfs/jfs_imap.h b/fs/jfs/jfs_imap.h
index dd7409febe28..9af1da2e4591 100644
--- a/fs/jfs/jfs_imap.h
+++ b/fs/jfs/jfs_imap.h
@@ -144,6 +144,8 @@ struct inomap {
*/
#define im_diskblock im_imap.in_diskblock
#define im_maxag im_imap.in_maxag
+#define im_enuminos im_imap.in_numinos
+#define im_enumfree im_imap.in_numfree

extern int diFree(struct inode *);
extern int diAlloc(struct inode *, bool, struct inode *);
--
2.43.0