From 7e677f6465564e712cd43b29b830e917708fd734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Sun, 10 Jan 2021 18:15:12 +0100 Subject: [PATCH] Package Kit: Delete downloads failing the checksum check Change-Id: I3a7a914ea88e7b7b5bcc79160f46a9b4fcbba01b Reviewed-on: https://review.haiku-os.org/c/haiku/+/3619 Reviewed-by: Adrien Destugues --- src/kits/package/manager/PackageManager.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/kits/package/manager/PackageManager.cpp b/src/kits/package/manager/PackageManager.cpp index f3607b01ad..6b78ecc2cb 100644 --- a/src/kits/package/manager/PackageManager.cpp +++ b/src/kits/package/manager/PackageManager.cpp @@ -594,6 +594,11 @@ BPackageManager::_PreparePackageChanges( status_t error = DownloadPackage(url, entry, package->Info().Checksum()); if (error != B_OK) { + if (error == B_BAD_DATA) { + // B_BAD_DATA is returned when there is a checksum + // mismatch. Make sure this download is not re-used. + entry.Remove(); + } DIE(error, "Failed to download package %s", package->Info().Name().String()); }