}
// 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();
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);