aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-04-15 00:57:17 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-04-15 01:03:37 -0400
commit415b1bb7b25a9452ac8275cfdf9ae95ac4594a76 (patch)
treee16cc0e61c248526fd52c9b6df9b55091465f7ed
parentaccc7f12ff3b178f5d267dd4af7ffd21b6122248 (diff)
downloadstasis-415b1bb7b25a9452ac8275cfdf9ae95ac4594a76.tar.gz
Due to how configuration data is bootstrapped we must free the release_name and build_* variables, so they can be regenerated a second time.
-rw-r--r--src/deliverable.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/deliverable.c b/src/deliverable.c
index 34cf635..f3e031e 100644
--- a/src/deliverable.c
+++ b/src/deliverable.c
@@ -545,12 +545,17 @@ static int populate_delivery_ini(struct Delivery *ctx) {
// Delivery metadata consumed
populate_mission_ini(&ctx);
- if (!ctx->info.release_name) {
- if (delivery_format_str(ctx, &ctx->info.release_name, ctx->rules.release_fmt)) {
- fprintf(stderr, "Failed to generate release name. Format used: %s\n", ctx->rules.release_fmt);
- return -1;
- }
+ if (ctx->info.release_name) {
+ guard_free(ctx->info.release_name);
+ guard_free(ctx->info.build_name);
+ guard_free(ctx->info.build_number);
+ }
+
+ if (delivery_format_str(ctx, &ctx->info.release_name, ctx->rules.release_fmt)) {
+ fprintf(stderr, "Failed to generate release name. Format used: %s\n", ctx->rules.release_fmt);
+ return -1;
}
+
if (!ctx->info.build_name) {
delivery_format_str(ctx, &ctx->info.build_name, ctx->rules.build_name_fmt);
}