From 03d0b645b62ce24f3e83022158c5792cf07cb388 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Tue, 27 Aug 2019 18:10:11 +0200 Subject: [PATCH] Resolves: #1690971 - avoid reporting spurious error in the HTTP2 framing layer --- 0002-curl-7.65.3-h2-framing-layer-error.patch | 37 +++++++++++++++++++ curl.spec | 9 ++++- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 0002-curl-7.65.3-h2-framing-layer-error.patch diff --git a/0002-curl-7.65.3-h2-framing-layer-error.patch b/0002-curl-7.65.3-h2-framing-layer-error.patch new file mode 100644 index 0000000..24db142 --- /dev/null +++ b/0002-curl-7.65.3-h2-framing-layer-error.patch @@ -0,0 +1,37 @@ +From 98d59387c749256c2421b22dc3419b94d381986a Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg +Date: Mon, 26 Aug 2019 16:00:05 +0200 +Subject: [PATCH] http2: when marked for closure and wanted to close == OK + +It could otherwise return an error even when closed correctly if GOAWAY +had been received previously. + +Reported-by: Tom van der Woerdt +Fixes #4267 +Closes #4268 + +Upstream-commit: c1b6a384f9c8a91197c20adb49d43f30dc0e917d +Signed-off-by: Kamil Dudka +--- + lib/http2.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/lib/http2.c b/lib/http2.c +index 930e85165..31d2d698a 100644 +--- a/lib/http2.c ++++ b/lib/http2.c +@@ -1566,6 +1566,11 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex, + if(should_close_session(httpc)) { + H2BUGF(infof(data, + "http2_recv: nothing to do in this session\n")); ++ if(conn->bits.close) { ++ /* already marked for closure, return OK and we're done */ ++ *err = CURLE_OK; ++ return 0; ++ } + *err = CURLE_HTTP2; + return -1; + } +-- +2.20.1 + diff --git a/curl.spec b/curl.spec index 56eca10..9a733c8 100644 --- a/curl.spec +++ b/curl.spec @@ -1,13 +1,16 @@ Summary: A utility for getting files from remote servers (FTP, HTTP, and others) Name: curl Version: 7.65.3 -Release: 2%{?dist} +Release: 3%{?dist} License: MIT Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz # improve handling of gss_init_sec_context() failures Patch1: 0001-curl-7.65.3-negotiate-fails.patch +# avoid reporting spurious error in the HTTP2 framing layer (#1690971) +Patch2: 0002-curl-7.65.3-h2-framing-layer-error.patch + # patch making libcurl multilib ready Patch101: 0101-curl-7.32.0-multilib.patch @@ -175,6 +178,7 @@ be installed. # upstream patches %patch1 -p1 +%patch2 -p1 # Fedora patches %patch101 -p1 @@ -350,6 +354,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la %{_libdir}/libcurl.so.4.[0-9].[0-9].minimal %changelog +* Tue Aug 27 2019 Kamil Dudka - 7.65.3-3 +- avoid reporting spurious error in the HTTP2 framing layer (#1690971) + * Thu Aug 01 2019 Kamil Dudka - 7.65.3-2 - improve handling of gss_init_sec_context() failures