diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c index c06f2fac7e..19d6a37197 100644 --- a/src/basic/fd-util.c +++ b/src/basic/fd-util.c @@ -70,7 +70,7 @@ int safe_close(int fd) { return -1; } -void safe_close_pair(int p[]) { +void safe_close_pair(int p[static 2]) { assert(p); if (p[0] == p[1]) { diff --git a/src/basic/fd-util.h b/src/basic/fd-util.h index 00303a7e45..4085a244d2 100644 --- a/src/basic/fd-util.h +++ b/src/basic/fd-util.h @@ -14,7 +14,7 @@ int close_nointr(int fd); int safe_close(int fd); -void safe_close_pair(int p[]); +void safe_close_pair(int p[static 2]); static inline int safe_close_above_stdio(int fd) { if (fd < 3) /* Don't close stdin/stdout/stderr, but still invalidate the fd by returning -1 */ diff --git a/src/basic/siphash24.c b/src/basic/siphash24.c index 30c228a78a..bf365b505d 100644 --- a/src/basic/siphash24.c +++ b/src/basic/siphash24.c @@ -48,7 +48,7 @@ static inline void sipround(struct siphash *state) { state->v2 = rotate_left(state->v2, 32); } -void siphash24_init(struct siphash *state, const uint8_t k[16]) { +void siphash24_init(struct siphash *state, const uint8_t k[static 16]) { uint64_t k0, k1; assert(state); @@ -187,7 +187,7 @@ uint64_t siphash24_finalize(struct siphash *state) { return state->v0 ^ state->v1 ^ state->v2 ^ state->v3; } -uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[16]) { +uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[static 16]) { struct siphash state; assert(in); diff --git a/src/basic/siphash24.h b/src/basic/siphash24.h index 70a4a03f6a..67c4f7560c 100644 --- a/src/basic/siphash24.h +++ b/src/basic/siphash24.h @@ -15,14 +15,14 @@ struct siphash { size_t inlen; }; -void siphash24_init(struct siphash *state, const uint8_t k[16]); +void siphash24_init(struct siphash *state, const uint8_t k[static 16]); void siphash24_compress(const void *in, size_t inlen, struct siphash *state); #define siphash24_compress_byte(byte, state) siphash24_compress((const uint8_t[]) { (byte) }, 1, (state)) uint64_t siphash24_finalize(struct siphash *state); -uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[16]); +uint64_t siphash24(const void *in, size_t inlen, const uint8_t k[static 16]); -static inline uint64_t siphash24_string(const char *s, const uint8_t k[16]) { +static inline uint64_t siphash24_string(const char *s, const uint8_t k[static 16]) { return siphash24(s, strlen(s) + 1, k); } diff --git a/src/basic/string-util.c b/src/basic/string-util.c index 05469ac01f..93917bc0f0 100644 --- a/src/basic/string-util.c +++ b/src/basic/string-util.c @@ -742,7 +742,7 @@ char *strreplace(const char *text, const char *old_string, const char *new_strin return ret; } -static void advance_offsets(ssize_t diff, size_t offsets[2], size_t shift[2], size_t size) { +static void advance_offsets(ssize_t diff, size_t offsets[static 2], size_t shift[static 2], size_t size) { if (!offsets) return; diff --git a/src/boot/efi/disk.c b/src/boot/efi/disk.c index a31b7bb478..49ee81b4d7 100644 --- a/src/boot/efi/disk.c +++ b/src/boot/efi/disk.c @@ -5,7 +5,7 @@ #include "util.h" -EFI_STATUS disk_get_part_uuid(EFI_HANDLE *handle, CHAR16 uuid[37]) { +EFI_STATUS disk_get_part_uuid(EFI_HANDLE *handle, CHAR16 uuid[static 37]) { EFI_DEVICE_PATH *device_path; /* export the device path this image is started from */ diff --git a/src/boot/efi/disk.h b/src/boot/efi/disk.h index 2a0b8ff2a7..41c4cce434 100644 --- a/src/boot/efi/disk.h +++ b/src/boot/efi/disk.h @@ -1,4 +1,4 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ #pragma once -EFI_STATUS disk_get_part_uuid(EFI_HANDLE *handle, CHAR16 uuid[37]); +EFI_STATUS disk_get_part_uuid(EFI_HANDLE *handle, CHAR16 uuid[static 37]); diff --git a/src/core/dynamic-user.c b/src/core/dynamic-user.c index 089461a18a..530df70b80 100644 --- a/src/core/dynamic-user.c +++ b/src/core/dynamic-user.c @@ -35,7 +35,7 @@ static DynamicUser* dynamic_user_free(DynamicUser *d) { return mfree(d); } -static int dynamic_user_add(Manager *m, const char *name, int storage_socket[2], DynamicUser **ret) { +static int dynamic_user_add(Manager *m, const char *name, int storage_socket[static 2], DynamicUser **ret) { DynamicUser *d; int r; diff --git a/src/core/execute.c b/src/core/execute.c index 976f081e1f..61861f9416 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -1595,7 +1595,7 @@ static int apply_lock_personality(const Unit* u, const ExecContext *c) { #endif -static void do_idle_pipe_dance(int idle_pipe[4]) { +static void do_idle_pipe_dance(int idle_pipe[static 4]) { assert(idle_pipe); idle_pipe[1] = safe_close(idle_pipe[1]); @@ -2618,7 +2618,7 @@ out: return r; } -static void append_socket_pair(int *array, size_t *n, const int pair[2]) { +static void append_socket_pair(int *array, size_t *n, const int pair[static 2]) { assert(array); assert(n); @@ -3942,7 +3942,7 @@ const char* exec_context_fdname(const ExecContext *c, int fd_index) { } } -static int exec_context_named_iofds(const ExecContext *c, const ExecParameters *p, int named_iofds[3]) { +static int exec_context_named_iofds(const ExecContext *c, const ExecParameters *p, int named_iofds[static 3]) { size_t i, targets; const char* stdio_fdname[3]; size_t n_fds; diff --git a/src/core/namespace.c b/src/core/namespace.c index c2ca3e0334..7f553a42c2 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -1628,7 +1628,7 @@ int setup_tmp_dirs(const char *id, char **tmp_dir, char **var_tmp_dir) { return 0; } -int setup_netns(int netns_storage_socket[2]) { +int setup_netns(int netns_storage_socket[static 2]) { _cleanup_close_ int netns = -1; int r, q; diff --git a/src/core/namespace.h b/src/core/namespace.h index 1188c6d595..5e0ec97969 100644 --- a/src/core/namespace.h +++ b/src/core/namespace.h @@ -91,7 +91,7 @@ int setup_tmp_dirs( char **tmp_dir, char **var_tmp_dir); -int setup_netns(int netns_storage_socket[2]); +int setup_netns(int netns_storage_socket[static 2]); const char* protect_home_to_string(ProtectHome p) _const_; ProtectHome protect_home_from_string(const char *s) _pure_; diff --git a/src/libsystemd-network/lldp-neighbor.c b/src/libsystemd-network/lldp-neighbor.c index 43fc8e03c0..f6db62594d 100644 --- a/src/libsystemd-network/lldp-neighbor.c +++ b/src/libsystemd-network/lldp-neighbor.c @@ -691,7 +691,7 @@ _public_ int sd_lldp_neighbor_tlv_is_type(sd_lldp_neighbor *n, uint8_t type) { return type == k; } -_public_ int sd_lldp_neighbor_tlv_get_oui(sd_lldp_neighbor *n, uint8_t oui[3], uint8_t *subtype) { +_public_ int sd_lldp_neighbor_tlv_get_oui(sd_lldp_neighbor *n, uint8_t oui[_SD_ARRAY_STATIC 3], uint8_t *subtype) { const uint8_t *d; size_t length; int r; @@ -720,7 +720,7 @@ _public_ int sd_lldp_neighbor_tlv_get_oui(sd_lldp_neighbor *n, uint8_t oui[3], u return 0; } -_public_ int sd_lldp_neighbor_tlv_is_oui(sd_lldp_neighbor *n, const uint8_t oui[3], uint8_t subtype) { +_public_ int sd_lldp_neighbor_tlv_is_oui(sd_lldp_neighbor *n, const uint8_t oui[_SD_ARRAY_STATIC 3], uint8_t subtype) { uint8_t k[3], st; int r; diff --git a/src/libsystemd/sd-id128/sd-id128.c b/src/libsystemd/sd-id128/sd-id128.c index 3593a71c02..e72af1593c 100644 --- a/src/libsystemd/sd-id128/sd-id128.c +++ b/src/libsystemd/sd-id128/sd-id128.c @@ -18,7 +18,7 @@ #include "user-util.h" #include "util.h" -_public_ char *sd_id128_to_string(sd_id128_t id, char s[SD_ID128_STRING_MAX]) { +_public_ char *sd_id128_to_string(sd_id128_t id, char s[_SD_ARRAY_STATIC SD_ID128_STRING_MAX]) { unsigned n; assert_return(s, NULL); diff --git a/src/shared/efivars.c b/src/shared/efivars.c index cb9e13c15f..23d38fb484 100644 --- a/src/shared/efivars.c +++ b/src/shared/efivars.c @@ -630,7 +630,7 @@ int efi_set_boot_order(uint16_t *order, size_t n) { return efi_set_variable(EFI_VENDOR_GLOBAL, "BootOrder", order, n * sizeof(uint16_t)); } -static int boot_id_hex(const char s[4]) { +static int boot_id_hex(const char s[static 4]) { int id = 0, i; for (i = 0; i < 4; i++) diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c index f882a665a8..bac5c164d4 100644 --- a/src/socket-proxy/socket-proxyd.c +++ b/src/socket-proxy/socket-proxyd.c @@ -86,7 +86,7 @@ static void context_clear(Context *context) { sd_resolve_unref(context->resolve); } -static int connection_create_pipes(Connection *c, int buffer[2], size_t *sz) { +static int connection_create_pipes(Connection *c, int buffer[static 2], size_t *sz) { int r; assert(c); diff --git a/src/systemd/_sd-common.h b/src/systemd/_sd-common.h index 05c38008cf..b3ee7bbc24 100644 --- a/src/systemd/_sd-common.h +++ b/src/systemd/_sd-common.h @@ -72,6 +72,14 @@ typedef void (*_sd_destroy_t)(void *userdata); # endif #endif +#ifndef _SD_ARRAY_STATIC +# if __STDC_VERSION__ >= 199901L +# define _SD_ARRAY_STATIC static +# else +# define _SD_ARRAY_STATIC +# endif +#endif + #define _SD_DEFINE_POINTER_CLEANUP_FUNC(type, func) \ static __inline__ void func##p(type **p) { \ if (*p) \ diff --git a/src/systemd/sd-id128.h b/src/systemd/sd-id128.h index f4c05a3683..bdf88ed53f 100644 --- a/src/systemd/sd-id128.h +++ b/src/systemd/sd-id128.h @@ -35,7 +35,7 @@ union sd_id128 { #define SD_ID128_STRING_MAX 33 -char *sd_id128_to_string(sd_id128_t id, char s[SD_ID128_STRING_MAX]); +char *sd_id128_to_string(sd_id128_t id, char s[_SD_ARRAY_STATIC SD_ID128_STRING_MAX]); int sd_id128_from_string(const char *s, sd_id128_t *ret); int sd_id128_randomize(sd_id128_t *ret); diff --git a/src/systemd/sd-lldp.h b/src/systemd/sd-lldp.h index a3e5cd6be6..9912f3a22c 100644 --- a/src/systemd/sd-lldp.h +++ b/src/systemd/sd-lldp.h @@ -168,8 +168,8 @@ int sd_lldp_neighbor_tlv_rewind(sd_lldp_neighbor *n); int sd_lldp_neighbor_tlv_next(sd_lldp_neighbor *n); int sd_lldp_neighbor_tlv_get_type(sd_lldp_neighbor *n, uint8_t *type); int sd_lldp_neighbor_tlv_is_type(sd_lldp_neighbor *n, uint8_t type); -int sd_lldp_neighbor_tlv_get_oui(sd_lldp_neighbor *n, uint8_t oui[3], uint8_t *subtype); -int sd_lldp_neighbor_tlv_is_oui(sd_lldp_neighbor *n, const uint8_t oui[3], uint8_t subtype); +int sd_lldp_neighbor_tlv_get_oui(sd_lldp_neighbor *n, uint8_t oui[_SD_ARRAY_STATIC 3], uint8_t *subtype); +int sd_lldp_neighbor_tlv_is_oui(sd_lldp_neighbor *n, const uint8_t oui[_SD_ARRAY_STATIC 3], uint8_t subtype); int sd_lldp_neighbor_tlv_get_raw(sd_lldp_neighbor *n, const void **ret, size_t *size); _SD_DEFINE_POINTER_CLEANUP_FUNC(sd_lldp, sd_lldp_unref);