From c719fdcee603a5a706a45d10cb598762d56a727d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 25 Sep 2021 20:21:45 +0100 Subject: gentoo resync : 25.09.2021 --- .../curl-7.79.0-http-3digit-response-code.patch | 47 ++++++++++++++++++++++ .../files/curl-7.79.0-http2-connection-data.patch | 43 ++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 net-misc/curl/files/curl-7.79.0-http-3digit-response-code.patch create mode 100644 net-misc/curl/files/curl-7.79.0-http2-connection-data.patch (limited to 'net-misc/curl/files') diff --git a/net-misc/curl/files/curl-7.79.0-http-3digit-response-code.patch b/net-misc/curl/files/curl-7.79.0-http-3digit-response-code.patch new file mode 100644 index 000000000000..4fa701132651 --- /dev/null +++ b/net-misc/curl/files/curl-7.79.0-http-3digit-response-code.patch @@ -0,0 +1,47 @@ +https://github.com/curl/curl/commit/beb8990d934a01acf103871e463d4e61afc9ded2 + +From: Daniel Stenberg +Date: Fri, 17 Sep 2021 16:31:25 +0200 +Subject: [PATCH] http: fix the broken >3 digit response code detection + +When the "reason phrase" in the HTTP status line starts with a digit, +that was treated as the forth response code digit and curl would claim +the response to be non-compliant. + +Added test 1466 to verify this case. + +Regression brought by 5dc594e44f73b17 +Reported-by: Glenn de boer +Fixes #7738 +Closes #7739 +--- a/lib/http.c ++++ b/lib/http.c +@@ -4232,9 +4232,9 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data, + char separator; + char twoorthree[2]; + int httpversion = 0; +- int digit4 = -1; /* should remain untouched to be good */ ++ char digit4 = 0; + nc = sscanf(HEADER1, +- " HTTP/%1d.%1d%c%3d%1d", ++ " HTTP/%1d.%1d%c%3d%c", + &httpversion_major, + &httpversion, + &separator, +@@ -4250,13 +4250,13 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data, + + /* There can only be a 4th response code digit stored in 'digit4' if + all the other fields were parsed and stored first, so nc is 5 when +- digit4 is not -1 */ +- else if(digit4 != -1) { ++ digit4 a digit */ ++ else if(ISDIGIT(digit4)) { + failf(data, "Unsupported response code in HTTP response"); + return CURLE_UNSUPPORTED_PROTOCOL; + } + +- if((nc == 4) && (' ' == separator)) { ++ if((nc >= 4) && (' ' == separator)) { + httpversion += 10 * httpversion_major; + switch(httpversion) { + case 10: diff --git a/net-misc/curl/files/curl-7.79.0-http2-connection-data.patch b/net-misc/curl/files/curl-7.79.0-http2-connection-data.patch new file mode 100644 index 000000000000..bdb1484d1b16 --- /dev/null +++ b/net-misc/curl/files/curl-7.79.0-http2-connection-data.patch @@ -0,0 +1,43 @@ +https://github.com/curl/curl/commit/901804ef95777b8e735a55b77f8dd630a58c575b + +From: Daniel Stenberg +Date: Thu, 16 Sep 2021 08:50:54 +0200 +Subject: [PATCH] Curl_http2_setup: don't change connection data on repeat + invokes + +Regression from 3cb8a748670ab88c (releasde in 7.79.0). That change moved +transfer oriented inits to before the check but also erroneously moved a +few connection oriented ones, which causes problems. + +Reported-by: Evangelos Foutras +Fixes #7730 +Closes #7731 +--- a/lib/http2.c ++++ b/lib/http2.c +@@ -2221,12 +2221,6 @@ CURLcode Curl_http2_setup(struct Curl_easy *data, + stream->mem = data->state.buffer; + stream->len = data->set.buffer_size; + +- httpc->inbuflen = 0; +- httpc->nread_inbuf = 0; +- +- httpc->pause_stream_id = 0; +- httpc->drain_total = 0; +- + multi_connchanged(data->multi); + /* below this point only connection related inits are done, which only needs + to be done once per connection */ +@@ -2252,6 +2246,12 @@ CURLcode Curl_http2_setup(struct Curl_easy *data, + conn->httpversion = 20; + conn->bundle->multiuse = BUNDLE_MULTIPLEX; + ++ httpc->inbuflen = 0; ++ httpc->nread_inbuf = 0; ++ ++ httpc->pause_stream_id = 0; ++ httpc->drain_total = 0; ++ + infof(data, "Connection state changed (HTTP/2 confirmed)"); + + return CURLE_OK; + -- cgit v1.2.3