From 5c24f7dd11a241f6414e3ee6f95f224382ec27ce Mon Sep 17 00:00:00 2001 From: morganamilo Date: Mon, 30 Nov 2020 18:21:26 +0000 Subject: libalpm: set ret in download files download_files never set ret on failiure, so even when downloading fails, the transaction goes on to commit and error out. :: Retrieving packages... python-packaging-20.4-4-any.pkg.tar.zst failed to download error: failed retrieving file 'python-packaging-20.4-4-any.pkg.tar.zst' from mirror.oldsql.cc : The requested URL returned error: 404 warning: failed to retrieve some files (1/1) checking keys in keyring (1/1) checking package integrity error: failed to commit transaction (wrong or NULL argument passed) Errors occurred, no packages were upgraded. Also make the ret checking more consistent. Signed-off-by: Allan McRae --- lib/libalpm/sync.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 601f1d69..5d8652a5 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -769,7 +769,7 @@ static int download_files(alpm_handle_t *handle) } ret = find_dl_candidates(handle, &files); - if(ret) { + if(ret != 0) { goto finish; } @@ -818,7 +818,9 @@ static int download_files(alpm_handle_t *handle) payloads = alpm_list_add(payloads, payload); } - if(_alpm_download(handle, payloads, cachedir) == -1) { + + ret = _alpm_download(handle, payloads, cachedir); + if(ret != 0) { event.type = ALPM_EVENT_PKG_RETRIEVE_FAILED; EVENT(handle, &event); _alpm_log(handle, ALPM_LOG_WARNING, _("failed to retrieve some files\n")); -- cgit v1.2.3-70-g09d2