On Sun, Mar 26, 2023 at 7:27 PM Tetsuo Handa wrote: > > nilfs_btree_assign_p() and nilfs_direct_assign_p() are not initializing > "struct nilfs_binfo_dat"->bi_pad field, causing uninit-value reports > when being passed to CRC function. > > Reported-by: syzbot <syzbot+048585f3f4227bb2b49b@xxxxxxxxxxxxxxxxxxxxxxxxx> > Link: https://syzkaller.appspot.com/bug?extid=048585f3f4227bb2b49b > Signed-off-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> > --- > Changes in v3: > Also fix nilfs_btree_assign_p(). > > Changes in v2: > Use memset() for initialization, suggested by Ryusuke Konishi. > > fs/nilfs2/btree.c | 1 + > fs/nilfs2/direct.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c > index 2681a449edc1..13592e82eaf6 100644 > --- a/fs/nilfs2/btree.c > +++ b/fs/nilfs2/btree.c > @@ -2219,6 +2219,7 @@ static int nilfs_btree_assign_p(struct nilfs_bmap *btree, > /* on-disk format */ > binfo->bi_dat.bi_blkoff = cpu_to_le64(key); > binfo->bi_dat.bi_level = level; > + memset(binfo->bi_dat.bi_pad, 0, sizeof(binfo->bi_dat.bi_pad)); > > return 0; > } > diff --git a/fs/nilfs2/direct.c b/fs/nilfs2/direct.c > index a35f2795b242..4c85914f2abc 100644 > --- a/fs/nilfs2/direct.c > +++ b/fs/nilfs2/direct.c > @@ -314,6 +314,7 @@ static int nilfs_direct_assign_p(struct nilfs_bmap *direct, > > binfo->bi_dat.bi_blkoff = cpu_to_le64(key); > binfo->bi_dat.bi_level = 0; > + memset(binfo->bi_dat.bi_pad, 0, sizeof(binfo->bi_dat.bi_pad)); > > return 0; > } > -- > 2.34.1 Thank you for your cooperation, Handa-san. I'll send this upstream, adding a Reported-by tag of the preceding report. Thanks, Ryusuke Konishi