From 590edc3b22bdac4d6c7ba39dcff53c354580a4ab Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Tue, 12 Mar 2013 11:35:18 +0100 Subject: [PATCH] do not ignore poll() failures other than EINTR (#919127) --- ...8.patch => 0002-curl-7.29.0-9d0af301.patch | 0 0003-curl-7.29.0-491e026c.patch | 39 +++++++++++++++++++ curl.spec | 11 +++++- 3 files changed, 48 insertions(+), 2 deletions(-) rename 0002-curl-7.29.0-9d0af3018.patch => 0002-curl-7.29.0-9d0af301.patch (100%) create mode 100644 0003-curl-7.29.0-491e026c.patch diff --git a/0002-curl-7.29.0-9d0af3018.patch b/0002-curl-7.29.0-9d0af301.patch similarity index 100% rename from 0002-curl-7.29.0-9d0af3018.patch rename to 0002-curl-7.29.0-9d0af301.patch diff --git a/0003-curl-7.29.0-491e026c.patch b/0003-curl-7.29.0-491e026c.patch new file mode 100644 index 0000000..c136e34 --- /dev/null +++ b/0003-curl-7.29.0-491e026c.patch @@ -0,0 +1,39 @@ +From a2e6eadf6a72f7587eb9bc1ad52383e4c5507b12 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Mon, 11 Mar 2013 16:57:25 +0100 +Subject: [PATCH 1/2] easy: do not ignore poll() failures other than EINTR + +[upstream commit 491e026ccda0e60975fa6e2e9cf3ccca37e18f7b] +--- + lib/easy.c | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/lib/easy.c b/lib/easy.c +index c27deff..2e747bb 100644 +--- a/lib/easy.c ++++ b/lib/easy.c +@@ -441,11 +441,19 @@ CURLcode curl_easy_perform(CURL *easy) + + while(!done && !mcode) { + int still_running; ++ int ret; + +- mcode = curl_multi_wait(multi, NULL, 0, 1000, NULL); ++ mcode = curl_multi_wait(multi, NULL, 0, 1000, &ret); ++ ++ if(mcode == CURLM_OK) { ++ if(ret == -1) { ++ /* poll() failed not on EINTR, indicate a network problem */ ++ code = CURLE_RECV_ERROR; ++ break; ++ } + +- if(mcode == CURLM_OK) + mcode = curl_multi_perform(multi, &still_running); ++ } + + /* only read 'still_running' if curl_multi_perform() return OK */ + if((mcode == CURLM_OK) && !still_running) { +-- +1.7.1 + diff --git a/curl.spec b/curl.spec index f05e2ea..ee1a65b 100644 --- a/curl.spec +++ b/curl.spec @@ -1,7 +1,7 @@ Summary: A utility for getting files from remote servers (FTP, HTTP, and others) Name: curl Version: 7.29.0 -Release: 3%{?dist} +Release: 4%{?dist} License: MIT Group: Applications/Internet Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma @@ -11,7 +11,10 @@ Source2: curlbuild.h Patch1: 0001-curl-7.29.0-da3fc1ee.patch # switch SSL socket into non-blocking mode after handshake -Patch2: 0002-curl-7.29.0-9d0af3018.patch +Patch2: 0002-curl-7.29.0-9d0af301.patch + +# do not ignore poll() failures other than EINTR +Patch3: 0003-curl-7.29.0-491e026c.patch # patch making libcurl multilib ready Patch101: 0101-curl-7.29.0-multilib.patch @@ -108,6 +111,7 @@ documentation of the library, too. # upstream patches %patch1 -p1 %patch2 -p1 +%patch3 -p1 # Fedora patches %patch101 -p1 @@ -225,6 +229,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/aclocal/libcurl.m4 %changelog +* Tue Mar 12 2013 Kamil Dudka 7.29.0-4 +- do not ignore poll() failures other than EINTR (#919127) + * Wed Mar 06 2013 Kamil Dudka 7.29.0-3 - switch SSL socket into non-blocking mode after handshake - drop the hide_selinux.c hack no longer needed in %%check