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

syzbot
2025-05-06T14:20:17Z

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.

***

Subject: Re: [syzbot] [jfs?] KMSAN: uninit-value in BT_STACK_DUMP
Author: richard120310@gmail.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 02ddfb981de8

Signed-off-by: I Hsin Cheng <richard120310@gmail.com>
---
fs/jfs/jfs_dtree.c | 6 +++---
fs/jfs/jfs_xtree.c | 14 +++++++-------
fs/jfs/namei.c | 14 +++++++-------
3 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c
index 93db6eec4465..87025d832758 100644
--- a/fs/jfs/jfs_dtree.c
+++ b/fs/jfs/jfs_dtree.c
@@ -2083,7 +2083,7 @@ int dtDelete(tid_t tid,
struct metapage *mp, *imp;
dtpage_t *p;
int index;
- struct btstack btstack;
+ struct btstack btstack = {0};
struct dt_lock *dtlck;
struct tlock *tlck;
struct lv *lv;
@@ -2716,7 +2716,7 @@ int jfs_readdir(struct file *file, struct dir_context *ctx)
dtpage_t *p;
int index;
s8 *stbl;
- struct btstack btstack;
+ struct btstack btstack = {0};
int i, next;
struct ldtentry *d;
struct dtslot *t;
@@ -4237,7 +4237,7 @@ int dtModify(tid_t tid, struct inode *ip,
struct metapage *mp;
dtpage_t *p;
int index;
- struct btstack btstack;
+ struct btstack btstack = {0};
struct tlock *tlck;
struct dt_lock *dtlck;
struct lv *lv;
diff --git a/fs/jfs/jfs_xtree.c b/fs/jfs/jfs_xtree.c
index 5ee618d17e77..dd0e542a4978 100644
--- a/fs/jfs/jfs_xtree.c
+++ b/fs/jfs/jfs_xtree.c
@@ -123,7 +123,7 @@ int xtLookup(struct inode *ip, s64 lstart,
s64 llen, int *pflag, s64 * paddr, s32 * plen, int no_check)
{
int rc = 0;
- struct btstack btstack;
+ struct btstack btstack = {0};
int cmp;
s64 bn;
struct metapage *mp;
@@ -520,7 +520,7 @@ int xtInsert(tid_t tid, /* transaction id */
xtpage_t *p; /* base B+-tree index page */
s64 bn;
int index, nextindex;
- struct btstack btstack; /* traverse stack */
+ struct btstack btstack = {0}; /* traverse stack */
struct xtsplit split; /* split information */
xad_t *xad;
int cmp;
@@ -1344,7 +1344,7 @@ int xtExtend(tid_t tid, /* transaction id */
xtpage_t *p; /* base B+-tree index page */
s64 bn;
int index, nextindex, len;
- struct btstack btstack; /* traverse stack */
+ struct btstack btstack = {0}; /* traverse stack */
struct xtsplit split; /* split information */
xad_t *xad;
s64 xaddr;
@@ -1503,7 +1503,7 @@ int xtUpdate(tid_t tid, struct inode *ip, xad_t * nxad)
xtpage_t *p; /* base B+-tree index page */
s64 bn;
int index0, index, newindex, nextindex;
- struct btstack btstack; /* traverse stack */
+ struct btstack btstack = {0}; /* traverse stack */
struct xtsplit split; /* split information */
xad_t *xad, *lxad, *rxad;
int xflag;
@@ -1949,7 +1949,7 @@ int xtAppend(tid_t tid, /* transaction id */
xtpage_t *p; /* base B+-tree index page */
s64 bn, xaddr;
int index, nextindex;
- struct btstack btstack; /* traverse stack */
+ struct btstack btstack = {0}; /* traverse stack */
struct xtsplit split; /* split information */
xad_t *xad;
int cmp;
@@ -2196,7 +2196,7 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
xad_t *xad;
s64 xoff, xaddr;
int xlen, len, freexlen;
- struct btstack btstack;
+ struct btstack btstack = {0};
struct btframe *parent;
struct tblock *tblk = NULL;
struct tlock *tlck = NULL;
@@ -2744,7 +2744,7 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
s64 xtTruncate_pmap(tid_t tid, struct inode *ip, s64 committed_size)
{
s64 bn;
- struct btstack btstack;
+ struct btstack btstack = {0};
int cmp;
int index;
int locked_leaves = 0;
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
index 65a218eba8fa..d04c752823ea 100644
--- a/fs/jfs/namei.c
+++ b/fs/jfs/namei.c
@@ -67,7 +67,7 @@ static int jfs_create(struct mnt_idmap *idmap, struct inode *dip,
struct inode *ip = NULL; /* child directory inode */
ino_t ino;
struct component_name dname; /* child directory name */
- struct btstack btstack;
+ struct btstack btstack = {0};
struct inode *iplist[2];
struct tblock *tblk;

@@ -200,7 +200,7 @@ static struct dentry *jfs_mkdir(struct mnt_idmap *idmap, struct inode *dip,
struct inode *ip = NULL; /* child directory inode */
ino_t ino;
struct component_name dname; /* child directory name */
- struct btstack btstack;
+ struct btstack btstack = {0};
struct inode *iplist[2];
struct tblock *tblk;

@@ -791,7 +791,7 @@ static int jfs_link(struct dentry *old_dentry,
struct inode *ip = d_inode(old_dentry);
ino_t ino;
struct component_name dname;
- struct btstack btstack;
+ struct btstack btstack = {0};
struct inode *iplist[2];

jfs_info("jfs_link: %pd %pd", old_dentry, dentry);
@@ -883,7 +883,7 @@ static int jfs_symlink(struct mnt_idmap *idmap, struct inode *dip,
ino_t ino = 0;
struct component_name dname;
u32 ssize; /* source pathname size */
- struct btstack btstack;
+ struct btstack btstack = {0};
struct inode *ip;
s64 xlen = 0;
int bmask = 0, xsize;
@@ -1069,7 +1069,7 @@ static int jfs_rename(struct mnt_idmap *idmap, struct inode *old_dir,
struct dentry *old_dentry, struct inode *new_dir,
struct dentry *new_dentry, unsigned int flags)
{
- struct btstack btstack;
+ struct btstack btstack = {0};
ino_t ino;
struct component_name new_dname;
struct inode *new_ip;
@@ -1356,7 +1356,7 @@ static int jfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
struct dentry *dentry, umode_t mode, dev_t rdev)
{
struct jfs_inode_info *jfs_ip;
- struct btstack btstack;
+ struct btstack btstack = {0};
struct component_name dname;
ino_t ino;
struct inode *ip;
@@ -1448,7 +1448,7 @@ static int jfs_mknod(struct mnt_idmap *idmap, struct inode *dir,

static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry, unsigned int flags)
{
- struct btstack btstack;
+ struct btstack btstack = {0};
ino_t inum;
struct inode *ip;
struct component_name key;
--
2.43.0