From: Jeff King Date: Mon, 5 May 2014 10:47:46 +0000 (+0200) Subject: curl_multi_cleanup: ignore SIGPIPE better X-Git-Tag: curl-7_37_0~77 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=37f484276d863347df2616ead1524bffc2257098;p=thirdparty%2Fcurl.git curl_multi_cleanup: ignore SIGPIPE better When looping and closing each individual connection left open, the SIGPIPE ignoring was not done and could thus lead to death by signal 13. Bug: http://thread.gmane.org/gmane.comp.version-control.git/238242 --- diff --git a/lib/multi.c b/lib/multi.c index 7720c957a9..c52db96258 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1806,10 +1806,13 @@ static void close_all_connections(struct Curl_multi *multi) conn = Curl_conncache_find_first_connection(multi->conn_cache); while(conn) { + SIGPIPE_VARIABLE(pipe_st); conn->data = multi->closure_handle; + sigpipe_ignore(conn->data, &pipe_st); /* This will remove the connection from the cache */ (void)Curl_disconnect(conn, FALSE); + sigpipe_restore(&pipe_st); conn = Curl_conncache_find_first_connection(multi->conn_cache); }