All of lore.kernel.org
 help / color / mirror / Atom feed
* fs/ext4/verity.c:316 ext4_get_verity_descriptor_location() error: uninitialized symbol 'desc_size_disk'.
@ 2023-05-06  4:27 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-05-06  4:27 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Matthew Wilcox <willy@infradead.org>
CC: "Theodore Ts'o" <tytso@mit.edu>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   2e1e1337881b0e9844d687982aa54b31b1269b11
commit: b23fb762785babc1d6194770c88432da037c8a64 ext4: Convert pagecache_read() to use a folio
date:   4 weeks ago
:::::: branch date: 2 hours ago
:::::: commit date: 4 weeks ago
config: i386-randconfig-m041-20230501 (https://download.01.org/0day-ci/archive/20230506/202305061203.XAeJO5DP-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202305061203.XAeJO5DP-lkp@intel.com/

New smatch warnings:
fs/ext4/verity.c:316 ext4_get_verity_descriptor_location() error: uninitialized symbol 'desc_size_disk'.

Old smatch warnings:
fs/ext4/verity.c:205 ext4_end_enable_verity() warn: missing error code 'err'
fs/ext4/verity.c:315 ext4_get_verity_descriptor_location() warn: missing unwind goto?

vim +/desc_size_disk +316 fs/ext4/verity.c

c93d8f88580921 Eric Biggers 2019-07-22  268  
c93d8f88580921 Eric Biggers 2019-07-22  269  static int ext4_get_verity_descriptor_location(struct inode *inode,
c93d8f88580921 Eric Biggers 2019-07-22  270  					       size_t *desc_size_ret,
c93d8f88580921 Eric Biggers 2019-07-22  271  					       u64 *desc_pos_ret)
c93d8f88580921 Eric Biggers 2019-07-22  272  {
c93d8f88580921 Eric Biggers 2019-07-22  273  	struct ext4_ext_path *path;
c93d8f88580921 Eric Biggers 2019-07-22  274  	struct ext4_extent *last_extent;
c93d8f88580921 Eric Biggers 2019-07-22  275  	u32 end_lblk;
c93d8f88580921 Eric Biggers 2019-07-22  276  	u64 desc_size_pos;
c93d8f88580921 Eric Biggers 2019-07-22  277  	__le32 desc_size_disk;
c93d8f88580921 Eric Biggers 2019-07-22  278  	u32 desc_size;
c93d8f88580921 Eric Biggers 2019-07-22  279  	u64 desc_pos;
c93d8f88580921 Eric Biggers 2019-07-22  280  	int err;
c93d8f88580921 Eric Biggers 2019-07-22  281  
c93d8f88580921 Eric Biggers 2019-07-22  282  	/*
c93d8f88580921 Eric Biggers 2019-07-22  283  	 * Descriptor size is in last 4 bytes of last allocated block.
c93d8f88580921 Eric Biggers 2019-07-22  284  	 * See ext4_write_verity_descriptor().
c93d8f88580921 Eric Biggers 2019-07-22  285  	 */
c93d8f88580921 Eric Biggers 2019-07-22  286  
c93d8f88580921 Eric Biggers 2019-07-22  287  	if (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) {
c93d8f88580921 Eric Biggers 2019-07-22  288  		EXT4_ERROR_INODE(inode, "verity file doesn't use extents");
c93d8f88580921 Eric Biggers 2019-07-22  289  		return -EFSCORRUPTED;
c93d8f88580921 Eric Biggers 2019-07-22  290  	}
c93d8f88580921 Eric Biggers 2019-07-22  291  
c93d8f88580921 Eric Biggers 2019-07-22  292  	path = ext4_find_extent(inode, EXT_MAX_BLOCKS - 1, NULL, 0);
c93d8f88580921 Eric Biggers 2019-07-22  293  	if (IS_ERR(path))
c93d8f88580921 Eric Biggers 2019-07-22  294  		return PTR_ERR(path);
c93d8f88580921 Eric Biggers 2019-07-22  295  
c93d8f88580921 Eric Biggers 2019-07-22  296  	last_extent = path[path->p_depth].p_ext;
c93d8f88580921 Eric Biggers 2019-07-22  297  	if (!last_extent) {
c93d8f88580921 Eric Biggers 2019-07-22  298  		EXT4_ERROR_INODE(inode, "verity file has no extents");
7ff5fddaddf2cc Ye Bin       2022-09-24  299  		ext4_free_ext_path(path);
c93d8f88580921 Eric Biggers 2019-07-22  300  		return -EFSCORRUPTED;
c93d8f88580921 Eric Biggers 2019-07-22  301  	}
c93d8f88580921 Eric Biggers 2019-07-22  302  
c93d8f88580921 Eric Biggers 2019-07-22  303  	end_lblk = le32_to_cpu(last_extent->ee_block) +
c93d8f88580921 Eric Biggers 2019-07-22  304  		   ext4_ext_get_actual_len(last_extent);
c93d8f88580921 Eric Biggers 2019-07-22  305  	desc_size_pos = (u64)end_lblk << inode->i_blkbits;
7ff5fddaddf2cc Ye Bin       2022-09-24  306  	ext4_free_ext_path(path);
c93d8f88580921 Eric Biggers 2019-07-22  307  
c93d8f88580921 Eric Biggers 2019-07-22  308  	if (desc_size_pos < sizeof(desc_size_disk))
c93d8f88580921 Eric Biggers 2019-07-22  309  		goto bad;
c93d8f88580921 Eric Biggers 2019-07-22  310  	desc_size_pos -= sizeof(desc_size_disk);
c93d8f88580921 Eric Biggers 2019-07-22  311  
c93d8f88580921 Eric Biggers 2019-07-22  312  	err = pagecache_read(inode, &desc_size_disk, sizeof(desc_size_disk),
c93d8f88580921 Eric Biggers 2019-07-22  313  			     desc_size_pos);
c93d8f88580921 Eric Biggers 2019-07-22  314  	if (err)
c93d8f88580921 Eric Biggers 2019-07-22  315  		return err;
c93d8f88580921 Eric Biggers 2019-07-22 @316  	desc_size = le32_to_cpu(desc_size_disk);
c93d8f88580921 Eric Biggers 2019-07-22  317  
c93d8f88580921 Eric Biggers 2019-07-22  318  	/*
c93d8f88580921 Eric Biggers 2019-07-22  319  	 * The descriptor is stored just before the desc_size_disk, but starting
c93d8f88580921 Eric Biggers 2019-07-22  320  	 * on a filesystem block boundary.
c93d8f88580921 Eric Biggers 2019-07-22  321  	 */
c93d8f88580921 Eric Biggers 2019-07-22  322  
c93d8f88580921 Eric Biggers 2019-07-22  323  	if (desc_size > INT_MAX || desc_size > desc_size_pos)
c93d8f88580921 Eric Biggers 2019-07-22  324  		goto bad;
c93d8f88580921 Eric Biggers 2019-07-22  325  
c93d8f88580921 Eric Biggers 2019-07-22  326  	desc_pos = round_down(desc_size_pos - desc_size, i_blocksize(inode));
c93d8f88580921 Eric Biggers 2019-07-22  327  	if (desc_pos < ext4_verity_metadata_pos(inode))
c93d8f88580921 Eric Biggers 2019-07-22  328  		goto bad;
c93d8f88580921 Eric Biggers 2019-07-22  329  
c93d8f88580921 Eric Biggers 2019-07-22  330  	*desc_size_ret = desc_size;
c93d8f88580921 Eric Biggers 2019-07-22  331  	*desc_pos_ret = desc_pos;
c93d8f88580921 Eric Biggers 2019-07-22  332  	return 0;
c93d8f88580921 Eric Biggers 2019-07-22  333  
c93d8f88580921 Eric Biggers 2019-07-22  334  bad:
c93d8f88580921 Eric Biggers 2019-07-22  335  	EXT4_ERROR_INODE(inode, "verity file corrupted; can't find descriptor");
c93d8f88580921 Eric Biggers 2019-07-22  336  	return -EFSCORRUPTED;
c93d8f88580921 Eric Biggers 2019-07-22  337  }
c93d8f88580921 Eric Biggers 2019-07-22  338  

:::::: The code at line 316 was first introduced by commit
:::::: c93d8f88580921c84d2213161ef3c22560511b84 ext4: add basic fs-verity support

:::::: TO: Eric Biggers <ebiggers@google.com>
:::::: CC: Eric Biggers <ebiggers@google.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

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

only message in thread, other threads:[~2023-05-06  4:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-06  4:27 fs/ext4/verity.c:316 ext4_get_verity_descriptor_location() error: uninitialized symbol 'desc_size_disk' 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.