From dbcb4a900ef7e9673604caabc1e1842309b7fd73 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 13 Dec 2017 08:41:11 +0100 Subject: [PATCH] tree-wide: use STRLEN() to allocate buffer of constant size Using strlen() to declare a buffer results in a variable-length array, even if the compiler likely optimizes it to be a compile time constant. When building with -Wvla, certain versions of gcc complain about such buffers. Compiling with -Wvla has the advantage of preventing variably length array, which defeat static asserts that are implemented by declaring an array of negative length. --- src/basic/fd-util.c | 2 +- src/libsystemd-network/sd-dhcp-lease.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c index f3863722ee..a0820a9667 100644 --- a/src/basic/fd-util.c +++ b/src/basic/fd-util.c @@ -368,7 +368,7 @@ bool fdname_is_valid(const char *s) { } int fd_get_path(int fd, char **ret) { - char procfs_path[strlen("/proc/self/fd/") + DECIMAL_STR_MAX(int)]; + char procfs_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int)]; int r; xsprintf(procfs_path, "/proc/self/fd/%i", fd); diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c index 7063bd986e..a186bca38f 100644 --- a/src/libsystemd-network/sd-dhcp-lease.c +++ b/src/libsystemd-network/sd-dhcp-lease.c @@ -987,7 +987,7 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) { } LIST_FOREACH(options, option, lease->private_options) { - char key[strlen("OPTION_000")+1]; + char key[STRLEN("OPTION_000")+1]; xsprintf(key, "OPTION_%" PRIu8, option->tag); r = serialize_dhcp_option(f, key, option->data, option->length);