From: Daniel P. Berrangé Date: Mon, 20 Jan 2025 10:06:52 +0000 (+0000) Subject: util: avoid overflow in hextable buffer X-Git-Tag: v11.1.0-rc1~205 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a10728dc5b30f279cfbb476d31008edfdf6b5a18;p=thirdparty%2Flibvirt.git util: avoid overflow in hextable buffer 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é --- 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 { \