drivers/leds/trigger/ledtrig-netdev.c:120:34: warning: array subscript 17 is above array bounds of 'char[16]'

From: kernel test robot
Date: Tue Sep 19 2023 - 08:21:21 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2cf0f715623872823a72e451243bbf555d10d032
commit: 28a6a2ef18ad840a390d519840c303b03040961c leds: trigger: netdev: refactor code setting device name
date: 4 months ago
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20230919/202309192035.GTJEEbem-lkp@xxxxxxxxx/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230919/202309192035.GTJEEbem-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/202309192035.GTJEEbem-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/leds/trigger/ledtrig-netdev.c: In function 'set_device_name':
>> drivers/leds/trigger/ledtrig-netdev.c:120:34: warning: array subscript 17 is above array bounds of 'char[16]' [-Warray-bounds=]
120 | trigger_data->device_name[size] = 0;
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
drivers/leds/trigger/ledtrig-netdev.c:48:14: note: while referencing 'device_name'
48 | char device_name[IFNAMSIZ];
| ^~~~~~~~~~~
>> drivers/leds/trigger/ledtrig-netdev.c:120:34: warning: array subscript 17 is above array bounds of 'char[16]' [-Warray-bounds=]
120 | trigger_data->device_name[size] = 0;
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
drivers/leds/trigger/ledtrig-netdev.c:48:14: note: while referencing 'device_name'
48 | char device_name[IFNAMSIZ];
| ^~~~~~~~~~~


vim +120 drivers/leds/trigger/ledtrig-netdev.c

06f502f57d0d77 Ben Whitten 2017-12-10 106
28a6a2ef18ad84 Andrew Lunn 2023-05-29 107 static int set_device_name(struct led_netdev_data *trigger_data,
28a6a2ef18ad84 Andrew Lunn 2023-05-29 108 const char *name, size_t size)
06f502f57d0d77 Ben Whitten 2017-12-10 109 {
06f502f57d0d77 Ben Whitten 2017-12-10 110 cancel_delayed_work_sync(&trigger_data->work);
06f502f57d0d77 Ben Whitten 2017-12-10 111
d1b9e1391ab2dc Christian Marangi 2023-04-19 112 mutex_lock(&trigger_data->lock);
06f502f57d0d77 Ben Whitten 2017-12-10 113
06f502f57d0d77 Ben Whitten 2017-12-10 114 if (trigger_data->net_dev) {
06f502f57d0d77 Ben Whitten 2017-12-10 115 dev_put(trigger_data->net_dev);
06f502f57d0d77 Ben Whitten 2017-12-10 116 trigger_data->net_dev = NULL;
06f502f57d0d77 Ben Whitten 2017-12-10 117 }
06f502f57d0d77 Ben Whitten 2017-12-10 118
28a6a2ef18ad84 Andrew Lunn 2023-05-29 119 memcpy(trigger_data->device_name, name, size);
909346433064b8 Rasmus Villemoes 2019-03-14 @120 trigger_data->device_name[size] = 0;
06f502f57d0d77 Ben Whitten 2017-12-10 121 if (size > 0 && trigger_data->device_name[size - 1] == '\n')
06f502f57d0d77 Ben Whitten 2017-12-10 122 trigger_data->device_name[size - 1] = 0;
06f502f57d0d77 Ben Whitten 2017-12-10 123
06f502f57d0d77 Ben Whitten 2017-12-10 124 if (trigger_data->device_name[0] != 0)
06f502f57d0d77 Ben Whitten 2017-12-10 125 trigger_data->net_dev =
06f502f57d0d77 Ben Whitten 2017-12-10 126 dev_get_by_name(&init_net, trigger_data->device_name);
06f502f57d0d77 Ben Whitten 2017-12-10 127
e2f24cb1b5daf9 Christian Marangi 2023-04-19 128 trigger_data->carrier_link_up = false;
06f502f57d0d77 Ben Whitten 2017-12-10 129 if (trigger_data->net_dev != NULL)
e2f24cb1b5daf9 Christian Marangi 2023-04-19 130 trigger_data->carrier_link_up = netif_carrier_ok(trigger_data->net_dev);
06f502f57d0d77 Ben Whitten 2017-12-10 131
06f502f57d0d77 Ben Whitten 2017-12-10 132 trigger_data->last_activity = 0;
06f502f57d0d77 Ben Whitten 2017-12-10 133
06f502f57d0d77 Ben Whitten 2017-12-10 134 set_baseline_state(trigger_data);
d1b9e1391ab2dc Christian Marangi 2023-04-19 135 mutex_unlock(&trigger_data->lock);
06f502f57d0d77 Ben Whitten 2017-12-10 136
28a6a2ef18ad84 Andrew Lunn 2023-05-29 137 return 0;
28a6a2ef18ad84 Andrew Lunn 2023-05-29 138 }
28a6a2ef18ad84 Andrew Lunn 2023-05-29 139

:::::: The code at line 120 was first introduced by commit
:::::: 909346433064b8d840dc82af26161926b8d37558 leds: trigger: netdev: use memcpy in device_name_store

:::::: TO: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
:::::: CC: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki