android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kees Cook da4e715a46 USB: ene_usb6250: Allocate enough memory for full object
[ Upstream commit ce33e64c1788912976b61314b56935abd4bc97ef ]

The allocation of PageBuffer is 512 bytes in size, but the dereferencing
of struct ms_bootblock_idi (also size 512) happens at a calculated offset
within the allocation, which means the object could potentially extend
beyond the end of the allocation. Avoid this case by just allocating
enough space to catch any accesses beyond the end. Seen with GCC 13:

../drivers/usb/storage/ene_ub6250.c: In function 'ms_lib_process_bootblock':
../drivers/usb/storage/ene_ub6250.c:1050:44: warning: array subscript 'struct ms_bootblock_idi[0]' is partly outside array bounds of 'unsigned char[512]' [-Warray-bounds=]
 1050 |                         if (le16_to_cpu(idi->wIDIgeneralConfiguration) != MS_IDI_GENERAL_CONF)
      |                                            ^~
../include/uapi/linux/byteorder/little_endian.h:37:51: note: in definition of macro '__le16_to_cpu'
   37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
      |                                                   ^
../drivers/usb/storage/ene_ub6250.c:1050:29: note: in expansion of macro 'le16_to_cpu'
 1050 |                         if (le16_to_cpu(idi->wIDIgeneralConfiguration) != MS_IDI_GENERAL_CONF)
      |                             ^~~~~~~~~~~
In file included from ../drivers/usb/storage/ene_ub6250.c:5:
In function 'kmalloc',
    inlined from 'ms_lib_process_bootblock' at ../drivers/usb/storage/ene_ub6250.c:942:15:
../include/linux/slab.h:580:24: note: at offset [256, 512] into object of size 512 allocated by 'kmalloc_trace'
  580 |                 return kmalloc_trace(
      |                        ^~~~~~~~~~~~~~
  581 |                                 kmalloc_caches[kmalloc_type(flags)][index],
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  582 |                                 flags, size);
      |                                 ~~~~~~~~~~~~

Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20230204183546.never.849-kees@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-03-11 16:44:15 +01:00
..
accessibility
acpi ACPI: video: Fix Lenovo Ideapad Z570 DMI match 2023-03-11 16:43:56 +01:00
amba
android binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0 2022-12-08 11:23:01 +01:00
ata ata: libata: Fix sata_down_spd_limit() when no link speed is reported 2023-02-22 12:50:24 +01:00
atm
auxdisplay
base driver core: Fix test_async_probe_init saves device in wrong array 2023-02-06 07:52:40 +01:00
bcma
block rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails 2023-03-11 16:44:04 +01:00
bluetooth Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave() 2023-01-18 11:41:16 +01:00
bus bus: sunxi-rsb: Fix error handling in sunxi_rsb_init() 2023-02-22 12:50:23 +01:00
cdrom
char ipmi_ssif: Rename idle state and check 2023-03-11 16:43:58 +01:00
clk clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled() 2023-03-11 16:43:51 +01:00
clocksource clocksource/drivers/sh_cmt: Make sure channel clock supply is enabled 2023-01-18 11:40:56 +01:00
connector
counter counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update 2023-01-18 11:41:24 +01:00
cpufreq cpufreq: armada-37xx: stop using 0 as NULL pointer 2023-02-06 07:52:41 +01:00
cpuidle cpuidle: dt: Return the correct numbers of parsed idle states 2023-01-18 11:40:53 +01:00
crypto crypto: crypto4xx - Call dma_unmap_page when done 2023-03-11 16:43:42 +01:00
dax
dca
devfreq PM/devfreq: governor: Add a private governor_data for governor 2023-01-18 11:41:52 +01:00
dio drivers: dio: fix possible memory leak in dio_init() 2023-01-18 11:41:21 +01:00
dma dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size 2023-03-03 11:41:48 +01:00
dma-buf
edac EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info 2023-02-06 07:52:44 +01:00
eisa
extcon
firewire firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region 2023-02-22 12:50:22 +01:00
firmware firmware: coreboot: framebuffer: Ignore reserved pixel color bits 2023-03-11 16:43:58 +01:00
fpga fpga: stratix10-soc: Fix return value check in s10_ops_write_init() 2023-02-22 12:50:28 +01:00
fsi WRITE is "data source", not destination... 2023-02-22 12:50:23 +01:00
gnss
gpio gpio: vf610: connect GPIO label to dev name 2023-03-11 16:43:47 +01:00
gpu drm/radeon: Fix eDP for single-display iMac11,2 2023-03-11 16:44:07 +01:00
greybus
hid HID: Add Mapping for System Microphone Mute 2023-03-11 16:43:56 +01:00
hsi HSI: omap_ssi_core: Fix error handling in ssi_init() 2023-01-18 11:41:28 +01:00
hv Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register() 2022-12-08 11:22:58 +01:00
hwmon hwmon: (coretemp) Simplify platform device handling 2023-03-11 16:43:57 +01:00
hwspinlock
hwtracing
i2c i2c: rk3x: fix a bunch of kernel-doc warnings 2023-02-22 12:50:25 +01:00
i3c
ide
idle
iio iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_config_word() 2023-03-11 16:44:15 +01:00
infiniband IB/hfi1: Assign npages earlier 2023-03-03 11:41:48 +01:00
input Input: ads7846 - don't check penirq immediately for 7845 2023-03-11 16:43:51 +01:00
interconnect
iommu iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map() 2023-02-22 12:50:42 +01:00
ipack
irqchip irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts 2023-03-11 16:43:43 +01:00
isdn mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() 2023-01-18 11:41:32 +01:00
leds
lightnvm
macintosh macintosh/macio-adb: check the return value of ioremap() 2023-01-18 11:41:29 +01:00
mailbox mailbox: zynq-ipi: fix error handling while device_register() fails 2023-01-18 11:41:33 +01:00
mcb mcb: mcb-parse: fix error handing in chameleon_parse_gdd() 2023-01-18 11:41:25 +01:00
md dm flakey: don't corrupt the zero page 2023-03-11 16:44:04 +01:00
media media: uvcvideo: Silence memcpy() run-time false positive warnings 2023-03-11 16:44:14 +01:00
memory memory: mvebu-devbus: Fix missing clk_disable_unprepare in mvebu_devbus_probe() 2023-02-06 07:52:34 +01:00
memstick
message
mfd mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak 2023-03-11 16:44:13 +01:00
misc mei: bus-fixup:upon error print return values of send and receive 2023-03-11 16:44:14 +01:00
mmc mmc: mmc_spi: fix error handling in mmc_spi_probe() 2023-02-22 12:50:39 +01:00
mtd ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed 2023-03-11 16:44:10 +01:00
mux
net net/mlx5: Geneve, Fix handling of Geneve object id as error code 2023-03-11 16:44:12 +01:00
nfc nfc: fix memory leak of se_io context in nfc_genl_se_io 2023-03-11 16:44:12 +01:00
ntb
nubus
nvdimm
nvme nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association 2023-02-22 12:50:35 +01:00
nvmem nvmem: core: fix cell removal on error 2023-02-22 12:50:28 +01:00
of of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() and find_dup_cset_prop() 2023-01-18 11:41:14 +01:00
opp OPP: fix error checking in opp_migrate_dentry() 2023-03-11 16:43:41 +01:00
oprofile
parisc parisc: led: Fix potential null-ptr-deref in start_task() 2023-01-18 11:41:50 +01:00
parport parport_pc: Avoid FIFO port location truncation 2022-11-25 17:42:14 +01:00
pci PCI: Avoid FLR for AMD FCH AHCI adapters 2023-03-11 16:44:07 +01:00
pcmcia
perf perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init() 2023-01-18 11:40:50 +01:00
phy phy: rockchip-inno-usb2: Fix missing clk_disable_unprepare() in rockchip_usb2phy_power_on() 2023-02-06 07:52:37 +01:00
pinctrl pinctrl: at91: use devm_kasprintf() to avoid potential leaks 2023-03-11 16:43:57 +01:00
platform platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK 2023-02-06 07:52:42 +01:00
pnp PNP: fix name memory leak in pnp_alloc_dev() 2023-01-18 11:40:54 +01:00
power power: supply: fix null pointer dereferencing in power_supply_get_battery_info 2023-01-18 11:41:28 +01:00
powercap powercap: fix possible name leak in powercap_register_zone() 2023-03-11 16:43:40 +01:00
pps
ps3
ptp
pwm pwm: stm32-lp: fix the check on arr and cmp registers update 2023-03-11 16:44:08 +01:00
rapidio rapidio: devices: fix missing put_device in mport_cdev_open 2023-01-18 11:40:59 +01:00
ras
regulator regulator: s5m8767: Bounds check id indexing into arrays 2023-03-11 16:43:57 +01:00
remoteproc remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers 2023-03-11 16:43:52 +01:00
reset
rpmsg rpmsg: glink: Avoid infinite loop on intent for missing channel 2023-03-11 16:43:53 +01:00
rtc rtc: sun6i: Always export the internal oscillator 2023-03-11 16:44:13 +01:00
s390 treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD() 2023-03-11 16:43:42 +01:00
sbus
scsi scsi: ipr: Work around fortify-string warning 2023-03-11 16:44:13 +01:00
sfi
sh
siox
slimbus slimbus: stream: correct presence rate frequencies 2022-11-25 17:42:17 +01:00
soc ARM: ux500: do not directly dereference __iomem 2023-01-18 11:41:46 +01:00
soundwire
spi spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one() 2023-03-11 16:43:47 +01:00
spmi
ssb
staging staging: emxx_udc: Add checks for dma_alloc_coherent() 2023-03-11 16:44:14 +01:00
target scsi: target: core: Fix warning on RT kernels 2023-02-22 12:50:25 +01:00
tc
tee tee: optee: fix possible memory leak in optee_register_device() 2022-12-08 11:22:57 +01:00
thermal thermal: intel: BXT_PMIC: select REGMAP instead of depending on it 2023-03-11 16:44:13 +01:00
thunderbolt
tty tty: serial: fsl_lpuart: disable the CTS when send break signal 2023-03-11 16:44:14 +01:00
uio uio: uio_dmem_genirq: Fix deadlock between irq config and handling 2023-01-18 11:41:22 +01:00
usb USB: ene_usb6250: Allocate enough memory for full object 2023-03-11 16:44:15 +01:00
vfio vfio: platform: Do not pass return buffer to ACPI _RST method 2023-01-18 11:41:22 +01:00
vhost vhost: fix range used in translate_desc() 2023-01-18 11:41:57 +01:00
video fbdev: smscufx: fix error handling code in ufx_usb_probe 2023-02-22 12:50:29 +01:00
virt
virtio
visorbus
vlynq
vme vme: Fix error not catched in fake_init() 2023-01-18 11:41:26 +01:00
w1 w1: fix WARNING after calling w1_process() 2023-02-06 07:52:40 +01:00
watchdog watchdog: pcwd_usb: Fix attempting to access uninitialized memory 2023-03-11 16:44:11 +01:00
xen fix "direction" argument of iov_iter_kvec() 2023-02-22 12:50:23 +01:00
zorro
Kconfig
Makefile