From 37f484276d863347df2616ead1524bffc2257098 Mon Sep 17 00:00:00 2001
From: Jeff King <peff@peff.net>
Date: Mon, 5 May 2014 12:47:46 +0200
Subject: [PATCH] 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
---
 lib/multi.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/multi.c b/lib/multi.c
index 7720c957a..c52db9625 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);
   }
-- 
2.40.0