fs/cramfs/inode.c: initialize file_ra_state
authorAndrew Morton <akpm@linux-foundation.org>
Sun, 26 Feb 2023 20:31:11 +0000 (12:31 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 3 Mar 2023 05:54:23 +0000 (21:54 -0800)
file_ra_state_init() assumes that the file_ra_state has been zeroed out.
Fixes a KMSAN used-unintialized issue (at least).

Fixes: cf948cbc35e80 ("cramfs: read_mapping_page() is synchronous")
Reported-by: syzbot <syzbot+8ce7f8308d91e6b8bbe2@syzkaller.appspotmail.com>
Link: https://lkml.kernel.org/r/0000000000008f74e905f56df987@google.com
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/cramfs/inode.c

index e3d168911dbe12ea242d5ee66c5ddc54a9aa3e55..006ef68d7ff6affe93f4679820643a57fbd26caf 100644 (file)
@@ -183,7 +183,7 @@ static void *cramfs_blkdev_read(struct super_block *sb, unsigned int offset,
                                unsigned int len)
 {
        struct address_space *mapping = sb->s_bdev->bd_inode->i_mapping;
-       struct file_ra_state ra;
+       struct file_ra_state ra = {};
        struct page *pages[BLKS_PER_BUF];
        unsigned i, blocknr, buffer;
        unsigned long devsize;