drivers/char/xillybus/xillybus_class.c:230 xillybus_find_inode() warn: variable dereferenced before check 'inode' (see line 226)
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild,dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
BCC: [email protected] CC: [email protected] TO: Eli Billauer <[email protected]> CC: 0day robot <[email protected]> tree: https://github.com/intel-lab-lkp/linux/commits/Eli-Billauer/char-xillybus-Improve-control-of-execution-flow-with-mutexes/20260806-033404 head: d05c024c9354aabd2ea64be46e6fccbf24ba33cd commit: 16edb90c39a5645b3803be32b2b77476efae2402 char: xillybus: Add defensive sanity checks date: 2 days ago :::::: branch date: 2 days ago :::::: commit date: 2 days ago config: i386-randconfig-141 (https://download.01.org/0day-ci/archive/20260807/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 smatch: v0.5.0-9187-g5189e3fb 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 <[email protected]> | Reported-by: Dan Carpenter <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ smatch warnings: drivers/char/xillybus/xillybus_class.c:230 xillybus_find_inode() warn: variable dereferenced before check 'inode' (see line 226) vim +/inode +230 drivers/char/xillybus/xillybus_class.c 8cb5d216ab3365 Eli Billauer 2021-05-26 222 8cb5d216ab3365 Eli Billauer 2021-05-26 223 int xillybus_find_inode(struct inode *inode, 8cb5d216ab3365 Eli Billauer 2021-05-26 224 void **private_data, int *index) 8cb5d216ab3365 Eli Billauer 2021-05-26 225 { 8cb5d216ab3365 Eli Billauer 2021-05-26 @226 int minor = iminor(inode); 8cb5d216ab3365 Eli Billauer 2021-05-26 227 int major = imajor(inode); 4834f9898c7301 Jakob Koschel 2022-03-24 228 struct xilly_unit *unit = NULL, *iter; 8cb5d216ab3365 Eli Billauer 2021-05-26 229 16edb90c39a564 Eli Billauer 2026-06-30 @230 if (!inode || !private_data || !index) 16edb90c39a564 Eli Billauer 2026-06-30 231 return -ENODEV; 16edb90c39a564 Eli Billauer 2026-06-30 232 8cb5d216ab3365 Eli Billauer 2021-05-26 233 mutex_lock(&unit_mutex); 8cb5d216ab3365 Eli Billauer 2021-05-26 234 4834f9898c7301 Jakob Koschel 2022-03-24 235 list_for_each_entry(iter, &unit_list, list_entry) 4834f9898c7301 Jakob Koschel 2022-03-24 236 if (iter->major == major && 4834f9898c7301 Jakob Koschel 2022-03-24 237 minor >= iter->lowest_minor && 4834f9898c7301 Jakob Koschel 2022-03-24 238 minor < (iter->lowest_minor + iter->num_nodes)) { 4834f9898c7301 Jakob Koschel 2022-03-24 239 unit = iter; 8cb5d216ab3365 Eli Billauer 2021-05-26 240 break; 8cb5d216ab3365 Eli Billauer 2021-05-26 241 } 8cb5d216ab3365 Eli Billauer 2021-05-26 242 c002f04c0bc79e Eli Billauer 2022-11-17 243 if (!unit) { 8cb5d216ab3365 Eli Billauer 2021-05-26 244 mutex_unlock(&unit_mutex); 8cb5d216ab3365 Eli Billauer 2021-05-26 245 return -ENODEV; c002f04c0bc79e Eli Billauer 2022-11-17 246 } 8cb5d216ab3365 Eli Billauer 2021-05-26 247 8cb5d216ab3365 Eli Billauer 2021-05-26 248 *private_data = unit->private_data; 8cb5d216ab3365 Eli Billauer 2021-05-26 249 *index = minor - unit->lowest_minor; 8cb5d216ab3365 Eli Billauer 2021-05-26 250 c002f04c0bc79e Eli Billauer 2022-11-17 251 mutex_unlock(&unit_mutex); 8cb5d216ab3365 Eli Billauer 2021-05-26 252 return 0; 8cb5d216ab3365 Eli Billauer 2021-05-26 253 } 8cb5d216ab3365 Eli Billauer 2021-05-26 254 EXPORT_SYMBOL(xillybus_find_inode); 8cb5d216ab3365 Eli Billauer 2021-05-26 255 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki