kernel_samsung_a53x/drivers
Erick Archer 3a115f26d8 Input: ff-core - prefer struct_size over open coded arithmetic
[ Upstream commit a08b8f8557ad88ffdff8905e5da972afe52e3307 ]

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "ff" variable is a pointer to "struct ff_device" and this
structure ends in a flexible array:

struct ff_device {
	[...]
	struct file *effect_owners[] __counted_by(max_effects);
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + count * size" in
the kzalloc() function.

The struct_size() helper returns SIZE_MAX on overflow. So, refactor
the comparison to take advantage of this.

This way, the code is more readable and safer.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/AS8PR02MB72371E646714BAE2E51A6A378B152@AS8PR02MB7237.eurprd02.prod.outlook.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 14:19:40 +01:00
..
accessibility speakup: Fix sizeof() vs ARRAY_SIZE() bug 2024-11-19 12:26:51 +01:00
acpi ACPI: x86: Force StorageD3Enable on more products 2024-11-19 14:19:30 +01:00
amba
android
ata ata: libata-core: Fix double free on error 2024-11-19 14:19:34 +01:00
atm
auxdisplay
base drivers: core: synchronize really_probe() and dev_uevent() 2024-11-19 14:19:04 +01:00
battery
bcma
block null_blk: Print correct max open zones limit in null_init_zoned_dev() 2024-11-19 14:19:00 +01:00
bluetooth Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl 2024-11-19 14:19:06 +01:00
bts
bus
cdrom
char ppdev: Add an error check in register_device 2024-11-19 12:27:04 +01:00
clk clk: qcom: mmcc-msm8998: fix venus clock issue 2024-11-19 12:26:59 +01:00
clocksource
connector
counter counter: ti-eqep: enable clock at probe 2024-11-19 14:19:33 +01:00
cpufreq cpufreq: exit() callback is optional 2024-11-19 12:26:54 +01:00
cpuidle
crypto crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak 2024-11-19 12:27:18 +01:00
dax
dca
devfreq
dio
dma dmaengine: ioatdma: Fix missing kmem_cache_destroy() 2024-11-19 14:19:09 +01:00
dma-buf dma-buf/sw-sync: don't enable IRQ from sync_print_obj() 2024-11-19 12:27:10 +01:00
edac
eisa
extcon extcon: max8997: select IRQ_DOMAIN instead of depending on it 2024-11-19 12:27:04 +01:00
fingerprint
firewire firewire: nosy: ensure user_length is taken into account when fetching packet contents 2024-11-19 11:32:46 +01:00
firmware firmware: dmi: Stop decoding on broken entry 2024-11-19 14:19:40 +01:00
fpga fpga: region: add owner module and take its refcount 2024-11-19 12:27:04 +01:00
fsi
gnss
gpio gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1) 2024-11-19 14:19:33 +01:00
gpu drm/amd/display: Skip finding free audio for unknown engine_id 2024-11-19 14:19:40 +01:00
greybus greybus: Fix use-after-free bug in gb_interface_release due to race condition. 2024-11-19 14:19:05 +01:00
gud
hid HID: Add quirk for Logitech Casa touchpad 2024-11-19 14:19:06 +01:00
hsi
hv
hwmon hwmon: (shtc1) Fix property misspelling 2024-11-19 12:27:11 +01:00
hwspinlock
hwtracing intel_th: pci: Add Lunar Lake support 2024-11-19 14:19:05 +01:00
i2c i2c: ocores: set IACK bit after core is enabled 2024-11-19 14:19:10 +01:00
i3c
ide
idle
ifconn
iio iio: chemical: bme680: Fix sensor data read operation 2024-11-19 14:19:33 +01:00
infiniband IB/core: Implement a limit on UMAD receive List 2024-11-19 14:19:40 +01:00
input Input: ff-core - prefer struct_size over open coded arithmetic 2024-11-19 14:19:40 +01:00
interconnect
iommu iommu/arm-smmu-v3: Free MSIs in case of ENOMEM 2024-11-19 14:19:07 +01:00
ipack
irqchip irqchip/loongson-pch-msi: Fix off-by-one on allocation error path 2024-11-19 12:26:54 +01:00
isdn
kperfmon
kq/mesh
leds
lightnvm
macintosh macintosh/via-macii: Fix "BUG: sleeping function called from invalid context" 2024-11-19 12:26:55 +01:00
mailbox
mcb
md bcache: fix variable length array abuse in btree_iter 2024-11-19 14:19:29 +01:00
media media: dw2102: Don't translate i2c read into write 2024-11-19 14:19:40 +01:00
memory
memstick
message
mfd
misc vmci: prevent speculation leaks by sanitizing event in event_deliver() 2024-11-19 14:19:04 +01:00
mmc mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro() 2024-11-19 14:19:33 +01:00
most
mtd mtd: spinand: macronix: Add support for serial NAND flash 2024-11-19 14:19:35 +01:00
muic
mux
net net: usb: ax88179_178a: improve link status logs 2024-11-19 14:19:33 +01:00
nfc
ntb
nubus
nvdimm
nvme nvmet: fix ns enable/disable possible hang 2024-11-19 12:27:10 +01:00
nvmem
of
opp
oprofile
parisc
parport
pci PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports 2024-11-19 14:19:07 +01:00
pcmcia
perf
phy
pinctrl pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set 2024-11-19 14:19:31 +01:00
platform
pnp
power power: supply: cros_usbpd: provide ID table for avoiding fallback match 2024-11-19 14:19:07 +01:00
powercap
pps
ps3
ptp ptp: Fix error message on failed pin verification 2024-11-19 14:19:01 +01:00
pwm pwm: stm32: Refuse too small period requests 2024-11-19 14:19:35 +01:00
rapidio
ras
regulator regulator: core: Fix modpost error "regulator_get_regmap" undefined 2024-11-19 14:19:09 +01:00
remoteproc remoteproc: k3-r5: Jump to error handling labels in start/stop errors 2024-11-19 14:19:05 +01:00
reset
rpmsg
rtc
s390 s390/ap: Fix crash in AP internal function modify_bitmap() 2024-11-19 12:27:19 +01:00
samsung
sbus
scsi scsi: qedf: Make qedf_execute_tmf() non-preemptible 2024-11-19 14:19:40 +01:00
sensorhub
sensors
sfi
sh
siox
slimbus
soc soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message 2024-11-19 14:19:32 +01:00
soundwire soundwire: cadence: fix invalid PDI offset 2024-11-19 12:27:00 +01:00
spi spi: stm32: Don't warn about spurious interrupts 2024-11-19 12:27:10 +01:00
spmi
spu_verify
ssb
staging spmi: hisi-spmi-controller: Do not override device identifier 2024-11-19 14:19:29 +01:00
sti
target scsi: target: Fix SELinux error when systemd-modules loads the target module 2024-11-19 11:32:44 +01:00
tc
tee
thermal
thunderbolt
tty serial: 8250_omap: Fix Errata i2310 with RX FIFO level check 2024-11-19 14:19:39 +01:00
uh
uio
usb usb: atm: cxacru: fix endpoint checking in cxacru_bind() 2024-11-19 14:19:34 +01:00
vdpa
vfio
vhost
vibrator
video fbdev: savage: Handle err return when savagefb_check_var failed 2024-11-19 12:27:18 +01:00
virt
virtio virtio: delete vq in vp_find_vqs_msix() when request_irq() fails 2024-11-19 12:27:09 +01:00
vision
vision3
visorbus
vlynq
vme
w1
watchdog watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin 2024-11-19 12:27:18 +01:00
xen
zorro
Kconfig
Kconfig.variant1
Makefile
Makefile.variant1