OpenCloudOS-Kernel/drivers/char
Matthew R. Ochs 1547183852 tpm_tis_spi: Account for SPI header when allocating TPM SPI xfer buffer
[ Upstream commit 195aba96b854dd664768f382cd1db375d8181f88 ]

The TPM SPI transfer mechanism uses MAX_SPI_FRAMESIZE for computing the
maximum transfer length and the size of the transfer buffer. As such, it
does not account for the 4 bytes of header that prepends the SPI data
frame. This can result in out-of-bounds accesses and was confirmed with
KASAN.

Introduce SPI_HDRSIZE to account for the header and use to allocate the
transfer buffer.

Fixes: a86a42ac2b ("tpm_tis_spi: Add hardware wait polling")
Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Tested-by: Carol Soto <csoto@nvidia.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-06-12 11:12:51 +02:00
..
agp parisc/agp: Use 64-bit LE values in SBA IOMMU PDIR table 2023-11-28 17:20:00 +00:00
hw_random hwrng: starfive - Fix dev_err_probe return error 2024-02-05 20:14:16 +00:00
ipmi Minor fixes for IPMI 2023-08-30 19:20:35 -07:00
mwave char/mwave: Adjust io port register size 2021-12-03 14:27:06 +01:00
tpm tpm_tis_spi: Account for SPI header when allocating TPM SPI xfer buffer 2024-06-12 11:12:51 +02:00
xilinx_hwicap xilinx_hwicap: make icap_class a static const structure 2023-06-23 10:27:23 +02:00
xillybus char: xillybus: make XILLYBUS_OF depend on HAS_IOMEM 2023-08-04 15:39:39 +02:00
Kconfig char: add HAS_IOPORT dependencies 2023-05-31 19:17:29 +01:00
Makefile char: pcmcia: remove all the drivers 2023-03-09 17:30:27 +01:00
adi.c
apm-emulation.c apm-emulation: drop unexpected word "the" in the comments 2022-06-27 16:15:27 +02:00
applicom.c applicom: Fix PCI device refcount leak in applicom_init() 2023-01-20 13:05:39 +01:00
applicom.h
bsr.c char: Explicitly include correct DT includes 2023-07-30 18:15:27 +02:00
ds1620.c
dsp56k.c dsp56k: make dsp56k_class a static const structure 2023-06-23 10:27:08 +02:00
dtlk.c
hangcheck-timer.c
hpet.c hpet: remove unused writeq/readq function definitions 2022-02-04 16:45:39 +01:00
lp.c char: lp: make lp_class a static const structure 2023-06-23 10:27:11 +02:00
mem.c drivers/char/mem.c: shrink character device's devlist[] array 2023-08-24 16:25:15 -07:00
misc.c char: misc: make misc_class a static const structure 2023-06-23 10:27:15 +02:00
mspec.c mm: replace vma->vm_flags direct modifications with modifier calls 2023-02-09 16:51:39 -08:00
nsc_gpio.c
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c
powernv-op-panel.c powerpc/powernv: Fix fall-through warning for Clang 2021-07-13 19:21:41 -05:00
ppdev.c ppdev: Add an error check in register_device 2024-06-12 11:12:26 +02:00
ps3flash.c powerpc/ps3: make system bus's remove and shutdown callbacks return void 2020-12-04 01:01:22 +11:00
random.c random: handle creditable entropy from atomic process context 2024-04-27 17:11:30 +02:00
scx200_gpio.c
sonypi.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
tlclk.c
toshiba.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
ttyprintk.c tty: make tty_operations::write()'s count size_t 2023-08-11 21:12:46 +02:00
uv_mmtimer.c
virtio_console.c virtio: features, fixes, cleanups 2023-07-03 15:38:26 -07:00