From 45c4eef61de33bcdf3efcc2e97dc5eefb29e97b4 Mon Sep 17 00:00:00 2001 From: morganamilo Date: Fri, 23 May 2025 20:03:14 +0100 Subject: [PATCH] libalpm: move tempdir cleanup into _alpm_download this ensures the dir still gets cleaned up even if killed by a signal --- lib/libalpm/be_sync.c | 1 - lib/libalpm/dload.c | 3 +-- lib/libalpm/sync.c | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index 240f07be..648a8bd6 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -268,7 +268,6 @@ cleanup: alpm_list_free_inner(payloads, (alpm_list_fn_free)_alpm_dload_payload_reset); FREELIST(payloads); } - _alpm_remove_temporary_download_dir(temporary_syncpath); FREE(temporary_syncpath); FREE(syncpath); umask(oldmask); diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c index eb8b6cb5..9a70810a 100644 --- a/lib/libalpm/dload.c +++ b/lib/libalpm/dload.c @@ -1283,6 +1283,7 @@ download_signature: } finalize_ret = finalize_download_locations(payloads, localpath); + _alpm_remove_temporary_download_dir(temporary_localpath); /* propagate after finalizing so .part files get copied over */ if(childsig != 0) { @@ -1416,13 +1417,11 @@ int SYMEXPORT alpm_fetch_pkgurl(alpm_handle_t *handle, const alpm_list_t *urls, FREELIST(payloads); } - _alpm_remove_temporary_download_dir(temporary_cachedir); FREE(temporary_cachedir); return 0; err: alpm_list_free_inner(payloads, (alpm_list_fn_free)_alpm_dload_payload_reset); - _alpm_remove_temporary_download_dir(temporary_cachedir); FREE(temporary_cachedir); FREELIST(payloads); FREELIST(*fetched); diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 13cf1cef..087c48de 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -882,7 +882,6 @@ finish: pkg->infolevel &= ~INFRQ_DSIZE; pkg->download_size = 0; } - _alpm_remove_temporary_download_dir(temporary_cachedir); FREE(temporary_cachedir); return ret;