Hello community, here is the log from the commit of package curl for openSUSE:Factory checked in at 2019-11-18 20:06:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/curl (Old) and /work/SRC/openSUSE:Factory/.curl.new.26869 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "curl" Mon Nov 18 20:06:05 2019 rev:151 rq:748808 version:7.67.0 Changes: -------- --- /work/SRC/openSUSE:Factory/curl/curl-mini.changes 2019-11-11 12:58:31.085571353 +0100 +++ /work/SRC/openSUSE:Factory/.curl.new.26869/curl-mini.changes 2019-11-18 20:06:08.945720702 +0100 @@ -1,0 +2,7 @@ +Thu Nov 14 16:55:18 UTC 2019 - Pedro Monreal Gonzalez <[email protected]> + +- Fix segfault in zypper ref: [bsc#1156481] + * remove_handle: clear expire timers after multi_done() + * Add patch curl-expire-clear.patch + +------------------------------------------------------------------- curl.changes: same change New: ---- curl-expire-clear.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ curl-mini.spec ++++++ --- /var/tmp/diff_new_pack.S9tjd1/_old 2019-11-18 20:06:10.117720114 +0100 +++ /var/tmp/diff_new_pack.S9tjd1/_new 2019-11-18 20:06:10.133720106 +0100 @@ -1,7 +1,7 @@ # # spec file for package curl-mini # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LLC. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -45,6 +45,8 @@ # PATCH-FIX-OPENSUSE bsc#1076446 protocol redirection not supported or disabled Patch4: curl-disabled-redirect-protocol-message.patch Patch5: curl-use_OPENSSL_config.patch +# PATCH-FIX-UPSTREAM bsc#1156481 +Patch6: curl-expire-clear.patch BuildRequires: libtool BuildRequires: pkgconfig Requires: libcurl4%{?mini} = %{version} @@ -126,6 +128,7 @@ %endif %patch4 -p1 %patch5 -p1 +%patch6 -p1 # disable new failing test 1165 echo "1165" >> tests/data/DISABLED ++++++ curl.spec ++++++ --- /var/tmp/diff_new_pack.S9tjd1/_old 2019-11-18 20:06:10.381719982 +0100 +++ /var/tmp/diff_new_pack.S9tjd1/_new 2019-11-18 20:06:10.385719979 +0100 @@ -1,7 +1,7 @@ # # spec file for package curl # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LLC. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -43,6 +43,8 @@ # PATCH-FIX-OPENSUSE bsc#1076446 protocol redirection not supported or disabled Patch4: curl-disabled-redirect-protocol-message.patch Patch5: curl-use_OPENSSL_config.patch +# PATCH-FIX-UPSTREAM bsc#1156481 +Patch6: curl-expire-clear.patch BuildRequires: libtool BuildRequires: pkgconfig Requires: libcurl4%{?mini} = %{version} @@ -124,6 +126,7 @@ %endif %patch4 -p1 %patch5 -p1 +%patch6 -p1 # disable new failing test 1165 echo "1165" >> tests/data/DISABLED ++++++ curl-expire-clear.patch ++++++ >From 13182b33f727cf5a56a5a13419904369f7f3baad Mon Sep 17 00:00:00 2001 From: Daniel Stenberg <[email protected]> Date: Sun, 10 Nov 2019 16:23:53 +0100 Subject: [PATCH] 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 6dfe8842e7..7e8e38dc9f 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 */
