summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorOlivier Brunel <jjk@jjacky.com>2018-10-17 17:11:01 +0200
committerAndrew Gregory <andrew@archlinux.org>2018-11-19 02:25:18 +0100
commitb39a62f57551a2e23ceaa37b3fbc71a2273545e6 (patch)
tree2ee5a276e9b93fc0bb5c2ae9c275f340e77e55d7 /lib
parentcad8fe2fbfc3a63554a2537ea7b5627a71453075 (diff)
downloadpacman-b39a62f57551a2e23ceaa37b3fbc71a2273545e6.tar.gz
pacman-b39a62f57551a2e23ceaa37b3fbc71a2273545e6.tar.xz
alpm: Fix SIGINT handling re: aborting download
Upon receiving SIGINT a flag is set to abort the (curl) download. However, since it was never reset/initialized, if a front-end doesn't actually exit on SIGINT, and later tries any operation that needs to perform a new download, said download would always get aborted right away due to the flag not having been reset. (cherry picked from commit ffde85aadfe0e08fb710102d0a547335e9d1a200)
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/dload.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index 00993910..36ae4ee1 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -431,6 +431,7 @@ static int curl_download_internal(struct dload_payload *payload,
/* Ignore any SIGPIPE signals. With libcurl, these shouldn't be happening,
* but better safe than sorry. Store the old signal handler first. */
mask_signal(SIGPIPE, SIG_IGN, &orig_sig_pipe);
+ dload_interrupted = 0;
mask_signal(SIGINT, &inthandler, &orig_sig_int);
/* perform transfer */