[arch-commits] Commit in lib32-libcurl-compat/trunk (2 files)
Christian Hesse
eworm at archlinux.org
Mon Nov 11 14:30:48 UTC 2019
Date: Monday, November 11, 2019 @ 14:30:48
Author: eworm
Revision: 526745
upgpkg: lib32-libcurl-compat 7.67.0-2
remove_handle: clear expire timers after multi_done (FS#64414)
Added:
lib32-libcurl-compat/trunk/0001-remove_handle-clear-expire-timers-after-multi_done.patch
Modified:
lib32-libcurl-compat/trunk/PKGBUILD
---------------------------------------------------------------+
0001-remove_handle-clear-expire-timers-after-multi_done.patch | 43 ++++++++++
PKGBUILD | 14 ++-
2 files changed, 54 insertions(+), 3 deletions(-)
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:30:48 UTC (rev 526745)
@@ -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 14:30:38 UTC (rev 526744)
+++ PKGBUILD 2019-11-11 14:30:48 UTC (rev 526745)
@@ -3,7 +3,7 @@
pkgname=lib32-libcurl-compat
pkgver=7.67.0
-pkgrel=1
+pkgrel=2
pkgdesc='An URL retrieval library (without versioned symbols)'
arch=('x86_64')
url='https://curl.haxx.se'
@@ -11,11 +11,19 @@
depends=('lib32-curl' 'lib32-glibc' 'lib32-krb5' 'lib32-libssh2' 'lib32-libpsl'
'lib32-openssl' 'lib32-zlib' 'libcurl-compat')
options=('strip')
-source=("https://curl.haxx.se/download/curl-${pkgver}.tar.gz"{,.asc})
+source=("https://curl.haxx.se/download/curl-${pkgver}.tar.gz"{,.asc}
+ '0001-remove_handle-clear-expire-timers-after-multi_done.patch')
sha512sums=('73365f964df733b5e79d690ba7260a279986a9637ba0026b37cca2eca7ba8e37967251751bdf26de730f6f432713da8b7e0a315e84f1e9dad0e0bfd3d7882f92'
- 'SKIP')
+ 'SKIP'
+ '99515e750f3d2319f4380e03fcfa2d6bd2ecef21cf8b760b5f5dcac94c4bd9ae544a75a0fbf9afa03e4912096aef0300421e2a43f0495362568a2b07c0808fee')
validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
+prepare() {
+ cd curl-${pkgver}
+
+ patch -Np1 < ../0001-remove_handle-clear-expire-timers-after-multi_done.patch
+}
+
build() {
cd curl-${pkgver}
More information about the arch-commits
mailing list