aboutsummaryrefslogtreecommitdiff
path: root/src/lib/delivery/delivery.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2026-04-29 12:42:46 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2026-05-11 15:50:47 -0400
commitd9ce0e78895e5dfa1e57aca76bb93b4b76dc6e74 (patch)
treeff0a97dd7d28522615271b6283c35982b1944534 /src/lib/delivery/delivery.c
parent081da8afbfbd808acecc1d3e54f89b90c625ee77 (diff)
downloadstasis-d9ce0e78895e5dfa1e57aca76bb93b4b76dc6e74.tar.gz
delivery_duplicate: handle platform allocation error
Diffstat (limited to 'src/lib/delivery/delivery.c')
-rw-r--r--src/lib/delivery/delivery.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/delivery/delivery.c b/src/lib/delivery/delivery.c
index 89074c8..cbc5898 100644
--- a/src/lib/delivery/delivery.c
+++ b/src/lib/delivery/delivery.c
@@ -1,7 +1,7 @@
#include "delivery.h"
#include "conda.h"
-struct Delivery *delivery_duplicate(const struct Delivery *ctx) {
+struct Delivery *delivery_duplicate(struct Delivery *ctx) {
struct Delivery *result = calloc(1, sizeof(*result));
if (!result) {
return NULL;
@@ -106,6 +106,12 @@ struct Delivery *delivery_duplicate(const struct Delivery *ctx) {
}
for (size_t i = 0; i < DELIVERY_PLATFORM_MAX; i++) {
result->system.platform[i] = strdup_maybe(ctx->system.platform[i]);
+ if (!result->system.platform[i]) {
+ SYSERROR("%s", "unable to allocate record in system platform array");
+ guard_array_n_free(result->system.platform, DELIVERY_PLATFORM_MAX);
+ delivery_free(ctx);
+ return NULL;
+ }
}
}