xen/mcelog: Add __nonstring annotations for unterminated strings

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Kees Cook 2025-03-10 15:22:38 -07:00 committed by Greg Kroah-Hartman
parent 150d1cbdf7
commit af71db7de0

View File

@ -372,7 +372,7 @@ struct xen_mce {
#define XEN_MCE_LOG_LEN 32 #define XEN_MCE_LOG_LEN 32
struct xen_mce_log { struct xen_mce_log {
char signature[12]; /* "MACHINECHECK" */ char signature[12] __nonstring; /* "MACHINECHECK" */
unsigned len; /* = XEN_MCE_LOG_LEN */ unsigned len; /* = XEN_MCE_LOG_LEN */
unsigned next; unsigned next;
unsigned flags; unsigned flags;