From: Roger Pau Monne Date: Mon, 28 Oct 2024 11:48:31 +0000 (+0100) Subject: tools/libxl: remove usage of VLA arrays X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=af98d03997d78aba243666cc144fa5137b3bf2f0;p=xen.git tools/libxl: remove usage of VLA arrays Clang 19 complains with the following error when building libxl: libxl_utils.c:48:15: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant] 48 | char path[strlen("/local/domain") + 12]; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ Replace the usage of strlen() with sizeof, which allows the literal string length to be known at build time. Note sizeof accounts for the NUL terminator while strlen() didn't, hence subtract 1 from the total size calculation. Signed-off-by: Roger Pau Monné Reviewed-by: Frediano Ziglio Acked-by: Andrew Cooper Acked-by: Anthony PERARD (cherry picked from commit a7c7c3f6424504c4004bbb3437be319aa41ad580) --- diff --git a/tools/libs/light/libxl_utils.c b/tools/libs/light/libxl_utils.c index 65ef196935..7fd9b177b3 100644 --- a/tools/libs/light/libxl_utils.c +++ b/tools/libs/light/libxl_utils.c @@ -45,7 +45,7 @@ unsigned long libxl_get_required_shadow_memory(unsigned long maxmem_kb, unsigned char *libxl_domid_to_name(libxl_ctx *ctx, uint32_t domid) { unsigned int len; - char path[strlen("/local/domain") + 12]; + char path[sizeof("/local/domain") + 11]; char *s; snprintf(path, sizeof(path), "/local/domain/%d/name", domid); @@ -141,7 +141,7 @@ int libxl_cpupool_qualifier_to_cpupoolid(libxl_ctx *ctx, const char *p, char *libxl_cpupoolid_to_name(libxl_ctx *ctx, uint32_t poolid) { unsigned int len; - char path[strlen("/local/pool") + 12]; + char path[sizeof("/local/pool") + 11]; char *s; snprintf(path, sizeof(path), "/local/pool/%d/name", poolid);