linux/drivers/iio
Justin Stitt 1731a0c492 iio: adc: stm32-adc: Replace deprecated strncpy() with strscpy()
strncpy() is deprecated for use on NUL-terminated destination strings [1].

We should prefer more robust and less ambiguous string interfaces.

We expect adc->chan_name[val] to be NUL-terminated based on ch_name's
use within functions that expect NUL-terminated strings like strncmp and
printf-likes:
| 	if (!strncmp(stm32_adc_ic[i].name, ch_name, STM32_ADC_CH_SZ)) {
| 		/* Check internal channel availability */
| 		switch (i) {
| 		case STM32_ADC_INT_CH_VDDCORE:
| 			if (!adc->cfg->regs->or_vddcore.reg)
| 				dev_warn(&indio_dev->dev,
| 					 "%s channel not available\n", ch_name);
...

There is no evidence that NUL-padding is needed either.

Considering the above, a suitable replacement is strscpy() [2] due to
the fact that it guarantees NUL-termination on the destination buffer
without unnecessarily NUL-padding. If, for any reason, NUL-padding _is_
required we should go for `strscpy_pad`.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings [1]
Link: https://manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html [2]
Link: https://github.com/KSPP/linux/issues/90
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Justin Stitt <justinstitt@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20230921-strncpy-drivers-iio-adc-stm32-adc-c-v1-1-c50eca098597@google.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2023-10-05 15:01:08 +01:00
..
accel iio: kx022a: Support ROHM KX132ACR-LBZ 2023-10-05 14:44:06 +01:00
adc iio: adc: stm32-adc: Replace deprecated strncpy() with strscpy() 2023-10-05 15:01:08 +01:00
addac iio: addac: stx104: Add 8254 Counter/Timer support 2023-09-17 10:29:41 +01:00
afe
amplifiers iio: amplifiers: hmc425a: Add Support HMC540S 4-bit Attenuator 2023-09-12 10:39:49 +01:00
buffer
cdc iio: cdc: ad7150: relax return value check for IRQ get 2023-08-01 18:55:55 +01:00
chemical iio: chemical: sgp30: Convert enum->pointer for data in the match tables 2023-09-12 10:42:03 +01:00
common Merge 6.5-rc6 into char-misc-next 2023-08-13 22:14:51 +02:00
dac iio: dac: vf610: Convert to platform remove callback returning void 2023-09-23 15:06:55 +01:00
dummy
filter drivers: iio: filter: admv8818: add bypass mode 2023-08-08 09:51:06 +01:00
frequency iio: frequency: adf4350: Use device managed functions and fix power down issue. 2023-09-11 20:12:40 +01:00
gyro iio: gyro: hid-sensor-gyro-3d: Convert to platform remove callback returning void 2023-09-23 15:06:55 +01:00
health iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
humidity iio: humidity: hid-sensor-humidity: Convert to platform remove callback returning void 2023-09-23 15:06:55 +01:00
imu iio: imu: mpu6050: add level shifter flag 2023-10-05 14:44:06 +01:00
light Merge branch 'ib-iio-hid-sensors-v6.6-rc1' into togreg 2023-09-24 13:39:25 +01:00
magnetometer iio: magnetometer: hid-sensor-magn-3d: Convert to platform remove callback returning void 2023-09-23 15:06:55 +01:00
multiplexer
orientation iio: orientation: hid-sensor-rotation: Convert to platform remove callback returning void 2023-09-23 15:06:56 +01:00
position iio: position: hid-sensor-custom-intel-hinge: Convert to platform remove callback returning void 2023-09-23 15:06:56 +01:00
potentiometer iio: potentiometer: ad5110: Use i2c_get_match_data() 2023-09-12 10:42:03 +01:00
potentiostat iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
pressure iio: pressure: Support ROHM BU1390 2023-10-05 14:44:06 +01:00
proximity iio: proximity: srf04: Convert to platform remove callback returning void 2023-09-23 15:06:56 +01:00
resolver
temperature iio: temperature: hid-sensor: Convert to platform remove callback returning void 2023-09-23 15:06:56 +01:00
test
trigger iio: trigger: stm32-timer: Convert to platform remove callback returning void 2023-09-23 15:06:56 +01:00
iio_core_trigger.h
iio_core.h iio: Remove unused declarations 2023-09-12 10:42:03 +01:00
industrialio-buffer.c iio: buffer: fix coding style warnings 2023-05-13 17:56:06 +01:00
industrialio-configfs.c
industrialio-core.c Merge branch 'ib-iio-hid-sensors-v6.6-rc1' into togreg 2023-09-24 13:39:25 +01:00
industrialio-event.c iio: Add event enums for running period and count 2023-07-23 13:16:18 +01:00
industrialio-gts-helper.c iio: gts-helpers: fix integration time units 2023-05-13 17:54:57 +01:00
industrialio-sw-device.c
industrialio-sw-trigger.c
industrialio-trigger.c iio: Make return value check for set_trigger_state() consistent 2023-07-20 19:21:30 +01:00
industrialio-triggered-event.c
inkern.c iio: inkern: Add a helper to query an available minimum raw value 2023-07-09 22:48:17 +01:00
Kconfig iio: light: Add gain-time-scale helpers 2023-04-10 12:26:34 +01:00
Makefile iio: light: Add gain-time-scale helpers 2023-04-10 12:26:34 +01:00
TODO