From a10728dc5b30f279cfbb476d31008edfdf6b5a18 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Mon, 20 Jan 2025 10:06:52 +0000 Subject: [PATCH] util: avoid overflow in hextable buffer MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The assigned string is 17 chars long once the trailing nul is taken into account. This triggers a warning with GCC 15 src/util/virsystemd.c: In function ‘virSystemdEscapeName’: src/util/virsystemd.c:59:38: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization] 59 | static const char hextable[16] = "0123456789abcdef"; | ^~~~~~~~~~~~~~~~~~ Switch to a dynamically sized array as used in all the other places we have a hextable array. See also: https://gcc.gnu.org/PR115185 Reported-by: Yaakov Selkowitz Signed-off-by: Daniel P. Berrangé --- src/util/virsystemd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/virsystemd.c b/src/util/virsystemd.c index 5b772e29dd..d46e5f74fc 100644 --- a/src/util/virsystemd.c +++ b/src/util/virsystemd.c @@ -56,7 +56,7 @@ struct _virSystemdActivationEntry { static void virSystemdEscapeName(virBuffer *buf, const char *name) { - static const char hextable[16] = "0123456789abcdef"; + static const char hextable[] = "0123456789abcdef"; #define ESCAPE(c) \ do { \ -- 2.47.2