Resolves: #1690971 - avoid reporting spurious error in the HTTP2 framing layer

This commit is contained in:
Kamil Dudka 2019-08-27 18:10:11 +02:00
parent 8559ecc1d9
commit 91c50ee6d4
2 changed files with 45 additions and 1 deletions

View File

@ -0,0 +1,37 @@
From 98d59387c749256c2421b22dc3419b94d381986a Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
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 <kdudka@redhat.com>
---
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

View File

@ -1,13 +1,16 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others) Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl Name: curl
Version: 7.65.3 Version: 7.65.3
Release: 3%{?dist} Release: 4%{?dist}
License: MIT License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
# improve handling of gss_init_sec_context() failures # improve handling of gss_init_sec_context() failures
Patch1: 0001-curl-7.65.3-negotiate-fails.patch 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 # patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch Patch101: 0101-curl-7.32.0-multilib.patch
@ -175,6 +178,7 @@ be installed.
# upstream patches # upstream patches
%patch1 -p1 %patch1 -p1
%patch2 -p1
# Fedora patches # Fedora patches
%patch101 -p1 %patch101 -p1
@ -350,6 +354,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal %{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog %changelog
* Tue Aug 27 2019 Kamil Dudka <kdudka@redhat.com> - 7.65.3-4
- avoid reporting spurious error in the HTTP2 framing layer (#1690971)
* Thu Aug 01 2019 Kamil Dudka <kdudka@redhat.com> - 7.65.3-3 * Thu Aug 01 2019 Kamil Dudka <kdudka@redhat.com> - 7.65.3-3
- improve handling of gss_init_sec_context() failures - improve handling of gss_init_sec_context() failures