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] [day] [month] [year] [list]
Message-ID: <20250106.ohsoo1eeWahy@digikod.net>
Date: Mon, 6 Jan 2025 18:22:17 +0100
From: Mickaël Salaün <mic@...ikod.net>
To: Jonathan Corbet <corbet@....net>
Cc: kernel test robot <lkp@...el.com>, oe-kbuild-all@...ts.linux.dev, 
	linux-kernel@...r.kernel.org, Paul Moore <paul@...l-moore.com>, linux-doc@...r.kernel.org
Subject: Re: security/landlock/fs.c:719: warning: Function parameter or
 struct member '' not described in 'collect_domain_accesses'

Similar scripts/kernel-doc issue:
- https://lore.kernel.org/all/20250106.iinooheeQu8z@digikod.net/
- https://lore.kernel.org/all/20250106.iejae7ueh1Ka@digikod.net/

On Wed, Jan 01, 2025 at 07:50:18PM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   ccb98ccef0e543c2bd4ef1a72270461957f3d8d0
> commit: b91c3e4ea756b12b7d992529226edce1cfd854d7 landlock: Add support for file reparenting with LANDLOCK_ACCESS_FS_REFER
> date:   2 years, 7 months ago
> config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20250101/202501011904.VXOMzLe7-lkp@intel.com/config)
> compiler: sh4-linux-gcc (GCC) 14.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250101/202501011904.VXOMzLe7-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/202501011904.VXOMzLe7-lkp@intel.com/
> 
> All warnings (new ones prefixed by >>):
> 
>    Use of uninitialized value $param in regexp compilation at scripts/kernel-doc line 1532, <IN_FILE> line 478.
>    Use of uninitialized value $actual in substitution (s///) at scripts/kernel-doc line 1484, <IN_FILE> line 478.
>    Use of uninitialized value $actual in substitution (s///) at scripts/kernel-doc line 1484, <IN_FILE> line 478.
>    Use of uninitialized value $param in substitution (s///) at scripts/kernel-doc line 1588, <IN_FILE> line 478.
>    Use of uninitialized value $param in pattern match (m//) at scripts/kernel-doc line 1616, <IN_FILE> line 478.
>    Use of uninitialized value $param in hash element at scripts/kernel-doc line 1626, <IN_FILE> line 478.
>    Use of uninitialized value $param in pattern match (m//) at scripts/kernel-doc line 1626, <IN_FILE> line 478.
>    Use of uninitialized value $param in hash element at scripts/kernel-doc line 1627, <IN_FILE> line 478.
>    Use of uninitialized value $param in pattern match (m//) at scripts/kernel-doc line 1629, <IN_FILE> line 478.
>    Use of uninitialized value $param in concatenation (.) or string at scripts/kernel-doc line 1630, <IN_FILE> line 478.
>    security/landlock/fs.c:478: warning: Function parameter or struct member '' not described in 'check_access_path_dual'
>    Use of uninitialized value $param in hash element at scripts/kernel-doc line 1645, <IN_FILE> line 478.
>    Use of uninitialized value $param in regexp compilation at scripts/kernel-doc line 1532, <IN_FILE> line 478.
>    Use of uninitialized value $actual in substitution (s///) at scripts/kernel-doc line 1484, <IN_FILE> line 478.
>    Use of uninitialized value $actual in substitution (s///) at scripts/kernel-doc line 1484, <IN_FILE> line 478.
>    Use of uninitialized value $param in substitution (s///) at scripts/kernel-doc line 1588, <IN_FILE> line 478.
>    Use of uninitialized value $param in pattern match (m//) at scripts/kernel-doc line 1616, <IN_FILE> line 478.
>    Use of uninitialized value $param in hash element at scripts/kernel-doc line 1626, <IN_FILE> line 478.
>    Use of uninitialized value $param in hash element at scripts/kernel-doc line 1645, <IN_FILE> line 478.
>    Use of uninitialized value $parameterlist[3] in join or string at scripts/kernel-doc line 1806, <IN_FILE> line 478.
>    Use of uninitialized value $parameterlist[6] in join or string at scripts/kernel-doc line 1806, <IN_FILE> line 478.
>    security/landlock/fs.c:478: warning: Excess function parameter 'layer_masks_parent1' description in 'check_access_path_dual'
>    security/landlock/fs.c:478: warning: Excess function parameter 'layer_masks_parent2' description in 'check_access_path_dual'
>    Use of uninitialized value $param in regexp compilation at scripts/kernel-doc line 1532, <IN_FILE> line 719.
>    Use of uninitialized value $actual in substitution (s///) at scripts/kernel-doc line 1484, <IN_FILE> line 719.
>    Use of uninitialized value $actual in substitution (s///) at scripts/kernel-doc line 1484, <IN_FILE> line 719.
>    Use of uninitialized value $param in substitution (s///) at scripts/kernel-doc line 1588, <IN_FILE> line 719.
>    Use of uninitialized value $param in pattern match (m//) at scripts/kernel-doc line 1616, <IN_FILE> line 719.
>    Use of uninitialized value $param in hash element at scripts/kernel-doc line 1626, <IN_FILE> line 719.
>    Use of uninitialized value $param in pattern match (m//) at scripts/kernel-doc line 1626, <IN_FILE> line 719.
>    Use of uninitialized value $param in hash element at scripts/kernel-doc line 1627, <IN_FILE> line 719.
>    Use of uninitialized value $param in pattern match (m//) at scripts/kernel-doc line 1629, <IN_FILE> line 719.
>    Use of uninitialized value $param in concatenation (.) or string at scripts/kernel-doc line 1630, <IN_FILE> line 719.
> >> security/landlock/fs.c:719: warning: Function parameter or struct member '' not described in 'collect_domain_accesses'
>    Use of uninitialized value $param in hash element at scripts/kernel-doc line 1645, <IN_FILE> line 719.
>    Use of uninitialized value $parameterlist[3] in join or string at scripts/kernel-doc line 1806, <IN_FILE> line 719.
> >> security/landlock/fs.c:719: warning: Excess function parameter 'layer_masks_dom' description in 'collect_domain_accesses'
> 
> 
> vim +719 security/landlock/fs.c
> 
>    693	
>    694	/**
>    695	 * collect_domain_accesses - Walk through a file path and collect accesses
>    696	 *
>    697	 * @domain: Domain to check against.
>    698	 * @mnt_root: Last directory to check.
>    699	 * @dir: Directory to start the walk from.
>    700	 * @layer_masks_dom: Where to store the collected accesses.
>    701	 *
>    702	 * This helper is useful to begin a path walk from the @dir directory to a
>    703	 * @mnt_root directory used as a mount point.  This mount point is the common
>    704	 * ancestor between the source and the destination of a renamed and linked
>    705	 * file.  While walking from @dir to @mnt_root, we record all the domain's
>    706	 * allowed accesses in @layer_masks_dom.
>    707	 *
>    708	 * This is similar to check_access_path_dual() but much simpler because it only
>    709	 * handles walking on the same mount point and only check one set of accesses.
>    710	 *
>    711	 * Returns:
>    712	 * - true if all the domain access rights are allowed for @dir;
>    713	 * - false if the walk reached @mnt_root.
>    714	 */
>    715	static bool collect_domain_accesses(
>    716		const struct landlock_ruleset *const domain,
>    717		const struct dentry *const mnt_root, struct dentry *dir,
>    718		layer_mask_t (*const layer_masks_dom)[LANDLOCK_NUM_ACCESS_FS])
>  > 719	{
>    720		unsigned long access_dom;
>    721		bool ret = false;
>    722	
>    723		if (WARN_ON_ONCE(!domain || !mnt_root || !dir || !layer_masks_dom))
>    724			return true;
>    725		if (is_nouser_or_private(dir))
>    726			return true;
>    727	
>    728		access_dom = init_layer_masks(domain, LANDLOCK_MASK_ACCESS_FS,
>    729					      layer_masks_dom);
>    730	
>    731		dget(dir);
>    732		while (true) {
>    733			struct dentry *parent_dentry;
>    734	
>    735			/* Gets all layers allowing all domain accesses. */
>    736			if (unmask_layers(find_rule(domain, dir), access_dom,
>    737					  layer_masks_dom)) {
>    738				/*
>    739				 * Stops when all handled accesses are allowed by at
>    740				 * least one rule in each layer.
>    741				 */
>    742				ret = true;
>    743				break;
>    744			}
>    745	
>    746			/* We should not reach a root other than @mnt_root. */
>    747			if (dir == mnt_root || WARN_ON_ONCE(IS_ROOT(dir)))
>    748				break;
>    749	
>    750			parent_dentry = dget_parent(dir);
>    751			dput(dir);
>    752			dir = parent_dentry;
>    753		}
>    754		dput(dir);
>    755		return ret;
>    756	}
>    757	
> 
> -- 
> 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