curlMinimal: apply paused HTTP/2 transfer fix

This is done before the final release due to how critical this bug is on
any application that relies on paused HTTP/2 transfers (e.g. Lix at high
concurrency during substitutions).

This can be removed as soon as 8.17.0 is landed.

Change-Id: I5bf8d7423447fff8e9a16e2c1ce67e432f769885
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
This commit is contained in:
Raito Bezarius
2025-11-03 17:31:10 +01:00
parent 14ace56d6a
commit 5aadca9efb
2 changed files with 35 additions and 0 deletions
@@ -0,0 +1,27 @@
From 7e91f24c73256af59ac9061c41b73a184c4690aa Mon Sep 17 00:00:00 2001
From: Stefan Eissing <stefan@eissing.org>
Date: Mon, 3 Nov 2025 15:07:57 +0100
Subject: [PATCH] cw-out: fix EAGAIN handling on pause
The interim CURLE_AGAIN result was not always converted to a
CURLE_OK and then caused write callers to report a failure.
Fixes #19334
Reported-by: pennae on github
Closes #19338
---
lib/cw-out.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/cw-out.c b/lib/cw-out.c
index 1f4031649267..9c0a36e7e5e2 100644
--- a/lib/cw-out.c
+++ b/lib/cw-out.c
@@ -302,6 +302,7 @@ static CURLcode cw_out_buf_flush(struct cw_out_ctx *ctx,
&consumed);
if(result && (result != CURLE_AGAIN))
return result;
+ result = CURLE_OK;
if(consumed) {
if(consumed == curlx_dyn_len(&cwbuf->b)) {
+8
View File
@@ -98,6 +98,14 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-QMjN28tsxiUcA96kI6Ryps6kA3vmVLpc9d7G6y0i/x0=";
};
patches = [
# Bug introduced in curl@fa915b (8.16.0) https://github.com/curl/curl/issues/19334 Paused
# HTTP/2 transfers will return the wrong errors and trash the whole
# transfer. Remove this patch once curl is updated to 8.17.0 which will be
# released on the 5th November 2025.
./fix-h2-paused-transfers.patch
];
# this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
# necessary for FreeBSD code path in configure
postPatch = ''