From 14c0e53eed4bd0c090e7ed2ebad41335d323c86c Mon Sep 17 00:00:00 2001 From: Anatol Pomozov Date: Mon, 13 Jul 2020 09:35:34 -0700 Subject: Check that destfile_name exists before using it In some cases (when trust_remote_name is used for a URL without a filename and no Content-Disposition is provided by the server) destfile_name will be NULL. In this case payload data will be stored in tempfile_name and no destfile_name is set. Signed-off-by: Anatol Pomozov Signed-off-by: Allan McRae --- lib/libalpm/dload.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c index 343f5c78..673e769f 100644 --- a/lib/libalpm/dload.c +++ b/lib/libalpm/dload.c @@ -897,15 +897,18 @@ int SYMEXPORT alpm_fetch_pkgurl(alpm_handle_t *handle, const alpm_list_t *urls, for(i = payloads; i; i = i->next) { struct dload_payload *payload = i->data; - const char *filename; char *filepath; if(payload->signature) { continue; } - filename = mbasename(payload->destfile_name); - filepath = _alpm_filecache_find(handle, filename); + if(payload->destfile_name) { + const char *filename = mbasename(payload->destfile_name); + filepath = _alpm_filecache_find(handle, filename); + } else { + STRDUP(filepath, payload->tempfile_name, GOTO_ERR(handle, ALPM_ERR_MEMORY, err)); + } if(filepath) { alpm_list_append(fetched, filepath); } else { -- cgit v1.2.3-24-g4f1b