aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-03-22 17:19:18 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-03-22 22:20:28 -0400
commit604a536247797016f2c77ea8e9c8cd76512b739c (patch)
treee66b0a478e9c3fc1afcb126a852e76a11ab2e0b9
parentc2fb23b6b47186e47d983591e47ae4bc153ea4e3 (diff)
downloadstasis-604a536247797016f2c77ea8e9c8cd76512b739c.tar.gz
Dynamically allocate Delivery.system.platform array.
* This avoids compiler warnings about passing the address to a stack-allocated chunk of member in tpl_register.
-rw-r--r--include/deliverable.h2
-rw-r--r--src/deliverable.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/include/deliverable.h b/include/deliverable.h
index fda3c94..5b80930 100644
--- a/include/deliverable.h
+++ b/include/deliverable.h
@@ -40,7 +40,7 @@ struct Delivery {
struct System {
char *arch;
///< System CPU architecture ident
- char platform[DELIVERY_PLATFORM_MAX][DELIVERY_PLATFORM_MAXLEN];
+ char **platform;
///< System platform name
} system;
/*! \struct Storage
diff --git a/src/deliverable.c b/src/deliverable.c
index 6b70912..28c8abc 100644
--- a/src/deliverable.c
+++ b/src/deliverable.c
@@ -268,6 +268,11 @@ int delivery_init_platform(struct Delivery *ctx) {
return -1;
}
+ ctx->system.platform = calloc(DELIVERY_PLATFORM_MAX, sizeof(*ctx->system.platform));
+ for (size_t i = 0; i < DELIVERY_PLATFORM_MAX; i++) {
+ ctx->system.platform[i] = calloc(DELIVERY_PLATFORM_MAXLEN, sizeof(*ctx->system.platform[0]));
+ }
+
ctx->system.arch = strdup(uts.machine);
if (!ctx->system.arch) {
// memory error