[android-common:android14-6.1 8/8] drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c:274 mlx5_devcom_get_peer_data_rcu() error: buffer overflow 'comp->device' 2 <= 2 (assuming for loop doesn't break)
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <[email protected]> |
BCC: [email protected] CC: [email protected] TO: [email protected] tree: https://android.googlesource.com/kernel/common android14-6.1 head: e69716042404c1fdc90175146d84a7b1513b559c commit: 362063df6ceec80b0b6798b61ae03504dcc125a5 [8/8] net/mlx5e: Fix deadlock in tc route query code :::::: branch date: 2 days ago :::::: commit date: 3 years, 2 months ago config: i386-randconfig-141-20260715 (https://download.01.org/0day-ci/archive/20260715/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 smatch: v0.5.0-9185-gbcc58b9c 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]/ New smatch warnings: drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c:274 mlx5_devcom_get_peer_data_rcu() error: buffer overflow 'comp->device' 2 <= 2 (assuming for loop doesn't break) drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c:274 mlx5_devcom_get_peer_data_rcu() error: buffer overflow 'comp->device' 2 <= 2 (assuming for loop doesn't break) Old smatch warnings: drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c:252 mlx5_devcom_get_peer_data() error: buffer overflow 'comp->device' 2 <= 2 (assuming for loop doesn't break) drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c:252 mlx5_devcom_get_peer_data() error: buffer overflow 'comp->device' 2 <= 2 (assuming for loop doesn't break) drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c:252 mlx5_devcom_get_peer_data() error: buffer overflow 'comp->device' 2 <= 2 (assuming for loop doesn't break) vim +274 drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c 362063df6ceec8 Vlad Buslov 2023-03-31 254 362063df6ceec8 Vlad Buslov 2023-03-31 255 void *mlx5_devcom_get_peer_data_rcu(struct mlx5_devcom *devcom, enum mlx5_devcom_components id) 362063df6ceec8 Vlad Buslov 2023-03-31 256 { 362063df6ceec8 Vlad Buslov 2023-03-31 257 struct mlx5_devcom_component *comp; 362063df6ceec8 Vlad Buslov 2023-03-31 258 int i; 362063df6ceec8 Vlad Buslov 2023-03-31 259 362063df6ceec8 Vlad Buslov 2023-03-31 260 if (IS_ERR_OR_NULL(devcom)) 362063df6ceec8 Vlad Buslov 2023-03-31 261 return NULL; 362063df6ceec8 Vlad Buslov 2023-03-31 262 362063df6ceec8 Vlad Buslov 2023-03-31 263 for (i = 0; i < MLX5_DEVCOM_PORTS_SUPPORTED; i++) 362063df6ceec8 Vlad Buslov 2023-03-31 264 if (i != devcom->idx) 362063df6ceec8 Vlad Buslov 2023-03-31 265 break; 362063df6ceec8 Vlad Buslov 2023-03-31 266 362063df6ceec8 Vlad Buslov 2023-03-31 267 comp = &devcom->priv->components[id]; 362063df6ceec8 Vlad Buslov 2023-03-31 268 /* This can change concurrently, however 'data' pointer will remain 362063df6ceec8 Vlad Buslov 2023-03-31 269 * valid for the duration of RCU read section. 362063df6ceec8 Vlad Buslov 2023-03-31 270 */ 362063df6ceec8 Vlad Buslov 2023-03-31 271 if (!READ_ONCE(comp->paired)) 362063df6ceec8 Vlad Buslov 2023-03-31 272 return NULL; 362063df6ceec8 Vlad Buslov 2023-03-31 273 362063df6ceec8 Vlad Buslov 2023-03-31 @274 return rcu_dereference(comp->device[i].data); fadd59fc50d010 Aviv Heller 2018-12-04 275 } fadd59fc50d010 Aviv Heller 2018-12-04 276 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki