lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202308240128.Gsn0b0Fv-lkp@intel.com>
Date:   Thu, 24 Aug 2023 01:21:58 +0800
From:   kernel test robot <lkp@...el.com>
To:     Khadija Kamran <kamrankhadijadj@...il.com>,
        Casey Schaufler <casey@...aufler-ca.com>,
        Paul Moore <paul@...l-moore.com>,
        James Morris <jmorris@...ei.org>,
        "Serge E. Hallyn" <serge@...lyn.com>,
        Stephen Smalley <stephen.smalley.work@...il.com>,
        Eric Paris <eparis@...isplace.org>, selinux@...r.kernel.org,
        linux-kernel@...r.kernel.org,
        linux-security-module@...r.kernel.org, ztarkhani@...rosoft.com,
        alison.schofield@...el.com
Cc:     llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev
Subject: Re: [PATCH] lsm: constify 'mnt_opts' parameter in
 security_free_mnt_opts()

Hi Khadija,

kernel test robot noticed the following build errors:

[auto build test ERROR on pcmoore-selinux/next]
[also build test ERROR on pcmoore-audit/next linus/master v6.5-rc7 next-20230823]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Khadija-Kamran/lsm-constify-mnt_opts-parameter-in-security_free_mnt_opts/20230823-170310
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git next
patch link:    https://lore.kernel.org/r/ZOXG%2FVVC1XRc7TtI%40gmail.com
patch subject: [PATCH] lsm: constify 'mnt_opts' parameter in security_free_mnt_opts()
config: riscv-randconfig-001-20230823 (https://download.01.org/0day-ci/archive/20230824/202308240128.Gsn0b0Fv-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce: (https://download.01.org/0day-ci/archive/20230824/202308240128.Gsn0b0Fv-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308240128.Gsn0b0Fv-lkp@intel.com/

All errors (new ones prefixed by >>):

>> fs/btrfs/super.c:1523:25: error: passing 'void **' to parameter of type 'const void **' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
           security_free_mnt_opts(&new_sec_opts);
                                  ^~~~~~~~~~~~~
   include/linux/security.h:301:42: note: passing argument to parameter 'mnt_opts' here
   void security_free_mnt_opts(const void **mnt_opts);
                                            ^
   fs/btrfs/super.c:1536:25: error: passing 'void **' to parameter of type 'const void **' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
           security_free_mnt_opts(&new_sec_opts);
                                  ^~~~~~~~~~~~~
   include/linux/security.h:301:42: note: passing argument to parameter 'mnt_opts' here
   void security_free_mnt_opts(const void **mnt_opts);
                                            ^
   fs/btrfs/super.c:1699:26: error: passing 'void **' to parameter of type 'const void **' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
                   security_free_mnt_opts(&new_sec_opts);
                                          ^~~~~~~~~~~~~
   include/linux/security.h:301:42: note: passing argument to parameter 'mnt_opts' here
   void security_free_mnt_opts(const void **mnt_opts);
                                            ^
   3 errors generated.


vim +1523 fs/btrfs/super.c

450ba0ea06b6ed Josef Bacik       2010-11-19  1427  
312c89fbca0689 Misono, Tomohiro  2017-12-14  1428  /*
312c89fbca0689 Misono, Tomohiro  2017-12-14  1429   * Find a superblock for the given device / mount point.
312c89fbca0689 Misono, Tomohiro  2017-12-14  1430   *
312c89fbca0689 Misono, Tomohiro  2017-12-14  1431   * Note: This is based on mount_bdev from fs/super.c with a few additions
312c89fbca0689 Misono, Tomohiro  2017-12-14  1432   *       for multiple device setup.  Make sure to keep it in sync.
312c89fbca0689 Misono, Tomohiro  2017-12-14  1433   */
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1434  static struct dentry *btrfs_mount_root(struct file_system_type *fs_type,
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1435  		int flags, const char *device_name, void *data)
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1436  {
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1437  	struct block_device *bdev = NULL;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1438  	struct super_block *s;
36350e95a2b1fe Gu Jinxiang       2018-07-12  1439  	struct btrfs_device *device = NULL;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1440  	struct btrfs_fs_devices *fs_devices = NULL;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1441  	struct btrfs_fs_info *fs_info = NULL;
204cc0ccf1d49c Al Viro           2018-12-13  1442  	void *new_sec_opts = NULL;
05bdb9965305bb Christoph Hellwig 2023-06-08  1443  	blk_mode_t mode = sb_open_mode(flags);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1444  	int error = 0;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1445  
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1446  	if (data) {
a65001e8a4d465 Al Viro           2018-12-10  1447  		error = security_sb_eat_lsm_opts(data, &new_sec_opts);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1448  		if (error)
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1449  			return ERR_PTR(error);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1450  	}
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1451  
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1452  	/*
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1453  	 * Setup a dummy root and fs_info for test/set super.  This is because
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1454  	 * we don't actually fill this stuff out until open_ctree, but we need
8260edba67a2e6 Josef Bacik       2020-01-24  1455  	 * then open_ctree will properly initialize the file system specific
8260edba67a2e6 Josef Bacik       2020-01-24  1456  	 * settings later.  btrfs_init_fs_info initializes the static elements
8260edba67a2e6 Josef Bacik       2020-01-24  1457  	 * of the fs_info (locks and such) to make cleanup easier if we find a
8260edba67a2e6 Josef Bacik       2020-01-24  1458  	 * superblock with our given fs_devices later on at sget() time.
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1459  	 */
a8fd1f71749387 Jeff Mahoney      2018-02-15  1460  	fs_info = kvzalloc(sizeof(struct btrfs_fs_info), GFP_KERNEL);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1461  	if (!fs_info) {
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1462  		error = -ENOMEM;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1463  		goto error_sec_opts;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1464  	}
8260edba67a2e6 Josef Bacik       2020-01-24  1465  	btrfs_init_fs_info(fs_info);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1466  
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1467  	fs_info->super_copy = kzalloc(BTRFS_SUPER_INFO_SIZE, GFP_KERNEL);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1468  	fs_info->super_for_commit = kzalloc(BTRFS_SUPER_INFO_SIZE, GFP_KERNEL);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1469  	if (!fs_info->super_copy || !fs_info->super_for_commit) {
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1470  		error = -ENOMEM;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1471  		goto error_fs_info;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1472  	}
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1473  
399f7f4c42e8a5 David Sterba      2018-06-19  1474  	mutex_lock(&uuid_mutex);
2ef789288afd36 Christoph Hellwig 2023-06-08  1475  	error = btrfs_parse_device_options(data, mode);
81ffd56b574535 David Sterba      2018-06-19  1476  	if (error) {
399f7f4c42e8a5 David Sterba      2018-06-19  1477  		mutex_unlock(&uuid_mutex);
399f7f4c42e8a5 David Sterba      2018-06-19  1478  		goto error_fs_info;
81ffd56b574535 David Sterba      2018-06-19  1479  	}
399f7f4c42e8a5 David Sterba      2018-06-19  1480  
2ef789288afd36 Christoph Hellwig 2023-06-08  1481  	device = btrfs_scan_one_device(device_name, mode);
36350e95a2b1fe Gu Jinxiang       2018-07-12  1482  	if (IS_ERR(device)) {
399f7f4c42e8a5 David Sterba      2018-06-19  1483  		mutex_unlock(&uuid_mutex);
36350e95a2b1fe Gu Jinxiang       2018-07-12  1484  		error = PTR_ERR(device);
399f7f4c42e8a5 David Sterba      2018-06-19  1485  		goto error_fs_info;
81ffd56b574535 David Sterba      2018-06-19  1486  	}
399f7f4c42e8a5 David Sterba      2018-06-19  1487  
36350e95a2b1fe Gu Jinxiang       2018-07-12  1488  	fs_devices = device->fs_devices;
399f7f4c42e8a5 David Sterba      2018-06-19  1489  	fs_info->fs_devices = fs_devices;
399f7f4c42e8a5 David Sterba      2018-06-19  1490  
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1491  	error = btrfs_open_devices(fs_devices, mode, fs_type);
f5194e34cabadd David Sterba      2018-06-19  1492  	mutex_unlock(&uuid_mutex);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1493  	if (error)
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1494  		goto error_fs_info;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1495  
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1496  	if (!(flags & SB_RDONLY) && fs_devices->rw_devices == 0) {
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1497  		error = -EACCES;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1498  		goto error_close_devices;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1499  	}
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1500  
d24fa5c1da0802 Anand Jain        2021-08-24  1501  	bdev = fs_devices->latest_dev->bdev;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1502  	s = sget(fs_type, btrfs_test_super, btrfs_set_super, flags | SB_NOSEC,
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1503  		 fs_info);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1504  	if (IS_ERR(s)) {
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1505  		error = PTR_ERR(s);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1506  		goto error_close_devices;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1507  	}
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1508  
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1509  	if (s->s_root) {
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1510  		btrfs_close_devices(fs_devices);
0d4b0463011de0 Josef Bacik       2020-01-24  1511  		btrfs_free_fs_info(fs_info);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1512  		if ((flags ^ s->s_flags) & SB_RDONLY)
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1513  			error = -EBUSY;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1514  	} else {
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1515  		snprintf(s->s_id, sizeof(s->s_id), "%pg", bdev);
e33c267ab70de4 Roman Gushchin    2022-05-31  1516  		shrinker_debugfs_rename(&s->s_shrink, "sb-%s:%s", fs_type->name,
e33c267ab70de4 Roman Gushchin    2022-05-31  1517  					s->s_id);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1518  		btrfs_sb(s)->bdev_holder = fs_type;
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1519  		error = btrfs_fill_super(s, fs_devices, data);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1520  	}
a65001e8a4d465 Al Viro           2018-12-10  1521  	if (!error)
204cc0ccf1d49c Al Viro           2018-12-13  1522  		error = security_sb_set_mnt_opts(s, new_sec_opts, 0, NULL);
a65001e8a4d465 Al Viro           2018-12-10 @1523  	security_free_mnt_opts(&new_sec_opts);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1524  	if (error) {
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1525  		deactivate_locked_super(s);
a65001e8a4d465 Al Viro           2018-12-10  1526  		return ERR_PTR(error);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1527  	}
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1528  
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1529  	return dget(s->s_root);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1530  
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1531  error_close_devices:
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1532  	btrfs_close_devices(fs_devices);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1533  error_fs_info:
0d4b0463011de0 Josef Bacik       2020-01-24  1534  	btrfs_free_fs_info(fs_info);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1535  error_sec_opts:
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1536  	security_free_mnt_opts(&new_sec_opts);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1537  	return ERR_PTR(error);
72fa39f5c7a1c9 Misono, Tomohiro  2017-12-14  1538  }
312c89fbca0689 Misono, Tomohiro  2017-12-14  1539  

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ