linux-stable/drivers/edac
Arnd Bergmann 9dbac9fdae 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 15:27:18 -08:00
..
Kconfig soc: sifive: ccache: Rename SiFive L2 cache to Composable cache. 2022-10-13 11:06:51 -07:00
Makefile EDAC/amd64: Merge error injection sysfs facilities 2020-12-28 19:36:25 +01:00
al_mc_edac.c EDAC/al_mc: Make use of the helper function devm_add_action_or_reset() 2021-09-28 18:35:11 +02:00
altera_edac.c Merge branch 'edac-amd64' into edac-updates-for-v5.18 2022-03-21 10:34:57 +01:00
altera_edac.h
amd64_edac.c x86/amd_nb: Unexport amd_cache_northbridges() 2022-04-05 19:22:27 +02:00
amd64_edac.h EDAC/amd64: Add new register offset support and related changes 2022-02-23 22:01:33 +01:00
amd76x_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
amd8111_edac.c
amd8111_edac.h
amd8131_edac.c EDAC/amd8131: Remove defined but not used bridge_str 2020-04-24 09:08:47 +02:00
amd8131_edac.h
armada_xp_edac.c EDAC/armada_xp: Use devm_platform_ioremap_resource() 2022-04-29 11:14:08 +02:00
aspeed_edac.c EDAC/aspeed: Use proper format string for printing resource 2021-05-18 16:33:13 +02:00
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-04-19 11:25:41 +02:00
e7xxx_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
e752x_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
edac_device.c EDAC/device: Respect any driver-supplied workqueue polling value 2023-02-01 08:34:40 +01:00
edac_device.h EDAC/device: Get rid of the silly one-shot memory allocation in edac_device_alloc_ctl_info() 2022-04-11 11:43:26 +02:00
edac_device_sysfs.c EDAC/device: Get rid of the silly one-shot memory allocation in edac_device_alloc_ctl_info() 2022-04-11 11:43:26 +02:00
edac_mc.c EDAC/mc: Drop duplicated dimm->nr_pages debug printout 2022-09-01 08:52:18 +02:00
edac_mc.h
edac_mc_sysfs.c EDAC/mc_sysfs: Increase legacy channel support to 12 2023-01-07 11:11:39 +01:00
edac_module.c
edac_module.h EDAC/device: Fix period calculation in edac_device_reset_delay_period() 2023-01-18 11:58:22 +01:00
edac_pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
edac_pci.h
edac_pci_sysfs.c EDAC: Use default_groups in kobj_type 2022-01-23 20:01:29 +01:00
fsl_ddr_edac.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
fsl_ddr_edac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
ghes_edac.c EDAC/ghes: Set the DIMM label unconditionally 2022-07-27 10:42:52 +02:00
highbank_l2_edac.c
highbank_mc_edac.c EDAC/highbank: Fix memory leak in highbank_mc_probe() 2023-02-01 08:34:05 +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() 2022-12-31 13:31:57 +01:00
i3000_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i3200_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i5000_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i5100_edac.c EDAC/i5100: Remove unused inline function i5100_nrecmema_dm_buf_id() 2022-05-17 17:44:50 +02:00
i5400_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i7300_edac.c EDAC/i7300: Correct the i7300_exit() function name in comment 2022-09-23 23:07:17 +02:00
i82443bxgx_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i82860_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i82875p_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
i82975x_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
ie31200_edac.c EDAC/ie31200: Add Skylake-S support 2022-08-25 10:28:01 +02:00
igen6_edac.c EDAC/igen6: Fix the issue of no error events 2023-09-13 09:42:45 +02:00
layerscape_edac.c
mce_amd.c x86/MCE/AMD, EDAC/mce_amd: Support non-uniform MCA bank type enumeration 2021-12-22 17:22:09 +01:00
mce_amd.h x86/mce/amd, edac: Remove report_gart_errors 2020-04-14 15:53:46 +02:00
mpc85xx_edac.c EDAC/mpc85xx: Include required of headers directly 2022-07-28 16:22:12 +10:00
mpc85xx_edac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
octeon_edac-l2c.c
octeon_edac-lmc.c
octeon_edac-pc.c
octeon_edac-pci.c
pasemi_edac.c
pnd2_edac.c EDAC, pnd2: convert to use common P2SB accessor 2022-07-14 10:50:36 +01:00
pnd2_edac.h
ppc4xx_edac.c EDAC/ppc_4xx: Reorder symbols to get rid of a few forward declarations 2022-09-18 19:35:22 +02:00
ppc4xx_edac.h
qcom_edac.c EDAC/qcom: Get rid of hardcoded register offsets 2023-06-21 16:00:51 +02:00
r82600_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
sb_edac.c x86/sb_edac: Add row column translation for Broadwell 2022-09-23 12:34:23 -07:00
sifive_edac.c soc: sifive: ccache: Rename SiFive L2 cache to Composable cache. 2022-10-13 11:06:51 -07:00
skx_base.c EDAC/skx: Fix overflows on the DRAM row address mapping arrays 2023-05-11 23:03:08 +09:00
skx_common.c EDAC/skx_common: Add ChipSelect ADXL component 2022-09-23 12:33:08 -07:00
skx_common.h EDAC/i10nm: Print an extra register set of retry_rd_err_log 2022-09-23 12:33:27 -07:00
synopsys_edac.c EDAC/synopsys: Re-enable the error interrupts on v3 hw 2022-07-22 14:31:38 +02:00
thunderx_edac.c EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 15:27:18 -08:00
ti_edac.c EDAC/ti: Remove redundant error messages 2021-10-07 19:16:01 +02:00
wq.c EDAC/wq: Remove unneeded flush_workqueue() 2022-08-25 10:50:35 +02:00
x38_edac.c EDAC: Do not issue useless debug statements in the polling routine 2020-10-26 12:59:56 +01:00
xgene_edac.c EDAC/xgene: Fix typo processsors -> processors 2022-05-21 16:03:49 +02:00