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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202410060624.Z84m82vK-lkp@intel.com>
Date: Sun, 6 Oct 2024 06:26:24 +0800
From: kernel test robot <lkp@...el.com>
To: luca.boccassi@...il.com, linux-kernel@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	christian@...uner.io
Subject: Re: [PATCH v4] pidfd: add ioctl to retrieve pid info

Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on 9852d85ec9d492ebef56dc5f229416c925758edc]

url:    https://github.com/intel-lab-lkp/linux/commits/luca-boccassi-gmail-com/pidfd-add-ioctl-to-retrieve-pid-info/20241005-041639
base:   9852d85ec9d492ebef56dc5f229416c925758edc
patch link:    https://lore.kernel.org/r/20241004194751.215507-1-luca.boccassi%40gmail.com
patch subject: [PATCH v4] pidfd: add ioctl to retrieve pid info
config: arm-randconfig-002-20241006 (https://download.01.org/0day-ci/archive/20241006/202410060624.Z84m82vK-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241006/202410060624.Z84m82vK-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/202410060624.Z84m82vK-lkp@intel.com/

All errors (new ones prefixed by >>):

>> fs/pidfs.c:156:25: error: implicit declaration of function 'task_css_check' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                   struct cgroup *cgrp = task_css_check(task, pids_cgrp_id, 1)->cgroup;
                                         ^
   fs/pidfs.c:156:64: error: member reference type 'int' is not a pointer
                   struct cgroup *cgrp = task_css_check(task, pids_cgrp_id, 1)->cgroup;
                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^
   fs/pidfs.c:156:46: error: use of undeclared identifier 'pids_cgrp_id'
                   struct cgroup *cgrp = task_css_check(task, pids_cgrp_id, 1)->cgroup;
                                                              ^
   3 errors generated.

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for GET_FREE_REGION
   Depends on [n]: SPARSEMEM [=n]
   Selected by [m]:
   - RESOURCE_KUNIT_TEST [=m] && RUNTIME_TESTING_MENU [=y] && KUNIT [=m]


vim +/task_css_check +156 fs/pidfs.c

   117	
   118	static long pidfd_info(struct task_struct *task, unsigned int cmd, unsigned long arg)
   119	{
   120		struct pidfd_info __user *uinfo = (struct pidfd_info __user *)arg;
   121		size_t usize = _IOC_SIZE(cmd);
   122		struct pidfd_info kinfo = {};
   123		struct user_namespace *user_ns;
   124		const struct cred *c;
   125		__u64 request_mask;
   126	
   127		if (!uinfo)
   128			return -EINVAL;
   129		if (usize < sizeof(struct pidfd_info))
   130			return -EINVAL; /* First version, no smaller struct possible */
   131	
   132		if (copy_from_user(&request_mask, &uinfo->request_mask, sizeof(request_mask)))
   133			return -EFAULT;
   134	
   135		c = get_task_cred(task);
   136		if (!c)
   137			return -ESRCH;
   138	
   139		/* Unconditionally return identifiers and credentials, the rest only on request */
   140	
   141		kinfo.pid = task_pid_vnr(task);
   142		kinfo.tgid = task_tgid_vnr(task);
   143		kinfo.ppid = task_ppid_nr_ns(task, task_active_pid_ns(task));
   144	
   145		user_ns = current_user_ns();
   146		kinfo.ruid = from_kuid_munged(user_ns, c->uid);
   147		kinfo.rgid = from_kgid_munged(user_ns, c->gid);
   148		kinfo.euid = from_kuid_munged(user_ns, c->euid);
   149		kinfo.egid = from_kgid_munged(user_ns, c->egid);
   150		kinfo.suid = from_kuid_munged(user_ns, c->suid);
   151		kinfo.sgid = from_kgid_munged(user_ns, c->sgid);
   152		kinfo.fsuid = from_kuid_munged(user_ns, c->fsuid);
   153		kinfo.fsgid = from_kgid_munged(user_ns, c->fsgid);
   154	
   155		if (request_mask & PIDFD_INFO_CGROUPID) {
 > 156			struct cgroup *cgrp = task_css_check(task, pids_cgrp_id, 1)->cgroup;
   157			if (!cgrp)
   158				return -ENODEV;
   159	
   160			kinfo.cgroupid = cgroup_id(cgrp);
   161			kinfo.result_mask |= PIDFD_INFO_CGROUPID;
   162		}
   163	
   164		/*
   165		 * If userspace and the kernel have the same struct size it can just
   166		 * be copied. If userspace provides an older struct, only the bits that
   167		 * userspace knows about will be copied. If userspace provides a new
   168		 * struct, only the bits that the kernel knows about will be copied and
   169		 * the size value will be set to the size the kernel knows about.
   170		 */
   171		if (copy_to_user(uinfo, &kinfo, min(usize, sizeof(kinfo))))
   172			return -EFAULT;
   173	
   174		return 0;
   175	}
   176	

-- 
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