All of lore.kernel.org
 help / color / mirror / Atom feed
* [hch-block:bio_alloc-cleanup 12/13] fs/ntfs3/fsntfs.c:1606 ntfs_bio_fill_1() warn: variable dereferenced before check 'bio' (see line 1591)
@ 2022-01-12 18:42 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-01-12 18:42 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 7190 bytes --]

CC: kbuild-all(a)lists.01.org
TO: Christoph Hellwig <hch@lst.de>

tree:   git://git.infradead.org/users/hch/block.git bio_alloc-cleanup
head:   152c964c974a6e3bf0dd15a8d100c075087d5186
commit: a2021f00ad0fa0638974d4302683c84dd05d25e2 [12/13] block: pass a block_device and opf to bio_alloc
:::::: branch date: 8 hours ago
:::::: commit date: 8 hours ago
config: ia64-randconfig-m031-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130220.4VMJf0mm-lkp(a)intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
fs/ntfs3/fsntfs.c:1606 ntfs_bio_fill_1() warn: variable dereferenced before check 'bio' (see line 1591)

Old smatch warnings:
fs/ntfs3/fsntfs.c:771 ntfs_clear_mft_tail() error: uninitialized symbol 'err'.
fs/ntfs3/fsntfs.c:1227 ntfs_read_run_nb() error: uninitialized symbol 'clen'.
fs/ntfs3/fsntfs.c:1228 ntfs_read_run_nb() error: uninitialized symbol 'idx'.

vim +/bio +1606 fs/ntfs3/fsntfs.c

82cae269cfa953 Konstantin Komarov 2021-08-13  1541  
82cae269cfa953 Konstantin Komarov 2021-08-13  1542  /*
e8b8e97f91b80f Kari Argillander   2021-08-03  1543   * ntfs_bio_fill_1 - Helper for ntfs_loadlog_and_replay().
e8b8e97f91b80f Kari Argillander   2021-08-03  1544   *
e8b8e97f91b80f Kari Argillander   2021-08-03  1545   * Fill on-disk logfile range by (-1)
e8b8e97f91b80f Kari Argillander   2021-08-03  1546   * this means empty logfile.
82cae269cfa953 Konstantin Komarov 2021-08-13  1547   */
82cae269cfa953 Konstantin Komarov 2021-08-13  1548  int ntfs_bio_fill_1(struct ntfs_sb_info *sbi, const struct runs_tree *run)
82cae269cfa953 Konstantin Komarov 2021-08-13  1549  {
82cae269cfa953 Konstantin Komarov 2021-08-13  1550  	int err = 0;
82cae269cfa953 Konstantin Komarov 2021-08-13  1551  	struct super_block *sb = sbi->sb;
82cae269cfa953 Konstantin Komarov 2021-08-13  1552  	struct block_device *bdev = sb->s_bdev;
82cae269cfa953 Konstantin Komarov 2021-08-13  1553  	u8 cluster_bits = sbi->cluster_bits;
82cae269cfa953 Konstantin Komarov 2021-08-13  1554  	struct bio *new, *bio = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13  1555  	CLST lcn, clen;
82cae269cfa953 Konstantin Komarov 2021-08-13  1556  	u64 lbo, len;
82cae269cfa953 Konstantin Komarov 2021-08-13  1557  	size_t run_idx;
82cae269cfa953 Konstantin Komarov 2021-08-13  1558  	struct page *fill;
82cae269cfa953 Konstantin Komarov 2021-08-13  1559  	void *kaddr;
82cae269cfa953 Konstantin Komarov 2021-08-13  1560  	struct blk_plug plug;
82cae269cfa953 Konstantin Komarov 2021-08-13  1561  
82cae269cfa953 Konstantin Komarov 2021-08-13  1562  	fill = alloc_page(GFP_KERNEL);
82cae269cfa953 Konstantin Komarov 2021-08-13  1563  	if (!fill)
82cae269cfa953 Konstantin Komarov 2021-08-13  1564  		return -ENOMEM;
82cae269cfa953 Konstantin Komarov 2021-08-13  1565  
82cae269cfa953 Konstantin Komarov 2021-08-13  1566  	kaddr = kmap_atomic(fill);
82cae269cfa953 Konstantin Komarov 2021-08-13  1567  	memset(kaddr, -1, PAGE_SIZE);
82cae269cfa953 Konstantin Komarov 2021-08-13  1568  	kunmap_atomic(kaddr);
82cae269cfa953 Konstantin Komarov 2021-08-13  1569  	flush_dcache_page(fill);
82cae269cfa953 Konstantin Komarov 2021-08-13  1570  	lock_page(fill);
82cae269cfa953 Konstantin Komarov 2021-08-13  1571  
82cae269cfa953 Konstantin Komarov 2021-08-13  1572  	if (!run_lookup_entry(run, 0, &lcn, &clen, &run_idx)) {
82cae269cfa953 Konstantin Komarov 2021-08-13  1573  		err = -ENOENT;
82cae269cfa953 Konstantin Komarov 2021-08-13  1574  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  1575  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  1576  
82cae269cfa953 Konstantin Komarov 2021-08-13  1577  	/*
e8b8e97f91b80f Kari Argillander   2021-08-03  1578  	 * TODO: Try blkdev_issue_write_same.
82cae269cfa953 Konstantin Komarov 2021-08-13  1579  	 */
82cae269cfa953 Konstantin Komarov 2021-08-13  1580  	blk_start_plug(&plug);
82cae269cfa953 Konstantin Komarov 2021-08-13  1581  	do {
82cae269cfa953 Konstantin Komarov 2021-08-13  1582  		lbo = (u64)lcn << cluster_bits;
82cae269cfa953 Konstantin Komarov 2021-08-13  1583  		len = (u64)clen << cluster_bits;
82cae269cfa953 Konstantin Komarov 2021-08-13  1584  new_bio:
a2021f00ad0fa0 Christoph Hellwig  2022-01-12  1585  		new = bio_alloc(bdev, BIO_MAX_VECS, REQ_OP_WRITE, GFP_NOFS);
82cae269cfa953 Konstantin Komarov 2021-08-13  1586  		if (bio) {
82cae269cfa953 Konstantin Komarov 2021-08-13  1587  			bio_chain(bio, new);
82cae269cfa953 Konstantin Komarov 2021-08-13  1588  			submit_bio(bio);
82cae269cfa953 Konstantin Komarov 2021-08-13  1589  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  1590  		bio = new;
82cae269cfa953 Konstantin Komarov 2021-08-13 @1591  		bio->bi_iter.bi_sector = lbo >> 9;
82cae269cfa953 Konstantin Komarov 2021-08-13  1592  
82cae269cfa953 Konstantin Komarov 2021-08-13  1593  		for (;;) {
82cae269cfa953 Konstantin Komarov 2021-08-13  1594  			u32 add = len > PAGE_SIZE ? PAGE_SIZE : len;
82cae269cfa953 Konstantin Komarov 2021-08-13  1595  
82cae269cfa953 Konstantin Komarov 2021-08-13  1596  			if (bio_add_page(bio, fill, add, 0) < add)
82cae269cfa953 Konstantin Komarov 2021-08-13  1597  				goto new_bio;
82cae269cfa953 Konstantin Komarov 2021-08-13  1598  
82cae269cfa953 Konstantin Komarov 2021-08-13  1599  			lbo += add;
82cae269cfa953 Konstantin Komarov 2021-08-13  1600  			if (len <= add)
82cae269cfa953 Konstantin Komarov 2021-08-13  1601  				break;
82cae269cfa953 Konstantin Komarov 2021-08-13  1602  			len -= add;
82cae269cfa953 Konstantin Komarov 2021-08-13  1603  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  1604  	} while (run_get_entry(run, ++run_idx, NULL, &lcn, &clen));
82cae269cfa953 Konstantin Komarov 2021-08-13  1605  
82cae269cfa953 Konstantin Komarov 2021-08-13 @1606  	if (bio) {
82cae269cfa953 Konstantin Komarov 2021-08-13  1607  		if (!err)
82cae269cfa953 Konstantin Komarov 2021-08-13  1608  			err = submit_bio_wait(bio);
82cae269cfa953 Konstantin Komarov 2021-08-13  1609  		bio_put(bio);
82cae269cfa953 Konstantin Komarov 2021-08-13  1610  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  1611  	blk_finish_plug(&plug);
82cae269cfa953 Konstantin Komarov 2021-08-13  1612  out:
82cae269cfa953 Konstantin Komarov 2021-08-13  1613  	unlock_page(fill);
82cae269cfa953 Konstantin Komarov 2021-08-13  1614  	put_page(fill);
82cae269cfa953 Konstantin Komarov 2021-08-13  1615  
82cae269cfa953 Konstantin Komarov 2021-08-13  1616  	return err;
82cae269cfa953 Konstantin Komarov 2021-08-13  1617  }
82cae269cfa953 Konstantin Komarov 2021-08-13  1618  

:::::: The code@line 1606 was first introduced by commit
:::::: 82cae269cfa953032fbb8980a7d554d60fb00b17 fs/ntfs3: Add initialization of super block

:::::: TO: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
:::::: CC: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-01-12 18:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-12 18:42 [hch-block:bio_alloc-cleanup 12/13] fs/ntfs3/fsntfs.c:1606 ntfs_bio_fill_1() warn: variable dereferenced before check 'bio' (see line 1591) kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.