[arch-commits] Commit in curl/trunk (3 files)

Christian Hesse eworm at archlinux.org
Mon Nov 11 14:28:41 UTC 2019


    Date: Monday, November 11, 2019 @ 14:28:41
  Author: eworm
Revision: 367754

upgpkg: curl 7.67.0-3

remove_handle: clear expire timers after multi_done (FS#64414)

Added:
  curl/trunk/0001-remove_handle-clear-expire-timers-after-multi_done.patch
Modified:
  curl/trunk/PKGBUILD
Deleted:
  curl/trunk/0001-http2-expire-a-timeout-at-end-of-stream.patch

---------------------------------------------------------------+
 0001-http2-expire-a-timeout-at-end-of-stream.patch            |   26 ------
 0001-remove_handle-clear-expire-timers-after-multi_done.patch |   43 ++++++++++
 PKGBUILD                                                      |    8 -
 3 files changed, 47 insertions(+), 30 deletions(-)

Deleted: 0001-http2-expire-a-timeout-at-end-of-stream.patch
===================================================================
--- 0001-http2-expire-a-timeout-at-end-of-stream.patch	2019-11-11 13:02:13 UTC (rev 367753)
+++ 0001-http2-expire-a-timeout-at-end-of-stream.patch	2019-11-11 14:28:41 UTC (rev 367754)
@@ -1,26 +0,0 @@
-From 59041f052a5209a3aebb146c01b689424f9f7b04 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg <daniel at haxx.se>
-Date: Thu, 17 Oct 2019 14:25:45 +0200
-Subject: http2: expire a timeout at end of stream
-
-To make sure that transfer is being dealt with. Streams without
-Content-Length need a final read to notice the end-of-stream state.
-
-Reported-by: Tom van der Woerdt
-Fixes #4496
----
- lib/http2.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/http2.c b/lib/http2.c
-index b5b831b56..c0f29f83e 100644
---- a/lib/http2.c
-+++ b/lib/http2.c
-@@ -848,6 +848,7 @@ static int on_stream_close(nghttp2_session *session, int32_t stream_id,
-     stream->closed = TRUE;
-     httpc = &conn->proto.httpc;
-     drain_this(data_s, httpc);
-+    Curl_expire(data_s, 0, EXPIRE_RUN_NOW);
-     httpc->error_code = error_code;
- 
-     /* remove the entry from the hash as the stream is now gone */

Added: 0001-remove_handle-clear-expire-timers-after-multi_done.patch
===================================================================
--- 0001-remove_handle-clear-expire-timers-after-multi_done.patch	                        (rev 0)
+++ 0001-remove_handle-clear-expire-timers-after-multi_done.patch	2019-11-11 14:28:41 UTC (rev 367754)
@@ -0,0 +1,43 @@
+From 13182b33f727cf5a56a5a13419904369f7f3baad Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel at haxx.se>
+Date: Sun, 10 Nov 2019 16:23:53 +0100
+Subject: remove_handle: clear expire timers after multi_done()
+
+Since 59041f0, a new timer might be set in multi_done() so the clearing
+of the timers need to happen afterwards!
+
+Reported-by: Max Kellermann
+Fixes #4575
+Closes #4583
+---
+ lib/multi.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/lib/multi.c b/lib/multi.c
+index 6dfe8842e..7e8e38dc9 100755
+--- a/lib/multi.c
++++ b/lib/multi.c
+@@ -695,11 +695,6 @@ CURLMcode curl_multi_remove_handle(struct Curl_multi *multi,
+     easy_owns_conn = TRUE;
+   }
+ 
+-  /* The timer must be shut down before data->multi is set to NULL,
+-     else the timenode will remain in the splay tree after
+-     curl_easy_cleanup is called. */
+-  Curl_expire_clear(data);
+-
+   if(data->conn) {
+ 
+     /* we must call multi_done() here (if we still own the connection) so that
+@@ -715,6 +710,11 @@ CURLMcode curl_multi_remove_handle(struct Curl_multi *multi,
+     }
+   }
+ 
++  /* The timer must be shut down before data->multi is set to NULL, else the
++     timenode will remain in the splay tree after curl_easy_cleanup is
++     called. Do it after multi_done() in case that sets another time! */
++  Curl_expire_clear(data);
++
+   if(data->connect_queue.ptr)
+     /* the handle was in the pending list waiting for an available connection,
+        so go ahead and remove it */

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-11-11 13:02:13 UTC (rev 367753)
+++ PKGBUILD	2019-11-11 14:28:41 UTC (rev 367754)
@@ -6,7 +6,7 @@
 
 pkgname=curl
 pkgver=7.67.0
-pkgrel=2
+pkgrel=3
 pkgdesc="An URL retrieval utility and library"
 arch=('x86_64')
 url="https://curl.haxx.se"
@@ -15,16 +15,16 @@
          'libidn2' 'libidn2.so')
 provides=('libcurl.so')
 source=("https://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc}
-        '0001-http2-expire-a-timeout-at-end-of-stream.patch')
+        '0001-remove_handle-clear-expire-timers-after-multi_done.patch')
 sha512sums=('73365f964df733b5e79d690ba7260a279986a9637ba0026b37cca2eca7ba8e37967251751bdf26de730f6f432713da8b7e0a315e84f1e9dad0e0bfd3d7882f92'
             'SKIP'
-            'b21d53e8b6af37f1ae9deb4ac6dea50a13816f48932d47a1a167664988c0c2db472528d6c6790a782bca765e4edfad84f1452d0af8679d2c66f543e8ec7132ce')
+            '99515e750f3d2319f4380e03fcfa2d6bd2ecef21cf8b760b5f5dcac94c4bd9ae544a75a0fbf9afa03e4912096aef0300421e2a43f0495362568a2b07c0808fee')
 validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
 
 prepare() {
   cd "$pkgname-$pkgver"
 
-  patch -Np1 -R < ../0001-http2-expire-a-timeout-at-end-of-stream.patch
+  patch -Np1 < ../0001-remove_handle-clear-expire-timers-after-multi_done.patch
 }
 
 build() {



More information about the arch-commits mailing list