All of lore.kernel.org
 help / color / mirror / Atom feed
* fs/btrfs/ioctl.c:1951 btrfs_ioctl_snap_create_v2() warn: comparison of a potentially tagged address (btrfs_ioctl_snap_create_v2, -2, inherit->num_qgroups)
@ 2021-09-30 15:21 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-09-30 15:21 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Dan Carpenter <error27@gmail.com>
CC: David Sterba <dsterba@suse.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   02d5e016800d082058b3d3b7c3ede136cdc6ddcb
commit: 5011c5a663b9c6d6aff3d394f11049b371199627 btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
date:   7 months ago
:::::: branch date: 25 hours ago
:::::: commit date: 7 months ago
config: arm64-randconfig-m031-20210929 (attached as .config)
compiler: aarch64-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/btrfs/ioctl.c:1951 btrfs_ioctl_snap_create_v2() warn: comparison of a potentially tagged address (btrfs_ioctl_snap_create_v2, -2, inherit->num_qgroups)
fs/btrfs/ioctl.c:1952 btrfs_ioctl_snap_create_v2() warn: comparison of a potentially tagged address (btrfs_ioctl_snap_create_v2, -2, inherit->num_ref_copies)
fs/btrfs/ioctl.c:1953 btrfs_ioctl_snap_create_v2() warn: comparison of a potentially tagged address (btrfs_ioctl_snap_create_v2, -2, inherit->num_excl_copies)

Old smatch warnings:
fs/btrfs/ioctl.c:893 create_snapshot() warn: '&pending_snapshot->list' not removed from list
fs/btrfs/ioctl.c:1652 btrfs_defrag_file() warn: should 'ret << 12' be a 64 bit type?
fs/btrfs/ioctl.c:1941 btrfs_ioctl_snap_create_v2() warn: comparison of a potentially tagged address (btrfs_ioctl_snap_create_v2, -2, vol_args->size)

vim +1951 fs/btrfs/ioctl.c

fa0d2b9bd71734 Li Zefan          2010-12-20  1913  
fa0d2b9bd71734 Li Zefan          2010-12-20  1914  static noinline int btrfs_ioctl_snap_create_v2(struct file *file,
fa0d2b9bd71734 Li Zefan          2010-12-20  1915  					       void __user *arg, int subvol)
fa0d2b9bd71734 Li Zefan          2010-12-20  1916  {
fa0d2b9bd71734 Li Zefan          2010-12-20  1917  	struct btrfs_ioctl_vol_args_v2 *vol_args;
fa0d2b9bd71734 Li Zefan          2010-12-20  1918  	int ret;
b83cc9693f3968 Li Zefan          2010-12-20  1919  	bool readonly = false;
6f72c7e20dbaea Arne Jansen       2011-09-14  1920  	struct btrfs_qgroup_inherit *inherit = NULL;
fdfb1e4f6c6147 Li Zefan          2010-12-10  1921  
325c50e3cebb92 Jeff Mahoney      2016-09-21  1922  	if (!S_ISDIR(file_inode(file)->i_mode))
325c50e3cebb92 Jeff Mahoney      2016-09-21  1923  		return -ENOTDIR;
325c50e3cebb92 Jeff Mahoney      2016-09-21  1924  
fa0d2b9bd71734 Li Zefan          2010-12-20  1925  	vol_args = memdup_user(arg, sizeof(*vol_args));
fa0d2b9bd71734 Li Zefan          2010-12-20  1926  	if (IS_ERR(vol_args))
fa0d2b9bd71734 Li Zefan          2010-12-20  1927  		return PTR_ERR(vol_args);
fa0d2b9bd71734 Li Zefan          2010-12-20  1928  	vol_args->name[BTRFS_SUBVOL_NAME_MAX] = '\0';
fdfb1e4f6c6147 Li Zefan          2010-12-10  1929  
673990dba332d9 David Sterba      2020-02-21  1930  	if (vol_args->flags & ~BTRFS_SUBVOL_CREATE_ARGS_MASK) {
b83cc9693f3968 Li Zefan          2010-12-20  1931  		ret = -EOPNOTSUPP;
c47ca32d3aadb2 Dan Carpenter     2014-09-04  1932  		goto free_args;
fdfb1e4f6c6147 Li Zefan          2010-12-10  1933  	}
fdfb1e4f6c6147 Li Zefan          2010-12-10  1934  
b83cc9693f3968 Li Zefan          2010-12-20  1935  	if (vol_args->flags & BTRFS_SUBVOL_RDONLY)
b83cc9693f3968 Li Zefan          2010-12-20  1936  		readonly = true;
6f72c7e20dbaea Arne Jansen       2011-09-14  1937  	if (vol_args->flags & BTRFS_SUBVOL_QGROUP_INHERIT) {
5011c5a663b9c6 Dan Carpenter     2021-02-17  1938  		u64 nums;
5011c5a663b9c6 Dan Carpenter     2021-02-17  1939  
5011c5a663b9c6 Dan Carpenter     2021-02-17  1940  		if (vol_args->size < sizeof(*inherit) ||
5011c5a663b9c6 Dan Carpenter     2021-02-17  1941  		    vol_args->size > PAGE_SIZE) {
6f72c7e20dbaea Arne Jansen       2011-09-14  1942  			ret = -EINVAL;
c47ca32d3aadb2 Dan Carpenter     2014-09-04  1943  			goto free_args;
6f72c7e20dbaea Arne Jansen       2011-09-14  1944  		}
6f72c7e20dbaea Arne Jansen       2011-09-14  1945  		inherit = memdup_user(vol_args->qgroup_inherit, vol_args->size);
6f72c7e20dbaea Arne Jansen       2011-09-14  1946  		if (IS_ERR(inherit)) {
6f72c7e20dbaea Arne Jansen       2011-09-14  1947  			ret = PTR_ERR(inherit);
c47ca32d3aadb2 Dan Carpenter     2014-09-04  1948  			goto free_args;
6f72c7e20dbaea Arne Jansen       2011-09-14  1949  		}
5011c5a663b9c6 Dan Carpenter     2021-02-17  1950  
5011c5a663b9c6 Dan Carpenter     2021-02-17 @1951  		if (inherit->num_qgroups > PAGE_SIZE ||
5011c5a663b9c6 Dan Carpenter     2021-02-17 @1952  		    inherit->num_ref_copies > PAGE_SIZE ||
5011c5a663b9c6 Dan Carpenter     2021-02-17 @1953  		    inherit->num_excl_copies > PAGE_SIZE) {
5011c5a663b9c6 Dan Carpenter     2021-02-17  1954  			ret = -EINVAL;
5011c5a663b9c6 Dan Carpenter     2021-02-17  1955  			goto free_inherit;
5011c5a663b9c6 Dan Carpenter     2021-02-17  1956  		}
5011c5a663b9c6 Dan Carpenter     2021-02-17  1957  
5011c5a663b9c6 Dan Carpenter     2021-02-17  1958  		nums = inherit->num_qgroups + 2 * inherit->num_ref_copies +
5011c5a663b9c6 Dan Carpenter     2021-02-17  1959  		       2 * inherit->num_excl_copies;
5011c5a663b9c6 Dan Carpenter     2021-02-17  1960  		if (vol_args->size != struct_size(inherit, qgroups, nums)) {
5011c5a663b9c6 Dan Carpenter     2021-02-17  1961  			ret = -EINVAL;
5011c5a663b9c6 Dan Carpenter     2021-02-17  1962  			goto free_inherit;
5011c5a663b9c6 Dan Carpenter     2021-02-17  1963  		}
6f72c7e20dbaea Arne Jansen       2011-09-14  1964  	}
75eaa0e22c055e Sage Weil         2010-12-10  1965  
5d54c67eccb489 Nikolay Borisov   2020-03-13  1966  	ret = __btrfs_ioctl_snap_create(file, vol_args->name, vol_args->fd,
5d54c67eccb489 Nikolay Borisov   2020-03-13  1967  					subvol, readonly, inherit);
c47ca32d3aadb2 Dan Carpenter     2014-09-04  1968  	if (ret)
c47ca32d3aadb2 Dan Carpenter     2014-09-04  1969  		goto free_inherit;
c47ca32d3aadb2 Dan Carpenter     2014-09-04  1970  free_inherit:
6f72c7e20dbaea Arne Jansen       2011-09-14  1971  	kfree(inherit);
c47ca32d3aadb2 Dan Carpenter     2014-09-04  1972  free_args:
c47ca32d3aadb2 Dan Carpenter     2014-09-04  1973  	kfree(vol_args);
f46b5a66b3316e Christoph Hellwig 2008-06-11  1974  	return ret;
f46b5a66b3316e Christoph Hellwig 2008-06-11  1975  }
f46b5a66b3316e Christoph Hellwig 2008-06-11  1976  

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 43635 bytes --]

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

only message in thread, other threads:[~2021-09-30 15:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-30 15:21 fs/btrfs/ioctl.c:1951 btrfs_ioctl_snap_create_v2() warn: comparison of a potentially tagged address (btrfs_ioctl_snap_create_v2, -2, inherit->num_qgroups) 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.