From fdd84270df0062fad68783eea8b51a6ed87b67cd Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Tue, 16 Jan 2024 22:42:39 +0100 Subject: [PATCH] Reorder arguments for calloc()-like functions, part #2 To appease gcc-14's -Wcalloc-transposed-args check. Follow-up for 2a9ab0974bb290bc66dc84d909c33d23361b0752. --- src/basic/alloc-util.h | 4 ++-- src/boot/efi/util.h | 4 ++-- src/nspawn/nspawn-bind-user.c | 2 +- src/test/test-alloc-util.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/basic/alloc-util.h b/src/basic/alloc-util.h index 05a6f211f7f..136d2b3e687 100644 --- a/src/basic/alloc-util.h +++ b/src/basic/alloc-util.h @@ -47,7 +47,7 @@ typedef void* (*mfree_func_t)(void *p); #define newdup(t, p, n) ((t*) memdup_multiply(p, (n), sizeof(t))) -#define newdup_suffix0(t, p, n) ((t*) memdup_suffix0_multiply(p, sizeof(t), (n))) +#define newdup_suffix0(t, p, n) ((t*) memdup_suffix0_multiply(p, (n), sizeof(t))) #define malloc0(n) (calloc(1, (n) ?: 1)) @@ -137,7 +137,7 @@ _alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t need, si /* Note that we can't decorate this function with _alloc_() since the returned memory area is one byte larger * than the product of its parameters. */ -static inline void *memdup_suffix0_multiply(const void *p, size_t size, size_t need) { +static inline void *memdup_suffix0_multiply(const void *p, size_t need, size_t size) { if (size_multiply_overflow(size, need)) return NULL; diff --git a/src/boot/efi/util.h b/src/boot/efi/util.h index aef831d1327..6e15a8b85dc 100644 --- a/src/boot/efi/util.h +++ b/src/boot/efi/util.h @@ -36,7 +36,7 @@ static inline void *xmalloc(size_t size) { } _malloc_ _alloc_(1, 2) _returns_nonnull_ _warn_unused_result_ -static inline void *xmalloc_multiply(size_t size, size_t n) { +static inline void *xmalloc_multiply(size_t n, size_t size) { assert_se(!__builtin_mul_overflow(size, n, &size)); return xmalloc(size); } @@ -57,7 +57,7 @@ static inline void* xmemdup(const void *p, size_t l) { return memcpy(xmalloc(l), p, l); } -#define xnew(type, n) ((type *) xmalloc_multiply(sizeof(type), (n))) +#define xnew(type, n) ((type *) xmalloc_multiply((n), sizeof(type))) typedef struct { EFI_PHYSICAL_ADDRESS addr; diff --git a/src/nspawn/nspawn-bind-user.c b/src/nspawn/nspawn-bind-user.c index c7e1a9253c5..018e7a37e23 100644 --- a/src/nspawn/nspawn-bind-user.c +++ b/src/nspawn/nspawn-bind-user.c @@ -286,7 +286,7 @@ int bind_user_prepare( if (!sd) return log_oom(); - cm = reallocarray(*custom_mounts, sizeof(CustomMount), *n_custom_mounts + 1); + cm = reallocarray(*custom_mounts, *n_custom_mounts + 1, sizeof(CustomMount)); if (!cm) return log_oom(); diff --git a/src/test/test-alloc-util.c b/src/test/test-alloc-util.c index 57cb886c411..24cb5f73eb7 100644 --- a/src/test/test-alloc-util.c +++ b/src/test/test-alloc-util.c @@ -100,7 +100,7 @@ TEST(memdup_multiply_and_greedy_realloc) { size_t i; int *p; - dup = memdup_suffix0_multiply(org, sizeof(int), 3); + dup = memdup_suffix0_multiply(org, 3, sizeof(int)); assert_se(dup); assert_se(dup[0] == 1); assert_se(dup[1] == 2); @@ -108,7 +108,7 @@ TEST(memdup_multiply_and_greedy_realloc) { assert_se(((uint8_t*) dup)[sizeof(int) * 3] == 0); free(dup); - dup = memdup_multiply(org, sizeof(int), 3); + dup = memdup_multiply(org, 3, sizeof(int)); assert_se(dup); assert_se(dup[0] == 1); assert_se(dup[1] == 2);