Skip to content

EDAC/thunderx: Fix possible out-of-bounds string access

JIRA: https://issues.redhat.com/browse/RHEL-26577
Tested: sanity
CVE: CVE-2023-52464

commit 475c58e1a471e9b873e3e39958c64a2d278275c8
Author: Arnd Bergmann arnd@arndb.de
Date: Wed Nov 22 23:19:53 2023 +0100

EDAC/thunderx: Fix possible out-of-bounds string access  

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: 41003396f932 ("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: Aristeu Rozanski arozansk@redhat.com

Merge request reports