From 05ab59dd08863f9f48004213c05b6febd4b76351 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 25 Oct 2024 16:00:39 +0000 Subject: [PATCH] build: Fix parsing dependencies Signed-off-by: Michael Tremer --- src/libpakfire/build.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/libpakfire/build.c b/src/libpakfire/build.c index 6da55d036..63e2c76cc 100644 --- a/src/libpakfire/build.c +++ b/src/libpakfire/build.c @@ -409,7 +409,7 @@ static int pakfire_build_process_deps(struct pakfire_ctx* ctx, void* data, // Copy the dependency to the stack (and remove the trailing newline) r = pakfire_string_format(dep, "%.*s", (int)length - 1, buffer); - if (r) + if (r < 0) return r; DEBUG(ctx, "Processing dependency: %s\n", dep); @@ -449,29 +449,31 @@ static int pakfire_build_process_deps(struct pakfire_ctx* ctx, void* data, r = pcre2_get_error_message(r, (PCRE2_UCHAR*)error, sizeof(error)); if (r < 0) { ERROR(ctx, "Could not fetch PCRE error message: %m\n"); - r = 1; + r = -errno; goto ERROR; } ERROR(ctx, "Could not match the filter: %s\n", error); - r = 1; + r = -errno; goto ERROR; // Match! } else { DEBUG(ctx, "Skipping dependency that has been filtered: %s\n", dep); - r = 0; - goto ERROR; + goto SKIP; } } // Add dependency - r = pakfire_package_add_dep(p->pkg, p->dep, buffer); - if (r) { - ERROR(ctx, "Could not process dependency '%s': %m\n", buffer); - return r; + r = pakfire_package_add_dep(p->pkg, p->dep, dep); + if (r < 0) { + ERROR(ctx, "Could not process dependency '%s': %s\n", dep, strerror(-r)); + goto ERROR; } + // We have consumed the entire buffer + r = length; + goto ERROR; SKIP: -- 2.39.5