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 */


Reply via email to