summaryrefslogtreecommitdiff
path: root/net-misc/curl/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-09-25 20:21:45 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-09-25 20:21:45 +0100
commitc719fdcee603a5a706a45d10cb598762d56a727d (patch)
tree620cbf137661399a3fb1eff92914204f9a970713 /net-misc/curl/files
parentcc4618c9ba3d974948ebf340b542d8cb01db2f55 (diff)
gentoo resync : 25.09.2021
Diffstat (limited to 'net-misc/curl/files')
-rw-r--r--net-misc/curl/files/curl-7.79.0-http-3digit-response-code.patch47
-rw-r--r--net-misc/curl/files/curl-7.79.0-http2-connection-data.patch43
2 files changed, 90 insertions, 0 deletions
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 <daniel@haxx.se>
+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 <daniel@haxx.se>
+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;
+