From e1cfdd3202fbf0a7cb11b8c72ee7ba2cb934d76f Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Thu, 24 Oct 2024 16:28:28 -0400 Subject: Strip the version spec off of the package name if present --- src/lib/core/delivery_install.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/lib/core/delivery_install.c b/src/lib/core/delivery_install.c index 76c3f4a..098e6f4 100644 --- a/src/lib/core/delivery_install.c +++ b/src/lib/core/delivery_install.c @@ -3,9 +3,21 @@ static struct Test *requirement_from_test(struct Delivery *ctx, const char *name) { struct Test *result = NULL; for (size_t i = 0; i < sizeof(ctx->tests) / sizeof(ctx->tests[0]); i++) { - if (ctx->tests[i].name && !strcmp(name, ctx->tests[i].name)) { - result = &ctx->tests[i]; - break; + char *package_name = strdup(name); + if (package_name) { + char *spec = find_version_spec(package_name); + if (spec) { + *spec = '\0'; + } + + if (ctx->tests[i].name && !strcmp(package_name, ctx->tests[i].name)) { + result = &ctx->tests[i]; + break; + } + guard_free(package_name); + } else { + SYSERROR("unable to allocate memory for package name: %s", name); + return NULL; } } return result; -- cgit