security/landlock/syscalls.c:150:1: sparse: sparse: Using plain integer as NULL pointer
From: kernel test robot
Date: Sat Dec 09 2023 - 15:34:31 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f2e8a57ee9036c7d5443382b6c3c09b51a92ec7e
commit: 265885daf3e5082eb9f6e2a23bdbf9ba4456a21b landlock: Add syscall implementations
date: 2 years, 8 months ago
config: s390-randconfig-r113-20231115 (https://download.01.org/0day-ci/archive/20231210/202312100424.bPSZJTIw-lkp@xxxxxxxxx/config)
compiler: s390-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231210/202312100424.bPSZJTIw-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312100424.bPSZJTIw-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
>> security/landlock/syscalls.c:150:1: sparse: sparse: Using plain integer as NULL pointer
>> security/landlock/syscalls.c:150:1: sparse: sparse: Using plain integer as NULL pointer
security/landlock/syscalls.c:295:1: sparse: sparse: Using plain integer as NULL pointer
security/landlock/syscalls.c:295:1: sparse: sparse: Using plain integer as NULL pointer
vim +150 security/landlock/syscalls.c
130
131 /**
132 * sys_landlock_create_ruleset - Create a new ruleset
133 *
134 * @attr: Pointer to a &struct landlock_ruleset_attr identifying the scope of
135 * the new ruleset.
136 * @size: Size of the pointed &struct landlock_ruleset_attr (needed for
137 * backward and forward compatibility).
138 * @flags: Must be 0.
139 *
140 * This system call enables to create a new Landlock ruleset, and returns the
141 * related file descriptor on success.
142 *
143 * Possible returned errors are:
144 *
145 * - EOPNOTSUPP: Landlock is supported by the kernel but disabled at boot time;
146 * - EINVAL: @flags is not 0, or unknown access, or too small @size;
147 * - E2BIG or EFAULT: @attr or @size inconsistencies;
148 * - ENOMSG: empty &landlock_ruleset_attr.handled_access_fs.
149 */
> 150 SYSCALL_DEFINE3(landlock_create_ruleset,
151 const struct landlock_ruleset_attr __user *const, attr,
152 const size_t, size, const __u32, flags)
153 {
154 struct landlock_ruleset_attr ruleset_attr;
155 struct landlock_ruleset *ruleset;
156 int err, ruleset_fd;
157
158 /* Build-time checks. */
159 build_check_abi();
160
161 if (!landlock_initialized)
162 return -EOPNOTSUPP;
163
164 /* No flag for now. */
165 if (flags)
166 return -EINVAL;
167
168 /* Copies raw user space buffer. */
169 err = copy_min_struct_from_user(&ruleset_attr, sizeof(ruleset_attr),
170 offsetofend(typeof(ruleset_attr), handled_access_fs),
171 attr, size);
172 if (err)
173 return err;
174
175 /* Checks content (and 32-bits cast). */
176 if ((ruleset_attr.handled_access_fs | LANDLOCK_MASK_ACCESS_FS) !=
177 LANDLOCK_MASK_ACCESS_FS)
178 return -EINVAL;
179
180 /* Checks arguments and transforms to kernel struct. */
181 ruleset = landlock_create_ruleset(ruleset_attr.handled_access_fs);
182 if (IS_ERR(ruleset))
183 return PTR_ERR(ruleset);
184
185 /* Creates anonymous FD referring to the ruleset. */
186 ruleset_fd = anon_inode_getfd("landlock-ruleset", &ruleset_fops,
187 ruleset, O_RDWR | O_CLOEXEC);
188 if (ruleset_fd < 0)
189 landlock_put_ruleset(ruleset);
190 return ruleset_fd;
191 }
192
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki