First published: Fri Feb 23 2024(Updated: )
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. ]
Credit: 416baaa9-dc9f-4396-8d5f-8c081fb06d67 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Software | Affected Version | How to fix |
---|---|---|
Linux Linux kernel | >=4.12.0<4.19.306 | |
Linux Linux kernel | >=4.20.0<5.4.268 | |
Linux Linux kernel | >=5.5.0<5.10.209 | |
Linux Linux kernel | >=5.11.0<5.15.148 | |
Linux Linux kernel | >=5.16.0<6.1.75 | |
Linux Linux kernel | >=6.2.0<6.6.14 | |
Linux Linux kernel | >=6.7.0<6.7.2 | |
redhat/kernel | <6.8 | 6.8 |
debian/linux | 5.10.223-1 5.10.226-1 6.1.115-1 6.1.119-1 6.11.10-1 | |
>=4.12.0<4.19.306 | ||
>=4.20.0<5.4.268 | ||
>=5.5.0<5.10.209 | ||
>=5.11.0<5.15.148 | ||
>=5.16.0<6.1.75 | ||
>=6.2.0<6.6.14 | ||
>=6.7.0<6.7.2 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.