From a31cc413b65abecb056a9732651151f3584c610b Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 4 Nov 2022 18:20:47 +0000 Subject: [PATCH] downloader: Fix digest computation Signed-off-by: Michael Tremer --- src/libpakfire/downloader.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/libpakfire/downloader.c b/src/libpakfire/downloader.c index d7c075182..23ce23b53 100644 --- a/src/libpakfire/downloader.c +++ b/src/libpakfire/downloader.c @@ -362,8 +362,10 @@ static struct pakfire_transfer* pakfire_downloader_create_transfer( } // Copy the expected digest - if (transfer->md && expected_digest) + if (transfer->md && expected_digest) { memcpy(transfer->expected_digest, expected_digest, expected_digest_length); + transfer->expected_digest_length = expected_digest_length; + } // Allocate handle transfer->handle = curl_easy_init(); @@ -621,11 +623,14 @@ static int pakfire_transfer_done(struct pakfire_downloader* downloader, char* expected_hexdigest = __pakfire_hexlify(transfer->expected_digest, transfer->expected_digest_length); - ERROR(downloader->pakfire, "Download checksum didn't match:\n Expected: %s\n Computed: %s\n", - expected_hexdigest, computed_hexdigest); + ERROR(downloader->pakfire, "Download checksum for %s didn't match:\n", transfer->url); + ERROR(downloader->pakfire, " Expected: %s\n", expected_hexdigest); + ERROR(downloader->pakfire, " Computed: %s\n", computed_hexdigest); - free(computed_hexdigest); - free(expected_hexdigest); + if (computed_hexdigest) + free(computed_hexdigest); + if (expected_hexdigest) + free(expected_hexdigest); // Make this download fail r = pakfire_transfer_fail(downloader, transfer, 0); -- 2.39.5