linux-stable/drivers/edac
Arnd Bergmann 6aa7865ba7 EDAC/thunderx: Fix possible out-of-bounds string access
[ Upstream commit 475c58e1a4 ]

Enabling -Wstringop-overflow globally exposes a warning for a common bug
in the usage of strncat():

  drivers/edac/thunderx_edac.c: In function 'thunderx_ocx_com_threaded_isr':
  drivers/edac/thunderx_edac.c:1136:17: error: 'strncat' specified bound 1024 equals destination size [-Werror=stringop-overflow=]
   1136 |                 strncat(msg, other, OCX_MESSAGE_SIZE);
        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ...
   1145 |                                 strncat(msg, other, OCX_MESSAGE_SIZE);
   ...
   1150 |                                 strncat(msg, other, OCX_MESSAGE_SIZE);

   ...

Apparently the author of this driver expected strncat() to behave the
way that strlcat() does, which uses the size of the destination buffer
as its third argument rather than the length of the source buffer. The
result is that there is no check on the size of the allocated buffer.

Change it to strlcat().

  [ bp: Trim compiler output, fixup commit message. ]

Fixes: 41003396f9 ("EDAC, thunderx: Add Cavium ThunderX EDAC driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20231122222007.3199885-1-arnd@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 14:37:39 -08:00
..
al_mc_edac.c
altera_edac.c EDAC/altera: Fix deferred probing 2022-02-08 18:30:40 +01:00
altera_edac.h
amd64_edac.c EDAC/amd64: Handle three rank interleaving mode 2021-11-18 14:04:06 +01:00
amd64_edac.h
amd64_edac_dbg.c
amd64_edac_inj.c
amd76x_edac.c
amd8111_edac.c
amd8111_edac.h
amd8131_edac.c
amd8131_edac.h
armada_xp_edac.c EDAC/armada-xp: Fix output of uncorrectable error counter 2021-10-20 11:45:01 +02:00
aspeed_edac.c
bluefield_edac.c
cell_edac.c
cpc925_edac.c
debugfs.c
dmc520_edac.c EDAC/dmc520: Don't print an error for each unconfigured interrupt line 2022-06-09 10:21:02 +02:00
e7xxx_edac.c
e752x_edac.c
edac_device.c EDAC/device: Respect any driver-supplied workqueue polling value 2023-02-01 08:23:23 +01:00
edac_device.h
edac_device_sysfs.c
edac_mc.c EDAC: Fix calculation of returned address and next offset in edac_align_ptr() 2022-02-23 12:01:07 +01:00
edac_mc.h
edac_mc_sysfs.c EDAC/mc_sysfs: Add missing newlines when printing {max,dimm}_location 2020-09-18 09:14:01 +02:00
edac_module.c
edac_module.h EDAC/device: Fix period calculation in edac_device_reset_delay_period() 2023-01-18 11:44:58 +01:00
edac_pci.c
edac_pci.h
edac_pci_sysfs.c
fsl_ddr_edac.c
fsl_ddr_edac.h
ghes_edac.c EDAC/ghes: Set the DIMM label unconditionally 2022-08-03 12:00:50 +02:00
highbank_l2_edac.c
highbank_mc_edac.c EDAC/highbank: Fix memory leak in highbank_mc_probe() 2023-02-01 08:23:09 +01:00
i7core_edac.c * Add Amazon's Annapurna Labs memory controller EDAC driver, by Talel 2020-10-12 10:12:26 -07:00
i10nm_base.c EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper() 2023-01-14 10:15:18 +01:00
i3000_edac.c
i3200_edac.c
i5000_edac.c
i5100_edac.c
i5400_edac.c
i7300_edac.c
i82443bxgx_edac.c
i82860_edac.c
i82875p_edac.c
i82975x_edac.c
ie31200_edac.c
Kconfig
layerscape_edac.c
Makefile
mce_amd.c EDAC/mce_amd: Do not load edac_mce_amd module on guests 2021-09-15 09:50:24 +02:00
mce_amd.h
mpc85xx_edac.c
mpc85xx_edac.h
mv64x60_edac.c
mv64x60_edac.h
octeon_edac-l2c.c
octeon_edac-lmc.c
octeon_edac-pc.c
octeon_edac-pci.c
pasemi_edac.c
pnd2_edac.c EDAC/Intel: Do not load EDAC driver when running as a guest 2021-07-14 16:56:00 +02:00
pnd2_edac.h
ppc4xx_edac.c
ppc4xx_edac.h
qcom_edac.c EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info 2023-02-01 08:23:23 +01:00
r82600_edac.c
sb_edac.c EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell 2021-11-18 14:03:45 +01:00
sifive_edac.c
skx_base.c EDAC/skx: Fix overflows on the DRAM row address mapping arrays 2023-05-17 11:47:39 +02:00
skx_common.c
skx_common.h
synopsys_edac.c EDAC/synopsys: Read the error count from the correct register 2022-04-27 13:53:54 +02:00
thunderx_edac.c EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 14:37:39 -08:00
ti_edac.c EDAC/ti: Add missing MODULE_DEVICE_TABLE 2021-07-14 16:55:57 +02:00
wq.c
x38_edac.c
xgene_edac.c EDAC/xgene: Fix deferred probing 2022-02-08 18:30:40 +01:00