diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-03-06 14:43:19 -0500 |
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-03-06 14:43:19 -0500 |
| commit | 6b691c8fd1c76207470c69bfd672e5aa5260e4c2 (patch) | |
| tree | 66f869865fd1bf12d8fb5b401dad33d91eef7b4e /src | |
| parent | ce5f644a0e591b056d0a75ba18728f7b989ad3f7 (diff) | |
| download | stasis-6b691c8fd1c76207470c69bfd672e5aa5260e4c2.tar.gz | |
Fix segfault if repository_info_tag was NULL
* Tag is version otherwise
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/delivery/delivery_build.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/delivery/delivery_build.c b/src/lib/delivery/delivery_build.c index f2e6850..86555bd 100644 --- a/src/lib/delivery/delivery_build.c +++ b/src/lib/delivery/delivery_build.c @@ -26,8 +26,8 @@ int delivery_build_recipes(struct Delivery *ctx) { char recipe_git_rev[PATH_MAX]; char tag[100]; - const int is_long_tag = num_chars(ctx->tests[i].repository_info_tag, '-') > 1; if (ctx->tests[i].repository_info_tag) { + const int is_long_tag = num_chars(ctx->tests[i].repository_info_tag, '-') > 1; if (is_long_tag) { const size_t len = strcspn(ctx->tests[i].repository_info_tag, "-"); strncpy(tag, ctx->tests[i].repository_info_tag, len); @@ -36,13 +36,15 @@ int delivery_build_recipes(struct Delivery *ctx) { strcpy(tag, ctx->tests[i].repository_info_tag); tag[strlen(ctx->tests[i].repository_info_tag)] = '\0'; } - } + } else { + strcpy(tag, ctx->tests[i].version); + } //sprintf(recipe_version, "{%% set version = GIT_DESCRIBE_TAG ~ \".dev\" ~ GIT_DESCRIBE_NUMBER ~ \"+\" ~ GIT_DESCRIBE_HASH %%}"); //sprintf(recipe_git_url, " git_url: %s", ctx->tests[i].repository); //sprintf(recipe_git_rev, " git_rev: %s", ctx->tests[i].version); // TODO: Conditionally download archives if github.com is the origin. Else, use raw git_* keys ^^^ - sprintf(recipe_version, "{%% set version = \"%s\" %%}", strlen(tag) ? tag : ctx->tests[i].version); + sprintf(recipe_version, "{%% set version = \"%s\" %%}", tag); sprintf(recipe_git_url, " url: %s/archive/refs/tags/{{ version }}.tar.gz", ctx->tests[i].repository); strcpy(recipe_git_rev, ""); sprintf(recipe_buildno, " number: 0"); |
