From 34a4d8f84827412e621e7a424df1a2341ec0c292 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 31 Oct 2018 10:49:24 +0100
Subject: [PATCH 001/218] new upstream release - 7.62.0
Resolves: CVE-2018-16839 - SASL password overflow via integer overflow
Resolves: CVE-2018-16840 - use-after-free in handle close
Resolves: CVE-2018-16842 - warning message out-of-buffer read
---
0001-curl-7.61.1-test320-gnutls.patch | 63 ------------------
0002-curl-7.61.1-tlsv1.0-man.patch | 28 --------
0003-curl-7.61.1-TLS-1.3-PHA.patch | 46 -------------
0101-curl-7.32.0-multilib.patch | 2 +-
0102-curl-7.36.0-debug.patch | 2 +-
0103-curl-7.59.0-python3.patch | 93 ++-------------------------
curl-7.61.1.tar.xz.asc | 11 ----
curl-7.62.0.tar.xz.asc | 11 ++++
curl.spec | 22 +++----
sources | 2 +-
10 files changed, 27 insertions(+), 253 deletions(-)
delete mode 100644 0001-curl-7.61.1-test320-gnutls.patch
delete mode 100644 0002-curl-7.61.1-tlsv1.0-man.patch
delete mode 100644 0003-curl-7.61.1-TLS-1.3-PHA.patch
delete mode 100644 curl-7.61.1.tar.xz.asc
create mode 100644 curl-7.62.0.tar.xz.asc
diff --git a/0001-curl-7.61.1-test320-gnutls.patch b/0001-curl-7.61.1-test320-gnutls.patch
deleted file mode 100644
index a9cbaac..0000000
--- a/0001-curl-7.61.1-test320-gnutls.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 3cd5b375e31fb98e4782dc3a77e7316ad9eb26cf Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Thu, 4 Oct 2018 15:34:13 +0200
-Subject: [PATCH] test320: strip out more HTML when comparing
-
-To make the test case work with different gnutls-serv versions better.
-
-Reported-by: Kamil Dudka
-Fixes #3093
-Closes #3094
-
-Upstream-commit: 94ad57b0246b5658c2a9139dbe6a80efa4c4e2f3
-Signed-off-by: Kamil Dudka
----
- tests/data/test320 | 24 ++++--------------------
- 1 file changed, 4 insertions(+), 20 deletions(-)
-
-diff --git a/tests/data/test320 b/tests/data/test320
-index 457a11eb2..87311d4f2 100644
---- a/tests/data/test320
-+++ b/tests/data/test320
-@@ -62,34 +62,18 @@ simple TLS-SRP HTTPS GET, check user in response
- HTTP/1.0 200 OK
- Content-type: text/html
-
--
--
--
--
--
--
--If your browser supports session resuming, then you should see the same session ID, when you press the reload button.
--Connected as user 'jsmith'.
--
--
|
--| Key Exchange: | SRP |
--| Compression | NULL |
--| Cipher | AES-NNN-CBC |
--| MAC | SHA1 |
--| Ciphersuite | SRP_SHA_AES_NNN_CBC_SHA1 |
--
Your HTTP header was:
Host: %HOSTIP:%HTTPTLSPORT
-+FINE
- User-Agent: curl-test-suite
- Accept: */*
-
--
--
--
-
-
--s/^Session ID:.*//
-+s/^
Connected as user 'jsmith'.*/FINE/
- s/Protocol version:.*[0-9]//
- s/GNUTLS/GnuTLS/
- s/(AES[-_])\d\d\d([-_]CBC)/$1NNN$2/
-+s/^<.*\n//
-+s/^\n//
-
-
-
---
-2.17.1
-
diff --git a/0002-curl-7.61.1-tlsv1.0-man.patch b/0002-curl-7.61.1-tlsv1.0-man.patch
deleted file mode 100644
index f384366..0000000
--- a/0002-curl-7.61.1-tlsv1.0-man.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From c574e05b0035f0d78e6bf6040d3f80430112ab4f Mon Sep 17 00:00:00 2001
-From: Kamil Dudka
-Date: Fri, 7 Sep 2018 16:50:45 +0200
-Subject: [PATCH] docs/cmdline-opts: update the documentation of --tlsv1.0
-
-... to reflect the changes in 6015cefb1b2cfde4b4850121c42405275e5e77d9
-
-Closes #2955
-
-Upstream-commit: 9ba22ce6b52751ed1e2abdd177b0a1d241819b4e
-Signed-off-by: Kamil Dudka
----
- docs/cmdline-opts/tlsv1.0.d | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/docs/cmdline-opts/tlsv1.0.d b/docs/cmdline-opts/tlsv1.0.d
-index 8789025e0..54e259682 100644
---- a/docs/cmdline-opts/tlsv1.0.d
-+++ b/docs/cmdline-opts/tlsv1.0.d
-@@ -3,4 +3,4 @@ Help: Use TLSv1.0
- Protocols: TLS
- Added: 7.34.0
- ---
--Forces curl to use TLS version 1.0 when connecting to a remote TLS server.
-+Forces curl to use TLS version 1.0 or later when connecting to a remote TLS server.
---
-2.17.1
-
diff --git a/0003-curl-7.61.1-TLS-1.3-PHA.patch b/0003-curl-7.61.1-TLS-1.3-PHA.patch
deleted file mode 100644
index 99273ac..0000000
--- a/0003-curl-7.61.1-TLS-1.3-PHA.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From bb8ad3da3fb4ab3f6556daa1f67b259c12a3c7de Mon Sep 17 00:00:00 2001
-From: Christian Heimes
-Date: Fri, 21 Sep 2018 10:37:43 +0200
-Subject: [PATCH] OpenSSL: enable TLS 1.3 post-handshake auth
-
-OpenSSL 1.1.1 requires clients to opt-in for post-handshake
-authentication.
-
-Fixes: https://github.com/curl/curl/issues/3026
-Signed-off-by: Christian Heimes
-
-Closes https://github.com/curl/curl/pull/3027
-
-Upstream-commit: b939bc47b27cd57c6ebb852ad653933e4124b452
-Signed-off-by: Kamil Dudka
----
- lib/vtls/openssl.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
-index a487f55..78970d1 100644
---- a/lib/vtls/openssl.c
-+++ b/lib/vtls/openssl.c
-@@ -178,6 +178,7 @@ static unsigned long OpenSSL_version_num(void)
- !defined(LIBRESSL_VERSION_NUMBER) && \
- !defined(OPENSSL_IS_BORINGSSL))
- #define HAVE_SSL_CTX_SET_CIPHERSUITES
-+#define HAVE_SSL_CTX_SET_POST_HANDSHAKE_AUTH
- #endif
-
- #if defined(LIBRESSL_VERSION_NUMBER)
-@@ -2467,6 +2468,11 @@ static CURLcode ossl_connect_step1(struct connectdata *conn, int sockindex)
- }
- #endif
-
-+#ifdef HAVE_SSL_CTX_SET_POST_HANDSHAKE_AUTH
-+ /* OpenSSL 1.1.1 requires clients to opt-in for PHA */
-+ SSL_CTX_set_post_handshake_auth(BACKEND->ctx, 1);
-+#endif
-+
- #ifdef USE_TLS_SRP
- if(ssl_authtype == CURL_TLSAUTH_SRP) {
- char * const ssl_username = SSL_SET_OPTION(username);
---
-2.17.1
-
diff --git a/0101-curl-7.32.0-multilib.patch b/0101-curl-7.32.0-multilib.patch
index 532980e..613106d 100644
--- a/0101-curl-7.32.0-multilib.patch
+++ b/0101-curl-7.32.0-multilib.patch
@@ -22,7 +22,7 @@ index 150004d..95d0759 100644
;;
--prefix)
-@@ -143,32 +143,17 @@ while test $# -gt 0; do
+@@ -155,32 +155,17 @@ while test $# -gt 0; do
;;
--libs)
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index bbb253f..495fe63 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16414,18 +16414,11 @@ $as_echo "yes" >&6; }
+@@ -16421,18 +16421,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/0103-curl-7.59.0-python3.patch b/0103-curl-7.59.0-python3.patch
index f66b6c0..56485fe 100644
--- a/0103-curl-7.59.0-python3.patch
+++ b/0103-curl-7.59.0-python3.patch
@@ -1,88 +1,23 @@
-From bdba7b54224814055185513de1e7ff6619031553 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka
-Date: Thu, 15 Mar 2018 13:21:40 +0100
-Subject: [PATCH 1/2] tests/http_pipe.py: migrate to Python 3
-
----
- tests/http_pipe.py | 4 ++--
- tests/runtests.pl | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/tests/http_pipe.py b/tests/http_pipe.py
-index bc32173..75ac165 100755
---- a/tests/http_pipe.py
-+++ b/tests/http_pipe.py
-@@ -383,13 +383,13 @@ class PipelineRequestHandler(socketserver.BaseRequestHandler):
- self.request.setblocking(True)
- if not new_data:
- return
-- new_requests = self._request_parser.ParseAdditionalData(new_data)
-+ new_requests = self._request_parser.ParseAdditionalData(new_data.decode('utf8'))
- self._response_builder.QueueRequests(
- new_requests, self._request_parser.were_all_requests_http_1_1)
- self._num_queued += len(new_requests)
- self._last_queued_time = time.time()
- elif fileno in wlist:
-- num_bytes_sent = self.request.send(self._send_buffer[0:4096])
-+ num_bytes_sent = self.request.send(self._send_buffer[0:4096].encode('utf8'))
- self._send_buffer = self._send_buffer[num_bytes_sent:]
- time.sleep(0.05)
-
-diff --git a/tests/runtests.pl b/tests/runtests.pl
-index d6aa5ca..4d395ef 100755
---- a/tests/runtests.pl
-+++ b/tests/runtests.pl
-@@ -1439,7 +1439,7 @@ sub runhttpserver {
- elsif($alt eq "pipe") {
- # basically the same, but another ID
- $idnum = 3;
-- $exe = "python $srcdir/http_pipe.py";
-+ $exe = "python3 $srcdir/http_pipe.py";
- $verbose_flag .= "1 ";
- }
- elsif($alt eq "unix") {
---
-2.14.3
-
-
From 3c4c7340e455b7256c0786759422f34ec3e2d440 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Thu, 15 Mar 2018 14:49:56 +0100
-Subject: [PATCH 2/2] tests/{negtelnet,smb}server.py: migrate to Python 3
+Subject: [PATCH] tests/{negtelnet,smb}server.py: migrate to Python 3
Unfortunately, smbserver.py does not work with Python 3 because
there is no 'impacket' module available for Python 3:
https://github.com/CoreSecurity/impacket/issues/61
---
- tests/negtelnetserver.py | 12 ++++++------
- tests/smbserver.py | 4 ++--
- 2 files changed, 8 insertions(+), 8 deletions(-)
+ tests/negtelnetserver.py | 4 ++--
+ tests/smbserver.py | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests/negtelnetserver.py b/tests/negtelnetserver.py
index 8cfd409..72ee771 100755
--- a/tests/negtelnetserver.py
+++ b/tests/negtelnetserver.py
-@@ -23,7 +23,7 @@ IDENT = "NTEL"
-
- # The strings that indicate the test framework is checking our aliveness
- VERIFIED_REQ = b"verifiedserver"
--VERIFIED_RSP = b"WE ROOLZ: {pid}"
-+VERIFIED_RSP = "WE ROOLZ: {pid}"
-
-
- def telnetserver(options):
-@@ -34,7 +34,7 @@ def telnetserver(options):
- if options.pidfile:
- pid = os.getpid()
- with open(options.pidfile, "w") as f:
-- f.write(b"{0}".format(pid))
-+ f.write("{0}".format(pid))
-
- local_bind = (HOST, options.port)
- log.info("Listening on %s", local_bind)
@@ -73,11 +73,11 @@ class NegotiatingTelnetHandler(socketserver.BaseRequestHandler):
- response_data = VERIFIED_RSP.format(pid=os.getpid())
+ response_data = response.encode('ascii')
else:
log.debug("Received normal request - echoing back")
- response_data = data.strip()
@@ -95,24 +30,6 @@ index 8cfd409..72ee771 100755
except IOError:
log.exception("IOError hit during request")
-@@ -132,7 +132,7 @@ class Negotiator(object):
- return buffer
-
- def byte_to_int(self, byte):
-- return struct.unpack(b'B', byte)[0]
-+ return int(byte)
-
- def no_neg(self, byte, byte_int, buffer):
- # Not negotiating anything thus far. Check to see if we
-@@ -197,7 +197,7 @@ class Negotiator(object):
- self.tcp.sendall(packed_message)
-
- def pack(self, arr):
-- return struct.pack(b'{0}B'.format(len(arr)), *arr)
-+ return struct.pack('{0}B'.format(len(arr)), *arr)
-
- def send_iac(self, arr):
- message = [NegTokens.IAC]
diff --git a/tests/smbserver.py b/tests/smbserver.py
index 195ae39..b09cd44 100755
--- a/tests/smbserver.py
diff --git a/curl-7.61.1.tar.xz.asc b/curl-7.61.1.tar.xz.asc
deleted file mode 100644
index 6a1e664..0000000
--- a/curl-7.61.1.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAluPblgACgkQXMkI/bce
-EsJynAgArST/gB9eVYIQTTAdXxCOSnArBK/Ne/UNW83QIgOawj0HvEpj9+1SNfTi
-EwC5YSwymyMuKGTDLNswTnJ0MripRKylekfu1QGGzmIOkqovTiHz60xiFuWYI3vy
-fYuAAse5MJz64GCVFwOM4me8SgEjtb/hIbhiCLqilOyXnqtocDm4FPCMAYQ1mTFy
-RJBbwgDLwtktfBDCQyMXTeETGuk3bTrtvSwRv8+Rq8qehOt5s58Fqeztv8EVNi+B
-Qzsi5NXMulgl3C0P3dN/cC81+OL75ehuE91AFXUmbNOnlYNTOxHR2dioaXaEyhKb
-51KLH2D0G75wlfMbgMhX/rguuXT2rg==
-=vM6i
------END PGP SIGNATURE-----
diff --git a/curl-7.62.0.tar.xz.asc b/curl-7.62.0.tar.xz.asc
new file mode 100644
index 0000000..230438a
--- /dev/null
+++ b/curl-7.62.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlvZT5wACgkQXMkI/bce
+EsJG4gf+IY2RkT9d7SIBAanHOD2NeT4UtPAOVRVtpW8dD9TIJq4IKOqv8CpcCCRq
+OZPJovdxM0qmXcrX2Dlf3zpPuY+bSzBW/xUYsKBBTTXhdUh5dv1Tz3HR6JzMHyT4
+hQm1mj6eFHFvayUKxoeQwiw3SkvW6WIlAySwEBzIzaE7icwvJ2dPO7xUOJWLXk/F
+pDRCAuHqIIgNzNph0EKXkvLWz5poBzGaK9kpJxmeaS3aWpe0EZ4+N6ju2GfHK5jO
+VQSuLWDHCZulv1eve+LOxgRjp/5kqQ/PPc3/99mEOxGRUxwCWVMEWGklAungn4bX
+nBPWNGArGJq2+kMP7v5pr0onBz6wxg==
+=CWQL
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index d3366ac..70e148e 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,19 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.61.1
-Release: 3%{?dist}
+Version: 7.62.0
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# test320: update expected output for gnutls-3.6.4
-Patch1: 0001-curl-7.61.1-test320-gnutls.patch
-
-# update the documentation of --tlsv1.0 in curl(1) man page
-Patch2: 0002-curl-7.61.1-tlsv1.0-man.patch
-
-# enable TLS 1.3 post-handshake auth in OpenSSL
-Patch3: 0003-curl-7.61.1-TLS-1.3-PHA.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -172,9 +163,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
# Fedora patches
%patch101 -p1
@@ -341,6 +329,12 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Oct 31 2018 Kamil Dudka - 7.62.0-1
+- new upstream release, which fixes the following vulnerabilities
+ CVE-2018-16839 - SASL password overflow via integer overflow
+ CVE-2018-16840 - use-after-free in handle close
+ CVE-2018-16842 - warning message out-of-buffer read
+
* Thu Oct 11 2018 Kamil Dudka - 7.61.1-3
- enable TLS 1.3 post-handshake auth in OpenSSL
- update the documentation of --tlsv1.0 in curl(1) man page
diff --git a/sources b/sources
index 717a22e..f127541 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.61.1.tar.xz) = e6f82a7292c70841162480c8880d25046bcfa64058f4ff76f7d398c85da569af1c244442c9c58a3478d59264365ff8e39eed2fb564cb137118588f7862e64e9a
+SHA512 (curl-7.62.0.tar.xz) = 3aace2fc85e1d5ac06a3208980f887b5f1de5e2a1460e130b15cff3f7e5700b958cbb8f296483290961ef41f550245590067f86558dbba25e3d3ac10cec1adcd
From a94ce82de00deaf7134abcceb2ff0c94de4e7be3 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 12 Dec 2018 09:45:07 +0100
Subject: [PATCH 002/218] new upstream release - 7.63.0
---
0102-curl-7.36.0-debug.patch | 2 +-
curl-7.62.0.tar.xz.asc | 11 -----------
curl-7.63.0.tar.xz.asc | 11 +++++++++++
curl.spec | 5 ++++-
sources | 2 +-
5 files changed, 17 insertions(+), 14 deletions(-)
delete mode 100644 curl-7.62.0.tar.xz.asc
create mode 100644 curl-7.63.0.tar.xz.asc
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index 495fe63..60de5b3 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16421,18 +16421,11 @@ $as_echo "yes" >&6; }
+@@ -16415,18 +16415,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/curl-7.62.0.tar.xz.asc b/curl-7.62.0.tar.xz.asc
deleted file mode 100644
index 230438a..0000000
--- a/curl-7.62.0.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlvZT5wACgkQXMkI/bce
-EsJG4gf+IY2RkT9d7SIBAanHOD2NeT4UtPAOVRVtpW8dD9TIJq4IKOqv8CpcCCRq
-OZPJovdxM0qmXcrX2Dlf3zpPuY+bSzBW/xUYsKBBTTXhdUh5dv1Tz3HR6JzMHyT4
-hQm1mj6eFHFvayUKxoeQwiw3SkvW6WIlAySwEBzIzaE7icwvJ2dPO7xUOJWLXk/F
-pDRCAuHqIIgNzNph0EKXkvLWz5poBzGaK9kpJxmeaS3aWpe0EZ4+N6ju2GfHK5jO
-VQSuLWDHCZulv1eve+LOxgRjp/5kqQ/PPc3/99mEOxGRUxwCWVMEWGklAungn4bX
-nBPWNGArGJq2+kMP7v5pr0onBz6wxg==
-=CWQL
------END PGP SIGNATURE-----
diff --git a/curl-7.63.0.tar.xz.asc b/curl-7.63.0.tar.xz.asc
new file mode 100644
index 0000000..1dd44ac
--- /dev/null
+++ b/curl-7.63.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlwQtYIACgkQXMkI/bce
+EsKPHgf/RhfKPvl1Q8ftuEOXakF/ZIvINukj49vOMFmfQRHfmGWh5ajaGj0qVF6x
+U5HtrDoFOP5m74tj6jrzr2Ala/HGeyZmiTWwRLMgu+Tvq4djIv2pzZUJpgawJS52
+LCb2DUS2F+E1AsZQYvyliYA+r2FO2RRX1kbwdu+0RyuFy5WmWwkI02VahAIYV48o
+44IqtXshxfSAlfEqQ8MgXtU1KW0SWtfKVP2HpsurugjGyknoXxHP7yoDMgDAkMk0
+fNYyPDZbUXXN+6Oyo4Xh8rz4dpVLBkIoCZb4WG2pFZSrfP2+FTL5/vRo/tUyjFfv
+2LHmDUOOFH3VMwMYlnMCgaaXG7/jtg==
+=TkSP
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 70e148e..b39182e 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,6 +1,6 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.62.0
+Version: 7.63.0
Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -329,6 +329,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Dec 12 2018 Kamil Dudka - 7.63.0-1
+- new upstream release
+
* Wed Oct 31 2018 Kamil Dudka - 7.62.0-1
- new upstream release, which fixes the following vulnerabilities
CVE-2018-16839 - SASL password overflow via integer overflow
diff --git a/sources b/sources
index f127541..c40ff26 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.62.0.tar.xz) = 3aace2fc85e1d5ac06a3208980f887b5f1de5e2a1460e130b15cff3f7e5700b958cbb8f296483290961ef41f550245590067f86558dbba25e3d3ac10cec1adcd
+SHA512 (curl-7.63.0.tar.xz) = c905eb157c6b0093f1b1a506e4782b83af423fd6de1ce0ab5372164a686ef292ffb10d7999d3dec2de602f63ee41b65e1a1008409dd8c959a597644c0ecb395b
From c91c27bce90e913a6fdfd4cb42172496d0e264a8 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 12 Dec 2018 14:39:00 +0100
Subject: [PATCH 003/218] libtest: avoid symbol lookup error in libstubgss.so
---
0105-curl-7.63.0-libstubgss-ldadd.patch | 25 +++++++++++++++++++++++++
curl.spec | 4 ++++
2 files changed, 29 insertions(+)
create mode 100644 0105-curl-7.63.0-libstubgss-ldadd.patch
diff --git a/0105-curl-7.63.0-libstubgss-ldadd.patch b/0105-curl-7.63.0-libstubgss-ldadd.patch
new file mode 100644
index 0000000..e87b05b
--- /dev/null
+++ b/0105-curl-7.63.0-libstubgss-ldadd.patch
@@ -0,0 +1,25 @@
+From d8a3bdce7a43cb777866c34d3dabf908254e516d Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Wed, 12 Dec 2018 14:25:32 +0100
+Subject: [PATCH] libtest: avoid symbol lookup error in libstubgss.so
+
+---
+ tests/libtest/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am
+index 56c84a7..117b79f 100644
+--- a/tests/libtest/Makefile.am
++++ b/tests/libtest/Makefile.am
+@@ -123,7 +123,7 @@ libstubgss_la_CFLAGS = $(AM_CFLAGS) -g
+
+ libstubgss_la_SOURCES = stub_gssapi.c stub_gssapi.h
+
+-libstubgss_la_LIBADD =
++libstubgss_la_LIBADD = $(top_builddir)/lib/libcurl.la
+ libstubgss_la_DEPENDENCIES =
+ endif
+
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index b39182e..e77d447 100644
--- a/curl.spec
+++ b/curl.spec
@@ -17,6 +17,9 @@ Patch103: 0103-curl-7.59.0-python3.patch
# use localhost6 instead of ip6-localhost in the curl test-suite
Patch104: 0104-curl-7.19.7-localhost6.patch
+# libtest: avoid symbol lookup error in libstubgss.so
+Patch105: 0105-curl-7.63.0-libstubgss-ldadd.patch
+
Provides: curl-full = %{version}-%{release}
Provides: webclient
URL: https://curl.haxx.se/
@@ -169,6 +172,7 @@ be installed.
%patch102 -p1
%patch103 -p1
%patch104 -p1
+%patch105 -p1
# make tests/*.py use Python 3
sed -e '1 s|^#!/.*python|#!%{__python3}|' -i tests/*.py
From c30a9c7fdb343528c29e503b626dc566fa4deb9e Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Fri, 14 Dec 2018 11:21:54 +0100
Subject: [PATCH 004/218] Resolves: #1659329 - revert an upstream commit that
broke `fedpkg new-sources`
---
0001-curl-7.62.0-http-post-negotiate.patch | 72 ++++++++++++++++++++++
curl.spec | 9 ++-
2 files changed, 80 insertions(+), 1 deletion(-)
create mode 100644 0001-curl-7.62.0-http-post-negotiate.patch
diff --git a/0001-curl-7.62.0-http-post-negotiate.patch b/0001-curl-7.62.0-http-post-negotiate.patch
new file mode 100644
index 0000000..a391183
--- /dev/null
+++ b/0001-curl-7.62.0-http-post-negotiate.patch
@@ -0,0 +1,72 @@
+From be7395e31ae884cfaf87056f400130e3321767b3 Mon Sep 17 00:00:00 2001
+From: Elia Tufarolo
+Date: Tue, 13 Nov 2018 18:30:56 +0100
+Subject: [PATCH] http_negotiate: do not close connection until negotiation is
+ completed
+
+Fix HTTP POST using CURLAUTH_NEGOTIATE.
+
+Closes #3275
+
+Upstream-commit: 07ebaf837843124ee670e5b8c218b80b92e06e47
+Signed-off-by: Kamil Dudka
+---
+ lib/http.c | 1 -
+ lib/http_negotiate.c | 8 ++++++++
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/lib/http.c b/lib/http.c
+index 46ac15a6e..afc919b09 100644
+--- a/lib/http.c
++++ b/lib/http.c
+@@ -610,7 +610,6 @@ output_auth_headers(struct connectdata *conn,
+ result = Curl_output_negotiate(conn, proxy);
+ if(result)
+ return result;
+- authstatus->done = TRUE;
+ negdata->state = GSS_AUTHSENT;
+ }
+ else
+diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
+index ddcd65b3b..444265d11 100644
+--- a/lib/http_negotiate.c
++++ b/lib/http_negotiate.c
+@@ -49,6 +49,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
+
+ /* Point to the correct struct with this */
+ struct negotiatedata *neg_ctx;
++ struct auth *authp;
+
+ if(proxy) {
+ userp = conn->http_proxy.user;
+@@ -57,6 +58,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
+ data->set.str[STRING_PROXY_SERVICE_NAME] : "HTTP";
+ host = conn->http_proxy.host.name;
+ neg_ctx = &data->state.proxyneg;
++ authp = &conn->data->state.authproxy;
+ }
+ else {
+ userp = conn->user;
+@@ -65,6 +67,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
+ data->set.str[STRING_SERVICE_NAME] : "HTTP";
+ host = conn->host.name;
+ neg_ctx = &data->state.negotiate;
++ authp = &conn->data->state.authhost;
+ }
+
+ /* Not set means empty */
+@@ -95,6 +98,11 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
+
+ if(result)
+ Curl_auth_spnego_cleanup(neg_ctx);
++ else
++ /* If the status is different than 0 and we encountered no errors
++ it means we have to continue. 0 is the OK value for both GSSAPI
++ (GSS_S_COMPLETE) and SSPI (SEC_E_OK) */
++ authp->done = !neg_ctx->status;
+
+ return result;
+ }
+--
+2.20.0
+
diff --git a/curl.spec b/curl.spec
index e77d447..3237389 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,10 +1,13 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.63.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# revert an upstream commit that broke `fedpkg new-sources` (#1659329)
+Patch1: 0001-curl-7.62.0-http-post-negotiate.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -164,6 +167,7 @@ be installed.
%prep
%setup -q
+%patch1 -p1 -R
# upstream patches
@@ -333,6 +337,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Fri Dec 14 2018 Kamil Dudka - 7.63.0-2
+- revert an upstream commit that broke `fedpkg new-sources` (#1659329)
+
* Wed Dec 12 2018 Kamil Dudka - 7.63.0-1
- new upstream release
From 49f5a42f9621baf874c9387c2b6e8d13e8f7868e Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 19 Dec 2018 13:42:58 +0100
Subject: [PATCH 005/218] Resolves: #1658574 - curl -J: do not append to the
destination file
---
0007-curl-7.63.0-JO-preserve-local-file.patch | 115 ++++++++++++++++++
curl.spec | 11 +-
2 files changed, 125 insertions(+), 1 deletion(-)
create mode 100644 0007-curl-7.63.0-JO-preserve-local-file.patch
diff --git a/0007-curl-7.63.0-JO-preserve-local-file.patch b/0007-curl-7.63.0-JO-preserve-local-file.patch
new file mode 100644
index 0000000..12ac53e
--- /dev/null
+++ b/0007-curl-7.63.0-JO-preserve-local-file.patch
@@ -0,0 +1,115 @@
+From ff74657fb645e7175971128a171ef7d5ece40d77 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Mon, 17 Dec 2018 12:51:51 +0100
+Subject: [PATCH] curl -J: do not append to the destination file
+
+Reported-by: Kamil Dudka
+Fixes #3380
+Closes #3381
+
+Upstream-commit: 4849267197682e69cfa056c2bd7a44acd123a917
+Signed-off-by: Kamil Dudka
+---
+ src/tool_cb_hdr.c | 6 +++---
+ src/tool_cb_wrt.c | 9 ++++-----
+ src/tool_cb_wrt.h | 2 +-
+ src/tool_operate.c | 2 +-
+ 4 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/src/tool_cb_hdr.c b/src/tool_cb_hdr.c
+index 84b0d9c..3844904 100644
+--- a/src/tool_cb_hdr.c
++++ b/src/tool_cb_hdr.c
+@@ -157,12 +157,12 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
+ outs->filename = filename;
+ outs->alloc_filename = TRUE;
+ hdrcbdata->honor_cd_filename = FALSE; /* done now! */
+- if(!tool_create_output_file(outs, TRUE))
++ if(!tool_create_output_file(outs))
+ return failure;
+ }
+ break;
+ }
+- if(!outs->stream && !tool_create_output_file(outs, FALSE))
++ if(!outs->stream && !tool_create_output_file(outs))
+ return failure;
+ }
+
+@@ -172,7 +172,7 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
+ /* bold headers only for selected protocols */
+ char *value = NULL;
+
+- if(!outs->stream && !tool_create_output_file(outs, FALSE))
++ if(!outs->stream && !tool_create_output_file(outs))
+ return failure;
+
+ if(hdrcbdata->global->isatty && hdrcbdata->global->styled_output)
+diff --git a/src/tool_cb_wrt.c b/src/tool_cb_wrt.c
+index 2cb5e1b..195d6e7 100644
+--- a/src/tool_cb_wrt.c
++++ b/src/tool_cb_wrt.c
+@@ -32,8 +32,7 @@
+ #include "memdebug.h" /* keep this as LAST include */
+
+ /* create a local file for writing, return TRUE on success */
+-bool tool_create_output_file(struct OutStruct *outs,
+- bool append)
++bool tool_create_output_file(struct OutStruct *outs)
+ {
+ struct GlobalConfig *global = outs->config->global;
+ FILE *file;
+@@ -43,7 +42,7 @@ bool tool_create_output_file(struct OutStruct *outs,
+ return FALSE;
+ }
+
+- if(outs->is_cd_filename && !append) {
++ if(outs->is_cd_filename) {
+ /* don't overwrite existing files */
+ file = fopen(outs->filename, "rb");
+ if(file) {
+@@ -55,7 +54,7 @@ bool tool_create_output_file(struct OutStruct *outs,
+ }
+
+ /* open file for writing */
+- file = fopen(outs->filename, append?"ab":"wb");
++ file = fopen(outs->filename, "wb");
+ if(!file) {
+ warnf(global, "Failed to create the file %s: %s\n", outs->filename,
+ strerror(errno));
+@@ -142,7 +141,7 @@ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
+ }
+ #endif
+
+- if(!outs->stream && !tool_create_output_file(outs, FALSE))
++ if(!outs->stream && !tool_create_output_file(outs))
+ return failure;
+
+ if(is_tty && (outs->bytes < 2000) && !config->terminal_binary_ok) {
+diff --git a/src/tool_cb_wrt.h b/src/tool_cb_wrt.h
+index 51e002b..188d3ea 100644
+--- a/src/tool_cb_wrt.h
++++ b/src/tool_cb_wrt.h
+@@ -30,6 +30,6 @@
+ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata);
+
+ /* create a local file for writing, return TRUE on success */
+-bool tool_create_output_file(struct OutStruct *outs, bool append);
++bool tool_create_output_file(struct OutStruct *outs);
+
+ #endif /* HEADER_CURL_TOOL_CB_WRT_H */
+diff --git a/src/tool_operate.c b/src/tool_operate.c
+index e53a9d8..429e9cf 100644
+--- a/src/tool_operate.c
++++ b/src/tool_operate.c
+@@ -1583,7 +1583,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
+ /* do not create (or even overwrite) the file in case we get no
+ data because of unmet condition */
+ curl_easy_getinfo(curl, CURLINFO_CONDITION_UNMET, &cond_unmet);
+- if(!cond_unmet && !tool_create_output_file(&outs, FALSE))
++ if(!cond_unmet && !tool_create_output_file(&outs))
+ result = CURLE_WRITE_ERROR;
+ }
+
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index 3237389..aaa75a4 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,16 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.63.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
# revert an upstream commit that broke `fedpkg new-sources` (#1659329)
Patch1: 0001-curl-7.62.0-http-post-negotiate.patch
+# curl -J: do not append to the destination file (#1658574)
+Patch7: 0007-curl-7.63.0-JO-preserve-local-file.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -167,9 +170,12 @@ be installed.
%prep
%setup -q
+
+# upstream patches to revert
%patch1 -p1 -R
# upstream patches
+%patch7 -p1
# Fedora patches
%patch101 -p1
@@ -337,6 +343,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Dec 19 2018 Kamil Dudka - 7.63.0-3
+- curl -J: do not append to the destination file (#1658574)
+
* Fri Dec 14 2018 Kamil Dudka - 7.63.0-2
- revert an upstream commit that broke `fedpkg new-sources` (#1659329)
From 32b0144f200134a2eee3b466e79f9f6488463541 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Fri, 4 Jan 2019 14:18:26 +0100
Subject: [PATCH 006/218] replace 0105-curl-7.63.0-libstubgss-ldadd.patch by
upstream patch
---
...-7.62.0-libtest-stub_gssapi-snprintf.patch | 63 +++++++++++++++++++
0105-curl-7.63.0-libstubgss-ldadd.patch | 25 --------
curl.spec | 13 ++--
3 files changed, 71 insertions(+), 30 deletions(-)
create mode 100644 0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
delete mode 100644 0105-curl-7.63.0-libstubgss-ldadd.patch
diff --git a/0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch b/0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
new file mode 100644
index 0000000..22868c4
--- /dev/null
+++ b/0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
@@ -0,0 +1,63 @@
+From 510ab52ed43589d96f0fab338eb6286940a29a78 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Thu, 3 Jan 2019 12:00:58 +0100
+Subject: [PATCH] libtest/stub_gssapi: use "real" snprintf
+
+... since it doesn't link with libcurl.
+
+Reverts the commit dcd6f81025 changes from this file.
+
+Bug: https://curl.haxx.se/mail/lib-2019-01/0000.html
+Reported-by: Shlomi Fish
+Reviewed-by: Daniel Gustafsson
+Reviewed-by: Kamil Dudka
+
+Closes #3434
+
+Upstream-commit: c7c362a24c0247644f9fde05e8ea353af4a94b04
+Signed-off-by: Kamil Dudka
+---
+ tests/libtest/stub_gssapi.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/tests/libtest/stub_gssapi.c b/tests/libtest/stub_gssapi.c
+index 254a01b31..377b75452 100644
+--- a/tests/libtest/stub_gssapi.c
++++ b/tests/libtest/stub_gssapi.c
+@@ -5,7 +5,7 @@
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+- * Copyright (C) 2017-2018, Daniel Stenberg, , et al.
++ * Copyright (C) 2017-2019, Daniel Stenberg, , et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+@@ -28,10 +28,7 @@
+
+ #include "stub_gssapi.h"
+
+-#define ENABLE_CURLX_PRINTF
+-/* make the curlx header define all printf() functions to use the curlx_*
+- versions instead */
+-#include "curlx.h" /* from the private lib dir */
++/* !checksrc! disable SNPRINTF all */
+
+ #define MAX_CREDS_LENGTH 250
+ #define APPROX_TOKEN_LEN 250
+@@ -207,8 +204,10 @@ OM_uint32 gss_init_sec_context(OM_uint32 *min,
+ }
+
+ /* Token format: creds:target:type:padding */
+- used = msnprintf(token, length, "%s:%s:%d:", creds,
+- (char *) target_name, ctx->sent);
++ /* Note: this is using the *real* snprintf() and not the curl provided
++ one */
++ used = snprintf(token, length, "%s:%s:%d:", creds,
++ (char *) target_name, ctx->sent);
+
+ if(used >= length) {
+ free(token);
+--
+2.17.2
+
diff --git a/0105-curl-7.63.0-libstubgss-ldadd.patch b/0105-curl-7.63.0-libstubgss-ldadd.patch
deleted file mode 100644
index e87b05b..0000000
--- a/0105-curl-7.63.0-libstubgss-ldadd.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From d8a3bdce7a43cb777866c34d3dabf908254e516d Mon Sep 17 00:00:00 2001
-From: Kamil Dudka
-Date: Wed, 12 Dec 2018 14:25:32 +0100
-Subject: [PATCH] libtest: avoid symbol lookup error in libstubgss.so
-
----
- tests/libtest/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am
-index 56c84a7..117b79f 100644
---- a/tests/libtest/Makefile.am
-+++ b/tests/libtest/Makefile.am
-@@ -123,7 +123,7 @@ libstubgss_la_CFLAGS = $(AM_CFLAGS) -g
-
- libstubgss_la_SOURCES = stub_gssapi.c stub_gssapi.h
-
--libstubgss_la_LIBADD =
-+libstubgss_la_LIBADD = $(top_builddir)/lib/libcurl.la
- libstubgss_la_DEPENDENCIES =
- endif
-
---
-2.17.2
-
diff --git a/curl.spec b/curl.spec
index aaa75a4..fc60ce6 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,16 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.63.0
-Release: 3%{?dist}
+Release: 4%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
# revert an upstream commit that broke `fedpkg new-sources` (#1659329)
Patch1: 0001-curl-7.62.0-http-post-negotiate.patch
+# libtest: avoid symbol lookup error in libstubgss.so
+Patch2: 0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
+
# curl -J: do not append to the destination file (#1658574)
Patch7: 0007-curl-7.63.0-JO-preserve-local-file.patch
@@ -23,9 +26,6 @@ Patch103: 0103-curl-7.59.0-python3.patch
# use localhost6 instead of ip6-localhost in the curl test-suite
Patch104: 0104-curl-7.19.7-localhost6.patch
-# libtest: avoid symbol lookup error in libstubgss.so
-Patch105: 0105-curl-7.63.0-libstubgss-ldadd.patch
-
Provides: curl-full = %{version}-%{release}
Provides: webclient
URL: https://curl.haxx.se/
@@ -175,6 +175,7 @@ be installed.
%patch1 -p1 -R
# upstream patches
+%patch2 -p1
%patch7 -p1
# Fedora patches
@@ -182,7 +183,6 @@ be installed.
%patch102 -p1
%patch103 -p1
%patch104 -p1
-%patch105 -p1
# make tests/*.py use Python 3
sed -e '1 s|^#!/.*python|#!%{__python3}|' -i tests/*.py
@@ -343,6 +343,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Fri Jan 04 2019 Kamil Dudka - 7.63.0-4
+- replace 0105-curl-7.63.0-libstubgss-ldadd.patch by upstream patch
+
* Wed Dec 19 2018 Kamil Dudka - 7.63.0-3
- curl -J: do not append to the destination file (#1658574)
From da8449decdcb41b4b6d51b44e3eae06f831e4327 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 7 Jan 2019 12:39:58 +0100
Subject: [PATCH 007/218] replace 0001-curl-7.62.0-http-post-negotiate.patch by
upstream patch
---
0001-curl-7.62.0-http-post-negotiate.patch | 75 ++++++++++++++--------
curl.spec | 4 +-
2 files changed, 49 insertions(+), 30 deletions(-)
diff --git a/0001-curl-7.62.0-http-post-negotiate.patch b/0001-curl-7.62.0-http-post-negotiate.patch
index a391183..4bb3f0d 100644
--- a/0001-curl-7.62.0-http-post-negotiate.patch
+++ b/0001-curl-7.62.0-http-post-negotiate.patch
@@ -1,69 +1,90 @@
-From be7395e31ae884cfaf87056f400130e3321767b3 Mon Sep 17 00:00:00 2001
-From: Elia Tufarolo
-Date: Tue, 13 Nov 2018 18:30:56 +0100
-Subject: [PATCH] http_negotiate: do not close connection until negotiation is
- completed
+From 46fe12fc1d35b8d2484811b9359f0de72114dee4 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Fri, 4 Jan 2019 23:34:50 +0100
+Subject: [PATCH] Revert "http_negotiate: do not close connection until
+ negotiation is completed"
-Fix HTTP POST using CURLAUTH_NEGOTIATE.
+This reverts commit 07ebaf837843124ee670e5b8c218b80b92e06e47.
-Closes #3275
+This also reopens PR #3275 which brought the change now reverted.
-Upstream-commit: 07ebaf837843124ee670e5b8c218b80b92e06e47
+Fixes #3384
+Closes #3439
+
+Upstream-commit: ebe658c1e5a6577178981a7f406794699305be5c
Signed-off-by: Kamil Dudka
---
- lib/http.c | 1 -
- lib/http_negotiate.c | 8 ++++++++
- 2 files changed, 8 insertions(+), 1 deletion(-)
+ lib/http.c | 3 ++-
+ lib/http_negotiate.c | 10 +---------
+ 2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/lib/http.c b/lib/http.c
-index 46ac15a6e..afc919b09 100644
+index 8866fdf0a..303535af6 100644
--- a/lib/http.c
+++ b/lib/http.c
-@@ -610,7 +610,6 @@ output_auth_headers(struct connectdata *conn,
+@@ -5,7 +5,7 @@
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+- * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al.
++ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+@@ -616,6 +616,7 @@ output_auth_headers(struct connectdata *conn,
result = Curl_output_negotiate(conn, proxy);
if(result)
return result;
-- authstatus->done = TRUE;
++ authstatus->done = TRUE;
negdata->state = GSS_AUTHSENT;
}
else
diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
-index ddcd65b3b..444265d11 100644
+index 444265d11..4713d1bd5 100644
--- a/lib/http_negotiate.c
+++ b/lib/http_negotiate.c
-@@ -49,6 +49,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
+@@ -5,7 +5,7 @@
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+- * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al.
++ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+@@ -49,7 +49,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
/* Point to the correct struct with this */
struct negotiatedata *neg_ctx;
-+ struct auth *authp;
+- struct auth *authp;
if(proxy) {
userp = conn->http_proxy.user;
-@@ -57,6 +58,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
+@@ -58,7 +57,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
data->set.str[STRING_PROXY_SERVICE_NAME] : "HTTP";
host = conn->http_proxy.host.name;
neg_ctx = &data->state.proxyneg;
-+ authp = &conn->data->state.authproxy;
+- authp = &conn->data->state.authproxy;
}
else {
userp = conn->user;
-@@ -65,6 +67,7 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
+@@ -67,7 +65,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
data->set.str[STRING_SERVICE_NAME] : "HTTP";
host = conn->host.name;
neg_ctx = &data->state.negotiate;
-+ authp = &conn->data->state.authhost;
+- authp = &conn->data->state.authhost;
}
/* Not set means empty */
-@@ -95,6 +98,11 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
+@@ -98,11 +95,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
if(result)
Curl_auth_spnego_cleanup(neg_ctx);
-+ else
-+ /* If the status is different than 0 and we encountered no errors
-+ it means we have to continue. 0 is the OK value for both GSSAPI
-+ (GSS_S_COMPLETE) and SSPI (SEC_E_OK) */
-+ authp->done = !neg_ctx->status;
+- else
+- /* If the status is different than 0 and we encountered no errors
+- it means we have to continue. 0 is the OK value for both GSSAPI
+- (GSS_S_COMPLETE) and SSPI (SEC_E_OK) */
+- authp->done = !neg_ctx->status;
return result;
}
diff --git a/curl.spec b/curl.spec
index fc60ce6..f04fb8b 100644
--- a/curl.spec
+++ b/curl.spec
@@ -171,10 +171,8 @@ be installed.
%prep
%setup -q
-# upstream patches to revert
-%patch1 -p1 -R
-
# upstream patches
+%patch1 -p1
%patch2 -p1
%patch7 -p1
From 1a6a3b20a66509e5fad971d6dfb8b33daab8ca60 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 21 Jan 2019 10:13:55 +0100
Subject: [PATCH 008/218] Resolves: CVE-2018-20483 - xattr: strip credentials
from any URL that is stored
---
...xattr-strip-credentials-from-any-URL.patch | 284 ++++++++++++++++++
curl.spec | 9 +-
2 files changed, 292 insertions(+), 1 deletion(-)
create mode 100644 0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch
diff --git a/0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch b/0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch
new file mode 100644
index 0000000..d9fa798
--- /dev/null
+++ b/0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch
@@ -0,0 +1,284 @@
+From 9fa7298750c1d66331dc55a202277b131868c048 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Wed, 2 Jan 2019 20:18:27 +0100
+Subject: [PATCH] xattr: strip credentials from any URL that is stored
+
+Both user and password are cleared uncondtitionally.
+
+Added unit test 1621 to verify.
+
+Fixes #3423
+Closes #3433
+
+Upstream-commit: 98e6629154044e4ab1ee7cff8351c7ebcb131e88
+Signed-off-by: Kamil Dudka
+---
+ src/tool_xattr.c | 63 +++++++++++++++++++++++++----
+ tests/data/Makefile.inc | 2 +-
+ tests/data/test1621 | 27 +++++++++++++
+ tests/unit/Makefile.inc | 6 ++-
+ tests/unit/unit1621.c | 89 +++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 177 insertions(+), 10 deletions(-)
+ create mode 100644 tests/data/test1621
+ create mode 100644 tests/unit/unit1621.c
+
+diff --git a/src/tool_xattr.c b/src/tool_xattr.c
+index 92b99db..730381b 100644
+--- a/src/tool_xattr.c
++++ b/src/tool_xattr.c
+@@ -5,7 +5,7 @@
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+- * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al.
++ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+@@ -49,6 +49,46 @@ static const struct xattr_mapping {
+ { NULL, CURLINFO_NONE } /* last element, abort loop here */
+ };
+
++/* returns TRUE if a new URL is returned, that then needs to be freed */
++/* @unittest: 1621 */
++#ifdef UNITTESTS
++bool stripcredentials(char **url);
++#else
++static
++#endif
++bool stripcredentials(char **url)
++{
++ CURLU *u;
++ CURLUcode uc;
++ char *nurl;
++ u = curl_url();
++ if(u) {
++ uc = curl_url_set(u, CURLUPART_URL, *url, 0);
++ if(uc)
++ goto error;
++
++ uc = curl_url_set(u, CURLUPART_USER, NULL, 0);
++ if(uc)
++ goto error;
++
++ uc = curl_url_set(u, CURLUPART_PASSWORD, NULL, 0);
++ if(uc)
++ goto error;
++
++ uc = curl_url_get(u, CURLUPART_URL, &nurl, 0);
++ if(uc)
++ goto error;
++
++ curl_url_cleanup(u);
++
++ *url = nurl;
++ return TRUE;
++ }
++ error:
++ curl_url_cleanup(u);
++ return FALSE;
++}
++
+ /* store metadata from the curl request alongside the downloaded
+ * file using extended attributes
+ */
+@@ -62,17 +102,24 @@ int fwrite_xattr(CURL *curl, int fd)
+ char *value = NULL;
+ CURLcode result = curl_easy_getinfo(curl, mappings[i].info, &value);
+ if(!result && value) {
++ bool freeptr = FALSE;
++ if(CURLINFO_EFFECTIVE_URL == mappings[i].info)
++ freeptr = stripcredentials(&value);
++ if(value) {
+ #ifdef HAVE_FSETXATTR_6
+- err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0, 0);
++ err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0, 0);
+ #elif defined(HAVE_FSETXATTR_5)
+- err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0);
++ err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0);
+ #elif defined(__FreeBSD_version)
+- err = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, mappings[i].attr, value,
+- strlen(value));
+- /* FreeBSD's extattr_set_fd returns the length of the extended attribute
+- */
+- err = err < 0 ? err : 0;
++ err = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, mappings[i].attr,
++ value, strlen(value));
++ /* FreeBSD's extattr_set_fd returns the length of the extended
++ attribute */
++ err = err < 0 ? err : 0;
+ #endif
++ if(freeptr)
++ curl_free(value);
++ }
+ }
+ i++;
+ }
+diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
+index dd38f89..6172b77 100644
+--- a/tests/data/Makefile.inc
++++ b/tests/data/Makefile.inc
+@@ -180,7 +180,7 @@ test1560 \
+ \
+ test1590 \
+ test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \
+-test1608 test1609 test1620 \
++test1608 test1609 test1620 test1621 \
+ \
+ test1650 test1651 test1652 test1653 \
+ \
+diff --git a/tests/data/test1621 b/tests/data/test1621
+new file mode 100644
+index 0000000..1117d1b
+--- /dev/null
++++ b/tests/data/test1621
+@@ -0,0 +1,27 @@
++
++
++
++unittest
++stripcredentials
++
++
++
++#
++# Client-side
++
++
++none
++
++
++unittest
++https
++
++
++unit tests for stripcredentials from URL
++
++
++unit1621
++
++
++
++
+diff --git a/tests/unit/Makefile.inc b/tests/unit/Makefile.inc
+index 8b1a607..82eaec7 100644
+--- a/tests/unit/Makefile.inc
++++ b/tests/unit/Makefile.inc
+@@ -10,7 +10,7 @@ UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \
+ unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \
+ unit1399 \
+ unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \
+- unit1608 unit1609 unit1620 \
++ unit1608 unit1609 unit1620 unit1621 \
+ unit1650 unit1651 unit1652 unit1653
+
+ unit1300_SOURCES = unit1300.c $(UNITFILES)
+@@ -100,6 +100,10 @@ unit1609_CPPFLAGS = $(AM_CPPFLAGS)
+ unit1620_SOURCES = unit1620.c $(UNITFILES)
+ unit1620_CPPFLAGS = $(AM_CPPFLAGS)
+
++unit1621_SOURCES = unit1621.c $(UNITFILES)
++unit1621_CPPFLAGS = $(AM_CPPFLAGS)
++unit1621_LDADD = $(top_builddir)/src/libcurltool.la $(top_builddir)/lib/libcurl.la
++
+ unit1650_SOURCES = unit1650.c $(UNITFILES)
+ unit1650_CPPFLAGS = $(AM_CPPFLAGS)
+
+diff --git a/tests/unit/unit1621.c b/tests/unit/unit1621.c
+new file mode 100644
+index 0000000..6e07b6e
+--- /dev/null
++++ b/tests/unit/unit1621.c
+@@ -0,0 +1,89 @@
++/***************************************************************************
++ * _ _ ____ _
++ * Project ___| | | | _ \| |
++ * / __| | | | |_) | |
++ * | (__| |_| | _ <| |___
++ * \___|\___/|_| \_\_____|
++ *
++ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
++ *
++ * This software is licensed as described in the file COPYING, which
++ * you should have received as part of this distribution. The terms
++ * are also available at https://curl.haxx.se/docs/copyright.html.
++ *
++ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
++ * copies of the Software, and permit persons to whom the Software is
++ * furnished to do so, under the terms of the COPYING file.
++ *
++ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
++ * KIND, either express or implied.
++ *
++ ***************************************************************************/
++#include "curlcheck.h"
++
++#include "urldata.h"
++#include "url.h"
++
++#include "memdebug.h" /* LAST include file */
++
++static CURLcode unit_setup(void)
++{
++ return CURLE_OK;
++}
++
++static void unit_stop(void)
++{
++}
++
++#ifdef __MINGW32__
++UNITTEST_START
++{
++ return 0;
++}
++UNITTEST_STOP
++#else
++
++bool stripcredentials(char **url);
++
++struct checkthis {
++ const char *input;
++ const char *output;
++};
++
++static struct checkthis tests[] = {
++ { "ninja://foo@example.com", "ninja://foo@example.com" },
++ { "https://foo@example.com", "https://example.com/" },
++ { "https://localhost:45", "https://localhost:45/" },
++ { "https://foo@localhost:45", "https://localhost:45/" },
++ { "http://daniel:password@localhost", "http://localhost/" },
++ { "http://daniel@localhost", "http://localhost/" },
++ { "http://localhost/", "http://localhost/" },
++ { NULL, NULL } /* end marker */
++};
++
++UNITTEST_START
++{
++ bool cleanup;
++ char *url;
++ int i;
++ int rc = 0;
++
++ for(i = 0; tests[i].input; i++) {
++ url = (char *)tests[i].input;
++ cleanup = stripcredentials(&url);
++ printf("Test %u got input \"%s\", output: \"%s\"\n",
++ i, tests[i].input, url);
++
++ if(strcmp(tests[i].output, url)) {
++ fprintf(stderr, "Test %u got input \"%s\", expected output \"%s\"\n"
++ " Actual output: \"%s\"\n", i, tests[i].input, tests[i].output,
++ url);
++ rc++;
++ }
++ if(cleanup)
++ curl_free(url);
++ }
++ return rc;
++}
++UNITTEST_STOP
++#endif
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index f04fb8b..8582a58 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.63.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -14,6 +14,9 @@ Patch2: 0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
# curl -J: do not append to the destination file (#1658574)
Patch7: 0007-curl-7.63.0-JO-preserve-local-file.patch
+# xattr: strip credentials from any URL that is stored (CVE-2018-20483)
+Patch8: 0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -175,6 +178,7 @@ be installed.
%patch1 -p1
%patch2 -p1
%patch7 -p1
+%patch8 -p1
# Fedora patches
%patch101 -p1
@@ -341,6 +345,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Mon Jan 21 2019 Kamil Dudka - 7.63.0-5
+- xattr: strip credentials from any URL that is stored (CVE-2018-20483)
+
* Fri Jan 04 2019 Kamil Dudka - 7.63.0-4
- replace 0105-curl-7.63.0-libstubgss-ldadd.patch by upstream patch
From 9221f774a1e524d8330fb2b72cda15ad83ca1c51 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Thu, 31 Jan 2019 16:37:02 +0000
Subject: [PATCH 009/218] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
curl.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/curl.spec b/curl.spec
index 8582a58..4600a84 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.63.0
-Release: 5%{?dist}
+Release: 6%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -345,6 +345,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Thu Jan 31 2019 Fedora Release Engineering - 7.63.0-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
* Mon Jan 21 2019 Kamil Dudka - 7.63.0-5
- xattr: strip credentials from any URL that is stored (CVE-2018-20483)
From 3c5dec6602592a730cbe3518e9b222bc3d3e4a0b Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 4 Feb 2019 17:45:12 +0100
Subject: [PATCH 010/218] prevent valgrind from reporting false positives on
x86_64
---
0105-curl-7.63.0-lib1560-valgrind.patch | 39 +++++++++++++++++++++++++
curl.spec | 9 +++++-
2 files changed, 47 insertions(+), 1 deletion(-)
create mode 100644 0105-curl-7.63.0-lib1560-valgrind.patch
diff --git a/0105-curl-7.63.0-lib1560-valgrind.patch b/0105-curl-7.63.0-lib1560-valgrind.patch
new file mode 100644
index 0000000..40d0a9b
--- /dev/null
+++ b/0105-curl-7.63.0-lib1560-valgrind.patch
@@ -0,0 +1,39 @@
+From f55cca0e86f59ec11ffafd5c0503c39ca3723e2e Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Mon, 4 Feb 2019 17:32:56 +0100
+Subject: [PATCH] libtest: compile lib1560.c with -fno-builtin-strcmp
+
+... to prevent valgrind from reporting false positives on x86_64:
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x10BCAA: part2id (lib1560.c:489)
+ by 0x10BCAA: updateurl (lib1560.c:521)
+ by 0x10BCAA: set_parts (lib1560.c:630)
+ by 0x10BCAA: test (lib1560.c:802)
+ by 0x4923412: (below main) (in /usr/lib64/libc-2.28.9000.so)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x10BCC3: part2id (lib1560.c:491)
+ by 0x10BCC3: updateurl (lib1560.c:521)
+ by 0x10BCC3: set_parts (lib1560.c:630)
+ by 0x10BCC3: test (lib1560.c:802)
+ by 0x4923412: (below main) (in /usr/lib64/libc-2.28.9000.so)
+---
+ tests/libtest/Makefile.inc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
+index 080421b..ea3b806 100644
+--- a/tests/libtest/Makefile.inc
++++ b/tests/libtest/Makefile.inc
+@@ -516,6 +516,7 @@ lib1557_LDADD = $(TESTUTIL_LIBS)
+ lib1557_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1557
+
+ lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
++lib1560_CFLAGS = $(AM_CFLAGS) -fno-builtin-strcmp
+ lib1560_LDADD = $(TESTUTIL_LIBS)
+
+ lib1900_SOURCES = lib1900.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index 4600a84..ce957f6 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.63.0
-Release: 6%{?dist}
+Release: 7%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -29,6 +29,9 @@ Patch103: 0103-curl-7.59.0-python3.patch
# use localhost6 instead of ip6-localhost in the curl test-suite
Patch104: 0104-curl-7.19.7-localhost6.patch
+# prevent valgrind from reporting false positives on x86_64
+Patch105: 0105-curl-7.63.0-lib1560-valgrind.patch
+
Provides: curl-full = %{version}-%{release}
Provides: webclient
URL: https://curl.haxx.se/
@@ -185,6 +188,7 @@ be installed.
%patch102 -p1
%patch103 -p1
%patch104 -p1
+%patch105 -p1
# make tests/*.py use Python 3
sed -e '1 s|^#!/.*python|#!%{__python3}|' -i tests/*.py
@@ -345,6 +349,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Mon Feb 04 2019 Kamil Dudka - 7.63.0-7
+- prevent valgrind from reporting false positives on x86_64
+
* Thu Jan 31 2019 Fedora Release Engineering - 7.63.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
From 2bdb62413990d788a0e9acad53ca15e9e2aed17f Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 6 Feb 2019 09:51:19 +0100
Subject: [PATCH 011/218] new upstream release - 7.64.0
Resolves: CVE-2019-3823 - SMTP end-of-response out-of-bounds read
Resolves: CVE-2019-3822 - NTLMv2 type-3 header stack buffer overflow
Resolves: CVE-2018-16890 - NTLM type-2 out-of-bounds buffer read
---
0001-curl-7.62.0-http-post-negotiate.patch | 93 ------
...-7.62.0-libtest-stub_gssapi-snprintf.patch | 63 ----
0007-curl-7.63.0-JO-preserve-local-file.patch | 115 -------
...xattr-strip-credentials-from-any-URL.patch | 284 ------------------
0102-curl-7.36.0-debug.patch | 4 +-
0105-curl-7.63.0-lib1560-valgrind.patch | 6 +-
curl-7.63.0.tar.xz.asc | 11 -
curl-7.64.0.tar.xz.asc | 11 +
curl.spec | 26 +-
sources | 2 +-
10 files changed, 25 insertions(+), 590 deletions(-)
delete mode 100644 0001-curl-7.62.0-http-post-negotiate.patch
delete mode 100644 0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
delete mode 100644 0007-curl-7.63.0-JO-preserve-local-file.patch
delete mode 100644 0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch
delete mode 100644 curl-7.63.0.tar.xz.asc
create mode 100644 curl-7.64.0.tar.xz.asc
diff --git a/0001-curl-7.62.0-http-post-negotiate.patch b/0001-curl-7.62.0-http-post-negotiate.patch
deleted file mode 100644
index 4bb3f0d..0000000
--- a/0001-curl-7.62.0-http-post-negotiate.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 46fe12fc1d35b8d2484811b9359f0de72114dee4 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Fri, 4 Jan 2019 23:34:50 +0100
-Subject: [PATCH] Revert "http_negotiate: do not close connection until
- negotiation is completed"
-
-This reverts commit 07ebaf837843124ee670e5b8c218b80b92e06e47.
-
-This also reopens PR #3275 which brought the change now reverted.
-
-Fixes #3384
-Closes #3439
-
-Upstream-commit: ebe658c1e5a6577178981a7f406794699305be5c
-Signed-off-by: Kamil Dudka
----
- lib/http.c | 3 ++-
- lib/http_negotiate.c | 10 +---------
- 2 files changed, 3 insertions(+), 10 deletions(-)
-
-diff --git a/lib/http.c b/lib/http.c
-index 8866fdf0a..303535af6 100644
---- a/lib/http.c
-+++ b/lib/http.c
-@@ -5,7 +5,7 @@
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
-- * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al.
-+ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
-@@ -616,6 +616,7 @@ output_auth_headers(struct connectdata *conn,
- result = Curl_output_negotiate(conn, proxy);
- if(result)
- return result;
-+ authstatus->done = TRUE;
- negdata->state = GSS_AUTHSENT;
- }
- else
-diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
-index 444265d11..4713d1bd5 100644
---- a/lib/http_negotiate.c
-+++ b/lib/http_negotiate.c
-@@ -5,7 +5,7 @@
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
-- * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al.
-+ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
-@@ -49,7 +49,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
-
- /* Point to the correct struct with this */
- struct negotiatedata *neg_ctx;
-- struct auth *authp;
-
- if(proxy) {
- userp = conn->http_proxy.user;
-@@ -58,7 +57,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
- data->set.str[STRING_PROXY_SERVICE_NAME] : "HTTP";
- host = conn->http_proxy.host.name;
- neg_ctx = &data->state.proxyneg;
-- authp = &conn->data->state.authproxy;
- }
- else {
- userp = conn->user;
-@@ -67,7 +65,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
- data->set.str[STRING_SERVICE_NAME] : "HTTP";
- host = conn->host.name;
- neg_ctx = &data->state.negotiate;
-- authp = &conn->data->state.authhost;
- }
-
- /* Not set means empty */
-@@ -98,11 +95,6 @@ CURLcode Curl_input_negotiate(struct connectdata *conn, bool proxy,
-
- if(result)
- Curl_auth_spnego_cleanup(neg_ctx);
-- else
-- /* If the status is different than 0 and we encountered no errors
-- it means we have to continue. 0 is the OK value for both GSSAPI
-- (GSS_S_COMPLETE) and SSPI (SEC_E_OK) */
-- authp->done = !neg_ctx->status;
-
- return result;
- }
---
-2.20.0
-
diff --git a/0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch b/0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
deleted file mode 100644
index 22868c4..0000000
--- a/0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 510ab52ed43589d96f0fab338eb6286940a29a78 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Thu, 3 Jan 2019 12:00:58 +0100
-Subject: [PATCH] libtest/stub_gssapi: use "real" snprintf
-
-... since it doesn't link with libcurl.
-
-Reverts the commit dcd6f81025 changes from this file.
-
-Bug: https://curl.haxx.se/mail/lib-2019-01/0000.html
-Reported-by: Shlomi Fish
-Reviewed-by: Daniel Gustafsson
-Reviewed-by: Kamil Dudka
-
-Closes #3434
-
-Upstream-commit: c7c362a24c0247644f9fde05e8ea353af4a94b04
-Signed-off-by: Kamil Dudka
----
- tests/libtest/stub_gssapi.c | 13 ++++++-------
- 1 file changed, 6 insertions(+), 7 deletions(-)
-
-diff --git a/tests/libtest/stub_gssapi.c b/tests/libtest/stub_gssapi.c
-index 254a01b31..377b75452 100644
---- a/tests/libtest/stub_gssapi.c
-+++ b/tests/libtest/stub_gssapi.c
-@@ -5,7 +5,7 @@
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
-- * Copyright (C) 2017-2018, Daniel Stenberg, , et al.
-+ * Copyright (C) 2017-2019, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
-@@ -28,10 +28,7 @@
-
- #include "stub_gssapi.h"
-
--#define ENABLE_CURLX_PRINTF
--/* make the curlx header define all printf() functions to use the curlx_*
-- versions instead */
--#include "curlx.h" /* from the private lib dir */
-+/* !checksrc! disable SNPRINTF all */
-
- #define MAX_CREDS_LENGTH 250
- #define APPROX_TOKEN_LEN 250
-@@ -207,8 +204,10 @@ OM_uint32 gss_init_sec_context(OM_uint32 *min,
- }
-
- /* Token format: creds:target:type:padding */
-- used = msnprintf(token, length, "%s:%s:%d:", creds,
-- (char *) target_name, ctx->sent);
-+ /* Note: this is using the *real* snprintf() and not the curl provided
-+ one */
-+ used = snprintf(token, length, "%s:%s:%d:", creds,
-+ (char *) target_name, ctx->sent);
-
- if(used >= length) {
- free(token);
---
-2.17.2
-
diff --git a/0007-curl-7.63.0-JO-preserve-local-file.patch b/0007-curl-7.63.0-JO-preserve-local-file.patch
deleted file mode 100644
index 12ac53e..0000000
--- a/0007-curl-7.63.0-JO-preserve-local-file.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From ff74657fb645e7175971128a171ef7d5ece40d77 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Mon, 17 Dec 2018 12:51:51 +0100
-Subject: [PATCH] curl -J: do not append to the destination file
-
-Reported-by: Kamil Dudka
-Fixes #3380
-Closes #3381
-
-Upstream-commit: 4849267197682e69cfa056c2bd7a44acd123a917
-Signed-off-by: Kamil Dudka
----
- src/tool_cb_hdr.c | 6 +++---
- src/tool_cb_wrt.c | 9 ++++-----
- src/tool_cb_wrt.h | 2 +-
- src/tool_operate.c | 2 +-
- 4 files changed, 9 insertions(+), 10 deletions(-)
-
-diff --git a/src/tool_cb_hdr.c b/src/tool_cb_hdr.c
-index 84b0d9c..3844904 100644
---- a/src/tool_cb_hdr.c
-+++ b/src/tool_cb_hdr.c
-@@ -157,12 +157,12 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
- outs->filename = filename;
- outs->alloc_filename = TRUE;
- hdrcbdata->honor_cd_filename = FALSE; /* done now! */
-- if(!tool_create_output_file(outs, TRUE))
-+ if(!tool_create_output_file(outs))
- return failure;
- }
- break;
- }
-- if(!outs->stream && !tool_create_output_file(outs, FALSE))
-+ if(!outs->stream && !tool_create_output_file(outs))
- return failure;
- }
-
-@@ -172,7 +172,7 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
- /* bold headers only for selected protocols */
- char *value = NULL;
-
-- if(!outs->stream && !tool_create_output_file(outs, FALSE))
-+ if(!outs->stream && !tool_create_output_file(outs))
- return failure;
-
- if(hdrcbdata->global->isatty && hdrcbdata->global->styled_output)
-diff --git a/src/tool_cb_wrt.c b/src/tool_cb_wrt.c
-index 2cb5e1b..195d6e7 100644
---- a/src/tool_cb_wrt.c
-+++ b/src/tool_cb_wrt.c
-@@ -32,8 +32,7 @@
- #include "memdebug.h" /* keep this as LAST include */
-
- /* create a local file for writing, return TRUE on success */
--bool tool_create_output_file(struct OutStruct *outs,
-- bool append)
-+bool tool_create_output_file(struct OutStruct *outs)
- {
- struct GlobalConfig *global = outs->config->global;
- FILE *file;
-@@ -43,7 +42,7 @@ bool tool_create_output_file(struct OutStruct *outs,
- return FALSE;
- }
-
-- if(outs->is_cd_filename && !append) {
-+ if(outs->is_cd_filename) {
- /* don't overwrite existing files */
- file = fopen(outs->filename, "rb");
- if(file) {
-@@ -55,7 +54,7 @@ bool tool_create_output_file(struct OutStruct *outs,
- }
-
- /* open file for writing */
-- file = fopen(outs->filename, append?"ab":"wb");
-+ file = fopen(outs->filename, "wb");
- if(!file) {
- warnf(global, "Failed to create the file %s: %s\n", outs->filename,
- strerror(errno));
-@@ -142,7 +141,7 @@ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
- }
- #endif
-
-- if(!outs->stream && !tool_create_output_file(outs, FALSE))
-+ if(!outs->stream && !tool_create_output_file(outs))
- return failure;
-
- if(is_tty && (outs->bytes < 2000) && !config->terminal_binary_ok) {
-diff --git a/src/tool_cb_wrt.h b/src/tool_cb_wrt.h
-index 51e002b..188d3ea 100644
---- a/src/tool_cb_wrt.h
-+++ b/src/tool_cb_wrt.h
-@@ -30,6 +30,6 @@
- size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata);
-
- /* create a local file for writing, return TRUE on success */
--bool tool_create_output_file(struct OutStruct *outs, bool append);
-+bool tool_create_output_file(struct OutStruct *outs);
-
- #endif /* HEADER_CURL_TOOL_CB_WRT_H */
-diff --git a/src/tool_operate.c b/src/tool_operate.c
-index e53a9d8..429e9cf 100644
---- a/src/tool_operate.c
-+++ b/src/tool_operate.c
-@@ -1583,7 +1583,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
- /* do not create (or even overwrite) the file in case we get no
- data because of unmet condition */
- curl_easy_getinfo(curl, CURLINFO_CONDITION_UNMET, &cond_unmet);
-- if(!cond_unmet && !tool_create_output_file(&outs, FALSE))
-+ if(!cond_unmet && !tool_create_output_file(&outs))
- result = CURLE_WRITE_ERROR;
- }
-
---
-2.17.2
-
diff --git a/0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch b/0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch
deleted file mode 100644
index d9fa798..0000000
--- a/0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch
+++ /dev/null
@@ -1,284 +0,0 @@
-From 9fa7298750c1d66331dc55a202277b131868c048 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Wed, 2 Jan 2019 20:18:27 +0100
-Subject: [PATCH] xattr: strip credentials from any URL that is stored
-
-Both user and password are cleared uncondtitionally.
-
-Added unit test 1621 to verify.
-
-Fixes #3423
-Closes #3433
-
-Upstream-commit: 98e6629154044e4ab1ee7cff8351c7ebcb131e88
-Signed-off-by: Kamil Dudka
----
- src/tool_xattr.c | 63 +++++++++++++++++++++++++----
- tests/data/Makefile.inc | 2 +-
- tests/data/test1621 | 27 +++++++++++++
- tests/unit/Makefile.inc | 6 ++-
- tests/unit/unit1621.c | 89 +++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 177 insertions(+), 10 deletions(-)
- create mode 100644 tests/data/test1621
- create mode 100644 tests/unit/unit1621.c
-
-diff --git a/src/tool_xattr.c b/src/tool_xattr.c
-index 92b99db..730381b 100644
---- a/src/tool_xattr.c
-+++ b/src/tool_xattr.c
-@@ -5,7 +5,7 @@
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
-- * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al.
-+ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
-@@ -49,6 +49,46 @@ static const struct xattr_mapping {
- { NULL, CURLINFO_NONE } /* last element, abort loop here */
- };
-
-+/* returns TRUE if a new URL is returned, that then needs to be freed */
-+/* @unittest: 1621 */
-+#ifdef UNITTESTS
-+bool stripcredentials(char **url);
-+#else
-+static
-+#endif
-+bool stripcredentials(char **url)
-+{
-+ CURLU *u;
-+ CURLUcode uc;
-+ char *nurl;
-+ u = curl_url();
-+ if(u) {
-+ uc = curl_url_set(u, CURLUPART_URL, *url, 0);
-+ if(uc)
-+ goto error;
-+
-+ uc = curl_url_set(u, CURLUPART_USER, NULL, 0);
-+ if(uc)
-+ goto error;
-+
-+ uc = curl_url_set(u, CURLUPART_PASSWORD, NULL, 0);
-+ if(uc)
-+ goto error;
-+
-+ uc = curl_url_get(u, CURLUPART_URL, &nurl, 0);
-+ if(uc)
-+ goto error;
-+
-+ curl_url_cleanup(u);
-+
-+ *url = nurl;
-+ return TRUE;
-+ }
-+ error:
-+ curl_url_cleanup(u);
-+ return FALSE;
-+}
-+
- /* store metadata from the curl request alongside the downloaded
- * file using extended attributes
- */
-@@ -62,17 +102,24 @@ int fwrite_xattr(CURL *curl, int fd)
- char *value = NULL;
- CURLcode result = curl_easy_getinfo(curl, mappings[i].info, &value);
- if(!result && value) {
-+ bool freeptr = FALSE;
-+ if(CURLINFO_EFFECTIVE_URL == mappings[i].info)
-+ freeptr = stripcredentials(&value);
-+ if(value) {
- #ifdef HAVE_FSETXATTR_6
-- err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0, 0);
-+ err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0, 0);
- #elif defined(HAVE_FSETXATTR_5)
-- err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0);
-+ err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0);
- #elif defined(__FreeBSD_version)
-- err = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, mappings[i].attr, value,
-- strlen(value));
-- /* FreeBSD's extattr_set_fd returns the length of the extended attribute
-- */
-- err = err < 0 ? err : 0;
-+ err = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, mappings[i].attr,
-+ value, strlen(value));
-+ /* FreeBSD's extattr_set_fd returns the length of the extended
-+ attribute */
-+ err = err < 0 ? err : 0;
- #endif
-+ if(freeptr)
-+ curl_free(value);
-+ }
- }
- i++;
- }
-diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
-index dd38f89..6172b77 100644
---- a/tests/data/Makefile.inc
-+++ b/tests/data/Makefile.inc
-@@ -180,7 +180,7 @@ test1560 \
- \
- test1590 \
- test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \
--test1608 test1609 test1620 \
-+test1608 test1609 test1620 test1621 \
- \
- test1650 test1651 test1652 test1653 \
- \
-diff --git a/tests/data/test1621 b/tests/data/test1621
-new file mode 100644
-index 0000000..1117d1b
---- /dev/null
-+++ b/tests/data/test1621
-@@ -0,0 +1,27 @@
-+
-+
-+
-+unittest
-+stripcredentials
-+
-+
-+
-+#
-+# Client-side
-+
-+
-+none
-+
-+
-+unittest
-+https
-+
-+
-+unit tests for stripcredentials from URL
-+
-+
-+unit1621
-+
-+
-+
-+
-diff --git a/tests/unit/Makefile.inc b/tests/unit/Makefile.inc
-index 8b1a607..82eaec7 100644
---- a/tests/unit/Makefile.inc
-+++ b/tests/unit/Makefile.inc
-@@ -10,7 +10,7 @@ UNITPROGS = unit1300 unit1301 unit1302 unit1303 unit1304 unit1305 unit1307 \
- unit1330 unit1394 unit1395 unit1396 unit1397 unit1398 \
- unit1399 \
- unit1600 unit1601 unit1602 unit1603 unit1604 unit1605 unit1606 unit1607 \
-- unit1608 unit1609 unit1620 \
-+ unit1608 unit1609 unit1620 unit1621 \
- unit1650 unit1651 unit1652 unit1653
-
- unit1300_SOURCES = unit1300.c $(UNITFILES)
-@@ -100,6 +100,10 @@ unit1609_CPPFLAGS = $(AM_CPPFLAGS)
- unit1620_SOURCES = unit1620.c $(UNITFILES)
- unit1620_CPPFLAGS = $(AM_CPPFLAGS)
-
-+unit1621_SOURCES = unit1621.c $(UNITFILES)
-+unit1621_CPPFLAGS = $(AM_CPPFLAGS)
-+unit1621_LDADD = $(top_builddir)/src/libcurltool.la $(top_builddir)/lib/libcurl.la
-+
- unit1650_SOURCES = unit1650.c $(UNITFILES)
- unit1650_CPPFLAGS = $(AM_CPPFLAGS)
-
-diff --git a/tests/unit/unit1621.c b/tests/unit/unit1621.c
-new file mode 100644
-index 0000000..6e07b6e
---- /dev/null
-+++ b/tests/unit/unit1621.c
-@@ -0,0 +1,89 @@
-+/***************************************************************************
-+ * _ _ ____ _
-+ * Project ___| | | | _ \| |
-+ * / __| | | | |_) | |
-+ * | (__| |_| | _ <| |___
-+ * \___|\___/|_| \_\_____|
-+ *
-+ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
-+ *
-+ * This software is licensed as described in the file COPYING, which
-+ * you should have received as part of this distribution. The terms
-+ * are also available at https://curl.haxx.se/docs/copyright.html.
-+ *
-+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
-+ * copies of the Software, and permit persons to whom the Software is
-+ * furnished to do so, under the terms of the COPYING file.
-+ *
-+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-+ * KIND, either express or implied.
-+ *
-+ ***************************************************************************/
-+#include "curlcheck.h"
-+
-+#include "urldata.h"
-+#include "url.h"
-+
-+#include "memdebug.h" /* LAST include file */
-+
-+static CURLcode unit_setup(void)
-+{
-+ return CURLE_OK;
-+}
-+
-+static void unit_stop(void)
-+{
-+}
-+
-+#ifdef __MINGW32__
-+UNITTEST_START
-+{
-+ return 0;
-+}
-+UNITTEST_STOP
-+#else
-+
-+bool stripcredentials(char **url);
-+
-+struct checkthis {
-+ const char *input;
-+ const char *output;
-+};
-+
-+static struct checkthis tests[] = {
-+ { "ninja://foo@example.com", "ninja://foo@example.com" },
-+ { "https://foo@example.com", "https://example.com/" },
-+ { "https://localhost:45", "https://localhost:45/" },
-+ { "https://foo@localhost:45", "https://localhost:45/" },
-+ { "http://daniel:password@localhost", "http://localhost/" },
-+ { "http://daniel@localhost", "http://localhost/" },
-+ { "http://localhost/", "http://localhost/" },
-+ { NULL, NULL } /* end marker */
-+};
-+
-+UNITTEST_START
-+{
-+ bool cleanup;
-+ char *url;
-+ int i;
-+ int rc = 0;
-+
-+ for(i = 0; tests[i].input; i++) {
-+ url = (char *)tests[i].input;
-+ cleanup = stripcredentials(&url);
-+ printf("Test %u got input \"%s\", output: \"%s\"\n",
-+ i, tests[i].input, url);
-+
-+ if(strcmp(tests[i].output, url)) {
-+ fprintf(stderr, "Test %u got input \"%s\", expected output \"%s\"\n"
-+ " Actual output: \"%s\"\n", i, tests[i].input, tests[i].output,
-+ url);
-+ rc++;
-+ }
-+ if(cleanup)
-+ curl_free(url);
-+ }
-+ return rc;
-+}
-+UNITTEST_STOP
-+#endif
---
-2.17.2
-
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index 60de5b3..57c05c6 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16415,18 +16415,11 @@ $as_echo "yes" >&6; }
+@@ -16250,18 +16250,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
@@ -38,7 +38,7 @@ diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index 0cbba7a..9175b5b 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
-@@ -157,18 +157,11 @@ AC_DEFUN([CURL_CHECK_COMPILER_GNU_C], [
+@@ -166,18 +166,11 @@ AC_DEFUN([CURL_CHECK_COMPILER_GNU_C], [
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/0105-curl-7.63.0-lib1560-valgrind.patch b/0105-curl-7.63.0-lib1560-valgrind.patch
index 40d0a9b..003655c 100644
--- a/0105-curl-7.63.0-lib1560-valgrind.patch
+++ b/0105-curl-7.63.0-lib1560-valgrind.patch
@@ -26,14 +26,14 @@ diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 080421b..ea3b806 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
-@@ -516,6 +516,7 @@ lib1557_LDADD = $(TESTUTIL_LIBS)
- lib1557_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1557
+@@ -521,6 +521,7 @@ lib1558_SOURCES = lib1558.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+ lib1558_LDADD = $(TESTUTIL_LIBS)
lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+lib1560_CFLAGS = $(AM_CFLAGS) -fno-builtin-strcmp
lib1560_LDADD = $(TESTUTIL_LIBS)
- lib1900_SOURCES = lib1900.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+ lib1591_SOURCES = lib1591.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
--
2.17.2
diff --git a/curl-7.63.0.tar.xz.asc b/curl-7.63.0.tar.xz.asc
deleted file mode 100644
index 1dd44ac..0000000
--- a/curl-7.63.0.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlwQtYIACgkQXMkI/bce
-EsKPHgf/RhfKPvl1Q8ftuEOXakF/ZIvINukj49vOMFmfQRHfmGWh5ajaGj0qVF6x
-U5HtrDoFOP5m74tj6jrzr2Ala/HGeyZmiTWwRLMgu+Tvq4djIv2pzZUJpgawJS52
-LCb2DUS2F+E1AsZQYvyliYA+r2FO2RRX1kbwdu+0RyuFy5WmWwkI02VahAIYV48o
-44IqtXshxfSAlfEqQ8MgXtU1KW0SWtfKVP2HpsurugjGyknoXxHP7yoDMgDAkMk0
-fNYyPDZbUXXN+6Oyo4Xh8rz4dpVLBkIoCZb4WG2pFZSrfP2+FTL5/vRo/tUyjFfv
-2LHmDUOOFH3VMwMYlnMCgaaXG7/jtg==
-=TkSP
------END PGP SIGNATURE-----
diff --git a/curl-7.64.0.tar.xz.asc b/curl-7.64.0.tar.xz.asc
new file mode 100644
index 0000000..21f7542
--- /dev/null
+++ b/curl-7.64.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlxahccACgkQXMkI/bce
+EsKdrAf+OoNH+Yz1HfJG5MtmEi2sgRC56iAvZBQujPG8SJYGnT3D2nLiuC2+bzA8
+eMCqisodW5f6lV/9JRvLmLS0dhxAfdf/NHlMOdtgSv+NzVGsggpHeYEZ7HucRHsQ
+AKZ6/wx7rby8yZqrn2s7yWWB0qgiajWx30r+CJEYXpuw+YwZ2qZo5ecM7fa/J9ko
+ESwb7BLF6KMkdSz1wSApwCdznB/BXOaPrUBMiOcwO7ftq/t1ZmqnUWLtdlSp8OoH
+Tw832H1kCP2OFHcOFTQmZJLagRQtLBhC522wNsagXaMwak6uhoFApcAPqoPdm4Pm
+PvTO6aAopZk+sX9VemdSQzx/4ysT3w==
+=HOlc
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index ce957f6..1a410f0 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,22 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.63.0
-Release: 7%{?dist}
+Version: 7.64.0
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# revert an upstream commit that broke `fedpkg new-sources` (#1659329)
-Patch1: 0001-curl-7.62.0-http-post-negotiate.patch
-
-# libtest: avoid symbol lookup error in libstubgss.so
-Patch2: 0002-curl-7.62.0-libtest-stub_gssapi-snprintf.patch
-
-# curl -J: do not append to the destination file (#1658574)
-Patch7: 0007-curl-7.63.0-JO-preserve-local-file.patch
-
-# xattr: strip credentials from any URL that is stored (CVE-2018-20483)
-Patch8: 0008-curl-7.63.0-xattr-strip-credentials-from-any-URL.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -178,10 +166,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
-%patch2 -p1
-%patch7 -p1
-%patch8 -p1
# Fedora patches
%patch101 -p1
@@ -349,6 +333,12 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Feb 06 2019 Kamil Dudka - 7.64.0-1
+- new upstream release, which fixes the following vulnerabilities
+ CVE-2019-3823 - SMTP end-of-response out-of-bounds read
+ CVE-2019-3822 - NTLMv2 type-3 header stack buffer overflow
+ CVE-2018-16890 - NTLM type-2 out-of-bounds buffer read
+
* Mon Feb 04 2019 Kamil Dudka - 7.63.0-7
- prevent valgrind from reporting false positives on x86_64
diff --git a/sources b/sources
index c40ff26..d5662be 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.63.0.tar.xz) = c905eb157c6b0093f1b1a506e4782b83af423fd6de1ce0ab5372164a686ef292ffb10d7999d3dec2de602f63ee41b65e1a1008409dd8c959a597644c0ecb395b
+SHA512 (curl-7.64.0.tar.xz) = 953f1f5336ce5dfd1b9f933624432d401552d91ee02d39ecde6f023c956f99ec6aae8d7746d7c34b6eb2d6452f114e67da4e64d9c8dd90b7644b7844e7b9b423
From 9ace613273f52bce8206116b7ab8fb040f7199a1 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 11 Feb 2019 13:22:07 +0100
Subject: [PATCH 012/218] make zsh completion work again
---
0001-curl-7.64.0-zsh-completion.patch | 76 +++++++++++++++++++++++++++
curl.spec | 9 +++-
2 files changed, 84 insertions(+), 1 deletion(-)
create mode 100644 0001-curl-7.64.0-zsh-completion.patch
diff --git a/0001-curl-7.64.0-zsh-completion.patch b/0001-curl-7.64.0-zsh-completion.patch
new file mode 100644
index 0000000..770a15b
--- /dev/null
+++ b/0001-curl-7.64.0-zsh-completion.patch
@@ -0,0 +1,76 @@
+From 082034e2334b2d0795b2b324ff3e0635bb7d2b86 Mon Sep 17 00:00:00 2001
+From: Alessandro Ghedini
+Date: Tue, 5 Feb 2019 20:44:14 +0000
+Subject: [PATCH 1/2] zsh.pl: update regex to better match curl -h output
+
+The current regex fails to match '<...>' arguments properly (e.g. those
+with spaces in them), which causes an completion script with wrong
+descriptions for some options.
+
+The problem can be reproduced as follows:
+
+% curl --reso
+
+Upstream-commit: dbd32f3241b297b96ee11a51da1a661f528ca026
+Signed-off-by: Kamil Dudka
+---
+ scripts/zsh.pl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/zsh.pl b/scripts/zsh.pl
+index 1257190..941b322 100755
+--- a/scripts/zsh.pl
++++ b/scripts/zsh.pl
+@@ -7,7 +7,7 @@ use warnings;
+
+ my $curl = $ARGV[0] || 'curl';
+
+-my $regex = '\s+(?:(-[^\s]+),\s)?(--[^\s]+)\s([^\s.]+)?\s+(.*)';
++my $regex = '\s+(?:(-[^\s]+),\s)?(--[^\s]+)\s*(\<.+?\>)?\s+(.*)';
+ my @opts = parse_main_opts('--help', $regex);
+
+ my $opts_str;
+--
+2.17.2
+
+
+From 45abc785e101346f19599aa5f9fa1617e525ec4d Mon Sep 17 00:00:00 2001
+From: Alessandro Ghedini
+Date: Tue, 5 Feb 2019 21:06:26 +0000
+Subject: [PATCH 2/2] zsh.pl: escape ':' character
+
+':' is interpreted as separator by zsh, so if used as part of the argument
+or option's description it needs to be escaped.
+
+The problem can be reproduced as follows:
+
+% curl -E
+
+Bug: https://bugs.debian.org/921452
+
+Upstream-commit: b3cc8017b7364f588365be2b2629c49c142efdb7
+Signed-off-by: Kamil Dudka
+---
+ scripts/zsh.pl | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/scripts/zsh.pl b/scripts/zsh.pl
+index 941b322..0f9cbec 100755
+--- a/scripts/zsh.pl
++++ b/scripts/zsh.pl
+@@ -45,9 +45,12 @@ sub parse_main_opts {
+
+ my $option = '';
+
++ $arg =~ s/\:/\\\:/g if defined $arg;
++
+ $desc =~ s/'/'\\''/g if defined $desc;
+ $desc =~ s/\[/\\\[/g if defined $desc;
+ $desc =~ s/\]/\\\]/g if defined $desc;
++ $desc =~ s/\:/\\\:/g if defined $desc;
+
+ $option .= '{' . trim($short) . ',' if defined $short;
+ $option .= trim($long) if defined $long;
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index 1a410f0..3c8279d 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,10 +1,13 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.64.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# make zsh completion work again
+Patch1: 0001-curl-7.64.0-zsh-completion.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -166,6 +169,7 @@ be installed.
%setup -q
# upstream patches
+%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -333,6 +337,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Mon Feb 11 2019 Kamil Dudka - 7.64.0-2
+- make zsh completion work again
+
* Wed Feb 06 2019 Kamil Dudka - 7.64.0-1
- new upstream release, which fixes the following vulnerabilities
CVE-2019-3823 - SMTP end-of-response out-of-bounds read
From e97fdf9b7f8dfd53c0604b87a8be9678ca548434 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 25 Feb 2019 14:24:32 +0100
Subject: [PATCH 013/218] Resolves: #1680198 - prevent NetworkManager from
leaking file descriptors
---
0002-curl-7.64.0-nm-fd-leak.patch | 162 ++++++++++++++++++++++++++++++
curl.spec | 9 +-
2 files changed, 170 insertions(+), 1 deletion(-)
create mode 100644 0002-curl-7.64.0-nm-fd-leak.patch
diff --git a/0002-curl-7.64.0-nm-fd-leak.patch b/0002-curl-7.64.0-nm-fd-leak.patch
new file mode 100644
index 0000000..681e58f
--- /dev/null
+++ b/0002-curl-7.64.0-nm-fd-leak.patch
@@ -0,0 +1,162 @@
+From 377101f138873bfa481785cb7d04c326006f0b5d Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Mon, 11 Feb 2019 07:56:00 +0100
+Subject: [PATCH 1/3] connection_check: set ->data to the transfer doing the
+ check
+
+The http2 code for connection checking needs a transfer to use. Make
+sure a working one is set before handler->connection_check() is called.
+
+Reported-by: jnbr on github
+Fixes #3541
+Closes #3547
+
+Upstream-commit: 38d8e1bd4ed1ae52930ae466ecbac78e888b142f
+Signed-off-by: Kamil Dudka
+---
+ lib/url.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/url.c b/lib/url.c
+index d5a9820..229c655 100644
+--- a/lib/url.c
++++ b/lib/url.c
+@@ -965,6 +965,7 @@ static bool extract_if_dead(struct connectdata *conn,
+ /* The protocol has a special method for checking the state of the
+ connection. Use it to check if the connection is dead. */
+ unsigned int state;
++ conn->data = data; /* use this transfer for now */
+ state = conn->handler->connection_check(conn, CONNCHECK_ISDEAD);
+ dead = (state & CONNRESULT_DEAD);
+ }
+--
+2.17.2
+
+
+From 287f5d70395b3833f8901a57b29a48b87d84a9fe Mon Sep 17 00:00:00 2001
+From: Jay Satiro
+Date: Mon, 11 Feb 2019 23:00:00 -0500
+Subject: [PATCH 2/3] connection_check: restore original conn->data after the
+ check
+
+- Save the original conn->data before it's changed to the specified
+ data transfer for the connection check and then restore it afterwards.
+
+This is a follow-up to 38d8e1b 2019-02-11.
+
+History:
+
+It was discovered a month ago that before checking whether to extract a
+dead connection that that connection should be associated with a "live"
+transfer for the check (ie original conn->data ignored and set to the
+passed in data). A fix was landed in 54b201b which did that and also
+cleared conn->data after the check. The original conn->data was not
+restored, so presumably it was thought that a valid conn->data was no
+longer needed.
+
+Several days later it was discovered that a valid conn->data was needed
+after the check and follow-up fix was landed in bbae24c which partially
+reverted the original fix and attempted to limit the scope of when
+conn->data was changed to only when pruning dead connections. In that
+case conn->data was not cleared and the original conn->data not
+restored.
+
+A month later it was discovered that the original fix was somewhat
+correct; a "live" transfer is needed for the check in all cases
+because original conn->data could be null which could cause a bad deref
+at arbitrary points in the check. A fix was landed in 38d8e1b which
+expanded the scope to all cases. conn->data was not cleared and the
+original conn->data not restored.
+
+A day later it was discovered that not restoring the original conn->data
+may lead to busy loops in applications that use the event interface, and
+given this observation it's a pretty safe assumption that there is some
+code path that still needs the original conn->data. This commit is the
+follow-up fix for that, it restores the original conn->data after the
+connection check.
+
+Assisted-by: tholin@users.noreply.github.com
+Reported-by: tholin@users.noreply.github.com
+
+Fixes https://github.com/curl/curl/issues/3542
+Closes #3559
+
+Upstream-commit: 4015fae044ce52a639c9358e22a9e948f287c89f
+Signed-off-by: Kamil Dudka
+---
+ lib/url.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lib/url.c b/lib/url.c
+index 229c655..a77e92d 100644
+--- a/lib/url.c
++++ b/lib/url.c
+@@ -965,8 +965,10 @@ static bool extract_if_dead(struct connectdata *conn,
+ /* The protocol has a special method for checking the state of the
+ connection. Use it to check if the connection is dead. */
+ unsigned int state;
++ struct Curl_easy *olddata = conn->data;
+ conn->data = data; /* use this transfer for now */
+ state = conn->handler->connection_check(conn, CONNCHECK_ISDEAD);
++ conn->data = olddata;
+ dead = (state & CONNRESULT_DEAD);
+ }
+ else {
+@@ -995,7 +997,6 @@ struct prunedead {
+ static int call_extract_if_dead(struct connectdata *conn, void *param)
+ {
+ struct prunedead *p = (struct prunedead *)param;
+- conn->data = p->data; /* transfer to use for this check */
+ if(extract_if_dead(conn, p->data)) {
+ /* stop the iteration here, pass back the connection that was extracted */
+ p->extracted = conn;
+--
+2.17.2
+
+
+From 15e3f2eef87bff1210f43921cb15f03c68be59f7 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Tue, 19 Feb 2019 15:56:54 +0100
+Subject: [PATCH 3/3] singlesocket: fix the 'sincebefore' placement
+
+The variable wasn't properly reset within the loop and thus could remain
+set for sockets that hadn't been set before and miss notifying the app.
+
+This is a follow-up to 4c35574 (shipped in curl 7.64.0)
+
+Reported-by: buzo-ffm on github
+Detected-by: Jan Alexander Steffens
+Fixes #3585
+Closes #3589
+
+Upstream-commit: afc00e047c773faeaa60a5f86a246cbbeeba5819
+Signed-off-by: Kamil Dudka
+---
+ lib/multi.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/multi.c b/lib/multi.c
+index 130226f..28f4c47 100644
+--- a/lib/multi.c
++++ b/lib/multi.c
+@@ -2360,8 +2360,6 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
+ int num;
+ unsigned int curraction;
+ int actions[MAX_SOCKSPEREASYHANDLE];
+- unsigned int comboaction;
+- bool sincebefore = FALSE;
+
+ for(i = 0; i< MAX_SOCKSPEREASYHANDLE; i++)
+ socks[i] = CURL_SOCKET_BAD;
+@@ -2380,6 +2378,8 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
+ i++) {
+ unsigned int action = CURL_POLL_NONE;
+ unsigned int prevaction = 0;
++ unsigned int comboaction;
++ bool sincebefore = FALSE;
+
+ s = socks[i];
+
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index 3c8279d..834c964 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,16 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.64.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
# make zsh completion work again
Patch1: 0001-curl-7.64.0-zsh-completion.patch
+# prevent NetworkManager from leaking file descriptors (#1680198)
+Patch2: 0002-curl-7.64.0-nm-fd-leak.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -170,6 +173,7 @@ be installed.
# upstream patches
%patch1 -p1
+%patch2 -p1
# Fedora patches
%patch101 -p1
@@ -337,6 +341,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Mon Feb 25 2019 Kamil Dudka - 7.64.0-3
+- prevent NetworkManager from leaking file descriptors (#1680198)
+
* Mon Feb 11 2019 Kamil Dudka - 7.64.0-2
- make zsh completion work again
From 95008127cf8cce13fd350840dfd31372ab85b48f Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 27 Feb 2019 18:02:05 +0100
Subject: [PATCH 014/218] Resolves: #1683676 - fix NULL dereference if flushing
cookies with no CookieInfo set
---
0003-curl-7.64.0-cookie-segfault.patch | 42 ++++++++++++++++++++++++++
curl.spec | 9 +++++-
2 files changed, 50 insertions(+), 1 deletion(-)
create mode 100644 0003-curl-7.64.0-cookie-segfault.patch
diff --git a/0003-curl-7.64.0-cookie-segfault.patch b/0003-curl-7.64.0-cookie-segfault.patch
new file mode 100644
index 0000000..9539efa
--- /dev/null
+++ b/0003-curl-7.64.0-cookie-segfault.patch
@@ -0,0 +1,42 @@
+From d73dc8d3e70bde0ef999ecf7bcd5585b9892371c Mon Sep 17 00:00:00 2001
+From: Michael Wallner
+Date: Mon, 25 Feb 2019 19:05:02 +0100
+Subject: [PATCH] cookies: fix NULL dereference if flushing cookies with no
+ CookieInfo set
+
+Regression brought by a52e46f3900fb0 (shipped in 7.63.0)
+
+Closes #3613
+
+Upstream-commit: 8eddb8f4259193633cfc95a42603958a89b31de5
+Signed-off-by: Kamil Dudka
+---
+ lib/cookie.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/lib/cookie.c b/lib/cookie.c
+index 4fb992a..d535170 100644
+--- a/lib/cookie.c
++++ b/lib/cookie.c
+@@ -1504,7 +1504,8 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
+ struct Cookie **array;
+
+ /* at first, remove expired cookies */
+- remove_expired(c);
++ if(c)
++ remove_expired(c);
+
+ if(!strcmp("-", dumphere)) {
+ /* use stdout */
+@@ -1523,7 +1524,7 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
+ "# This file was generated by libcurl! Edit at your own risk.\n\n",
+ out);
+
+- if(c->numcookies) {
++ if(c && c->numcookies) {
+ array = malloc(sizeof(struct Cookie *) * c->numcookies);
+ if(!array) {
+ if(!use_stdout)
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index 834c964..a8292a6 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.64.0
-Release: 3%{?dist}
+Release: 4%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -11,6 +11,9 @@ Patch1: 0001-curl-7.64.0-zsh-completion.patch
# prevent NetworkManager from leaking file descriptors (#1680198)
Patch2: 0002-curl-7.64.0-nm-fd-leak.patch
+# fix NULL dereference if flushing cookies with no CookieInfo set (#1683676)
+Patch3: 0003-curl-7.64.0-cookie-segfault.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -174,6 +177,7 @@ be installed.
# upstream patches
%patch1 -p1
%patch2 -p1
+%patch3 -p1
# Fedora patches
%patch101 -p1
@@ -341,6 +345,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Feb 27 2019 Kamil Dudka - 7.64.0-4
+- fix NULL dereference if flushing cookies with no CookieInfo set (#1683676)
+
* Mon Feb 25 2019 Kamil Dudka - 7.64.0-3
- prevent NetworkManager from leaking file descriptors (#1680198)
From 902ddefeb533ae02d3588bb99d78fb178999da22 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Thu, 21 Mar 2019 09:38:52 +0100
Subject: [PATCH 015/218] avoid spurious "Could not resolve host: [host name]"
error messages
---
...-curl-7.64.0-spurious-resolver-error.patch | 118 ++++++++++++++++++
curl.spec | 9 +-
2 files changed, 126 insertions(+), 1 deletion(-)
create mode 100644 0004-curl-7.64.0-spurious-resolver-error.patch
diff --git a/0004-curl-7.64.0-spurious-resolver-error.patch b/0004-curl-7.64.0-spurious-resolver-error.patch
new file mode 100644
index 0000000..3e05ad5
--- /dev/null
+++ b/0004-curl-7.64.0-spurious-resolver-error.patch
@@ -0,0 +1,118 @@
+From 5ddabe85b2e3e4fd08d06980719d71a2aed77a5b Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Thu, 28 Feb 2019 20:34:36 +0100
+Subject: [PATCH] threaded-resolver: shutdown the resolver thread without error
+ message
+
+When a transfer is done, the resolver thread will be brought down. That
+could accidentally generate an error message in the error buffer even
+though this is not an error situationand the transfer would still return
+OK. An application that still reads the error buffer could find a
+"Could not resolve host: [host name]" message there and get confused.
+
+Reported-by: Michael Schmid
+Fixes #3629
+Closes #3630
+
+Upstream-commit: 754ae103989a6ad0869d23a6a427d652b5b4a2fe
+Signed-off-by: Kamil Dudka
+---
+ lib/asyn-thread.c | 68 ++++++++++++++++++++++++++---------------------
+ 1 file changed, 38 insertions(+), 30 deletions(-)
+
+diff --git a/lib/asyn-thread.c b/lib/asyn-thread.c
+index a9679d0..55e0811 100644
+--- a/lib/asyn-thread.c
++++ b/lib/asyn-thread.c
+@@ -461,6 +461,42 @@ static CURLcode resolver_error(struct connectdata *conn)
+ return result;
+ }
+
++static CURLcode thread_wait_resolv(struct connectdata *conn,
++ struct Curl_dns_entry **entry,
++ bool report)
++{
++ struct thread_data *td = (struct thread_data*) conn->async.os_specific;
++ CURLcode result = CURLE_OK;
++
++ DEBUGASSERT(conn && td);
++ DEBUGASSERT(td->thread_hnd != curl_thread_t_null);
++
++ /* wait for the thread to resolve the name */
++ if(Curl_thread_join(&td->thread_hnd)) {
++ if(entry)
++ result = getaddrinfo_complete(conn);
++ }
++ else
++ DEBUGASSERT(0);
++
++ conn->async.done = TRUE;
++
++ if(entry)
++ *entry = conn->async.dns;
++
++ if(!conn->async.dns && report)
++ /* a name was not resolved, report error */
++ result = resolver_error(conn);
++
++ destroy_async_data(&conn->async);
++
++ if(!conn->async.dns && report)
++ connclose(conn, "asynch resolve failed");
++
++ return result;
++}
++
++
+ /*
+ * Until we gain a way to signal the resolver threads to stop early, we must
+ * simply wait for them and ignore their results.
+@@ -473,7 +509,7 @@ void Curl_resolver_kill(struct connectdata *conn)
+ unfortunately. Otherwise, we can simply cancel to clean up any resolver
+ data. */
+ if(td && td->thread_hnd != curl_thread_t_null)
+- (void)Curl_resolver_wait_resolv(conn, NULL);
++ (void)thread_wait_resolv(conn, NULL, FALSE);
+ else
+ Curl_resolver_cancel(conn);
+ }
+@@ -494,35 +530,7 @@ void Curl_resolver_kill(struct connectdata *conn)
+ CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
+ struct Curl_dns_entry **entry)
+ {
+- struct thread_data *td = (struct thread_data*) conn->async.os_specific;
+- CURLcode result = CURLE_OK;
+-
+- DEBUGASSERT(conn && td);
+- DEBUGASSERT(td->thread_hnd != curl_thread_t_null);
+-
+- /* wait for the thread to resolve the name */
+- if(Curl_thread_join(&td->thread_hnd)) {
+- if(entry)
+- result = getaddrinfo_complete(conn);
+- }
+- else
+- DEBUGASSERT(0);
+-
+- conn->async.done = TRUE;
+-
+- if(entry)
+- *entry = conn->async.dns;
+-
+- if(!conn->async.dns)
+- /* a name was not resolved, report error */
+- result = resolver_error(conn);
+-
+- destroy_async_data(&conn->async);
+-
+- if(!conn->async.dns)
+- connclose(conn, "asynch resolve failed");
+-
+- return result;
++ return thread_wait_resolv(conn, entry, TRUE);
+ }
+
+ /*
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index a8292a6..bed6823 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.64.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -14,6 +14,9 @@ Patch2: 0002-curl-7.64.0-nm-fd-leak.patch
# fix NULL dereference if flushing cookies with no CookieInfo set (#1683676)
Patch3: 0003-curl-7.64.0-cookie-segfault.patch
+# avoid spurious "Could not resolve host: [host name]" error messages
+Patch4: 0004-curl-7.64.0-spurious-resolver-error.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -178,6 +181,7 @@ be installed.
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
# Fedora patches
%patch101 -p1
@@ -345,6 +349,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Mar 21 2019 Kamil Dudka - 7.64.0-5
+- avoid spurious "Could not resolve host: [host name]" error messages
+
* Wed Feb 27 2019 Kamil Dudka - 7.64.0-4
- fix NULL dereference if flushing cookies with no CookieInfo set (#1683676)
From 7594f15bcee986a1946575804b33fabc35d43792 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 25 Mar 2019 12:35:52 +0100
Subject: [PATCH 016/218] Related: #1690971 - remove verbose "Expire in" ...
messages
---
0005-curl-7.64.0-expire-in-verbose-msgs.patch | 32 +++++++++++++++++++
curl.spec | 9 +++++-
2 files changed, 40 insertions(+), 1 deletion(-)
create mode 100644 0005-curl-7.64.0-expire-in-verbose-msgs.patch
diff --git a/0005-curl-7.64.0-expire-in-verbose-msgs.patch b/0005-curl-7.64.0-expire-in-verbose-msgs.patch
new file mode 100644
index 0000000..43d3573
--- /dev/null
+++ b/0005-curl-7.64.0-expire-in-verbose-msgs.patch
@@ -0,0 +1,32 @@
+From 2e8f4d01cdd07779e0582257cb6b53c5a91d6504 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Mon, 11 Feb 2019 22:57:33 +0100
+Subject: [PATCH] multi: remove verbose "Expire in" ... messages
+
+Reported-by: James Brown
+Bug: https://curl.haxx.se/mail/archive-2019-02/0013.html
+Closes #3558
+
+Upstream-commit: aabc7ae5ecf70973add429b5acbc86d6a57e4da5
+Signed-off-by: Kamil Dudka
+---
+ lib/multi.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/lib/multi.c b/lib/multi.c
+index 28f4c47..856cc22 100644
+--- a/lib/multi.c
++++ b/lib/multi.c
+@@ -3028,9 +3028,6 @@ void Curl_expire(struct Curl_easy *data, time_t milli, expire_id id)
+
+ DEBUGASSERT(id < EXPIRE_LAST);
+
+- infof(data, "Expire in %ld ms for %x (transfer %p)\n",
+- (long)milli, id, data);
+-
+ set = Curl_now();
+ set.tv_sec += milli/1000;
+ set.tv_usec += (unsigned int)(milli%1000)*1000;
+--
+2.17.2
+
diff --git a/curl.spec b/curl.spec
index bed6823..d504c23 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.64.0
-Release: 5%{?dist}
+Release: 6%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -17,6 +17,9 @@ Patch3: 0003-curl-7.64.0-cookie-segfault.patch
# avoid spurious "Could not resolve host: [host name]" error messages
Patch4: 0004-curl-7.64.0-spurious-resolver-error.patch
+# remove verbose "Expire in" ... messages (#1690971)
+Patch5: 0005-curl-7.64.0-expire-in-verbose-msgs.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -182,6 +185,7 @@ be installed.
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
# Fedora patches
%patch101 -p1
@@ -349,6 +353,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Mon Mar 25 2019 Kamil Dudka - 7.64.0-6
+- remove verbose "Expire in" ... messages (#1690971)
+
* Wed Mar 21 2019 Kamil Dudka - 7.64.0-5
- avoid spurious "Could not resolve host: [host name]" error messages
From 0ed971f14f1e1a245d738142d3cd2b3489bc1008 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 25 Mar 2019 12:39:00 +0100
Subject: [PATCH 017/218] fix last but one change log entry
---
curl.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/curl.spec b/curl.spec
index d504c23..6cf125f 100644
--- a/curl.spec
+++ b/curl.spec
@@ -356,7 +356,7 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
* Mon Mar 25 2019 Kamil Dudka - 7.64.0-6
- remove verbose "Expire in" ... messages (#1690971)
-* Wed Mar 21 2019 Kamil Dudka - 7.64.0-5
+* Thu Mar 21 2019 Kamil Dudka - 7.64.0-5
- avoid spurious "Could not resolve host: [host name]" error messages
* Wed Feb 27 2019 Kamil Dudka - 7.64.0-4
From bbad3e0a620be7f54fd5e9af7570cab24a6a233d Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 27 Mar 2019 10:33:41 +0100
Subject: [PATCH 018/218] new upstream release - 7.64.1
---
0001-curl-7.64.0-zsh-completion.patch | 76 --------
0002-curl-7.64.0-nm-fd-leak.patch | 162 ------------------
0003-curl-7.64.0-cookie-segfault.patch | 42 -----
...-curl-7.64.0-spurious-resolver-error.patch | 118 -------------
0005-curl-7.64.0-expire-in-verbose-msgs.patch | 32 ----
0102-curl-7.36.0-debug.patch | 2 +-
0104-curl-7.19.7-localhost6.patch | 4 +-
0105-curl-7.63.0-lib1560-valgrind.patch | 2 +-
curl-7.64.0.tar.xz.asc | 11 --
curl-7.64.1.tar.xz.asc | 11 ++
curl.spec | 45 ++---
sources | 2 +-
12 files changed, 34 insertions(+), 473 deletions(-)
delete mode 100644 0001-curl-7.64.0-zsh-completion.patch
delete mode 100644 0002-curl-7.64.0-nm-fd-leak.patch
delete mode 100644 0003-curl-7.64.0-cookie-segfault.patch
delete mode 100644 0004-curl-7.64.0-spurious-resolver-error.patch
delete mode 100644 0005-curl-7.64.0-expire-in-verbose-msgs.patch
delete mode 100644 curl-7.64.0.tar.xz.asc
create mode 100644 curl-7.64.1.tar.xz.asc
diff --git a/0001-curl-7.64.0-zsh-completion.patch b/0001-curl-7.64.0-zsh-completion.patch
deleted file mode 100644
index 770a15b..0000000
--- a/0001-curl-7.64.0-zsh-completion.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 082034e2334b2d0795b2b324ff3e0635bb7d2b86 Mon Sep 17 00:00:00 2001
-From: Alessandro Ghedini
-Date: Tue, 5 Feb 2019 20:44:14 +0000
-Subject: [PATCH 1/2] zsh.pl: update regex to better match curl -h output
-
-The current regex fails to match '<...>' arguments properly (e.g. those
-with spaces in them), which causes an completion script with wrong
-descriptions for some options.
-
-The problem can be reproduced as follows:
-
-% curl --reso
-
-Upstream-commit: dbd32f3241b297b96ee11a51da1a661f528ca026
-Signed-off-by: Kamil Dudka
----
- scripts/zsh.pl | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/zsh.pl b/scripts/zsh.pl
-index 1257190..941b322 100755
---- a/scripts/zsh.pl
-+++ b/scripts/zsh.pl
-@@ -7,7 +7,7 @@ use warnings;
-
- my $curl = $ARGV[0] || 'curl';
-
--my $regex = '\s+(?:(-[^\s]+),\s)?(--[^\s]+)\s([^\s.]+)?\s+(.*)';
-+my $regex = '\s+(?:(-[^\s]+),\s)?(--[^\s]+)\s*(\<.+?\>)?\s+(.*)';
- my @opts = parse_main_opts('--help', $regex);
-
- my $opts_str;
---
-2.17.2
-
-
-From 45abc785e101346f19599aa5f9fa1617e525ec4d Mon Sep 17 00:00:00 2001
-From: Alessandro Ghedini
-Date: Tue, 5 Feb 2019 21:06:26 +0000
-Subject: [PATCH 2/2] zsh.pl: escape ':' character
-
-':' is interpreted as separator by zsh, so if used as part of the argument
-or option's description it needs to be escaped.
-
-The problem can be reproduced as follows:
-
-% curl -E
-
-Bug: https://bugs.debian.org/921452
-
-Upstream-commit: b3cc8017b7364f588365be2b2629c49c142efdb7
-Signed-off-by: Kamil Dudka
----
- scripts/zsh.pl | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/scripts/zsh.pl b/scripts/zsh.pl
-index 941b322..0f9cbec 100755
---- a/scripts/zsh.pl
-+++ b/scripts/zsh.pl
-@@ -45,9 +45,12 @@ sub parse_main_opts {
-
- my $option = '';
-
-+ $arg =~ s/\:/\\\:/g if defined $arg;
-+
- $desc =~ s/'/'\\''/g if defined $desc;
- $desc =~ s/\[/\\\[/g if defined $desc;
- $desc =~ s/\]/\\\]/g if defined $desc;
-+ $desc =~ s/\:/\\\:/g if defined $desc;
-
- $option .= '{' . trim($short) . ',' if defined $short;
- $option .= trim($long) if defined $long;
---
-2.17.2
-
diff --git a/0002-curl-7.64.0-nm-fd-leak.patch b/0002-curl-7.64.0-nm-fd-leak.patch
deleted file mode 100644
index 681e58f..0000000
--- a/0002-curl-7.64.0-nm-fd-leak.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-From 377101f138873bfa481785cb7d04c326006f0b5d Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Mon, 11 Feb 2019 07:56:00 +0100
-Subject: [PATCH 1/3] connection_check: set ->data to the transfer doing the
- check
-
-The http2 code for connection checking needs a transfer to use. Make
-sure a working one is set before handler->connection_check() is called.
-
-Reported-by: jnbr on github
-Fixes #3541
-Closes #3547
-
-Upstream-commit: 38d8e1bd4ed1ae52930ae466ecbac78e888b142f
-Signed-off-by: Kamil Dudka
----
- lib/url.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/url.c b/lib/url.c
-index d5a9820..229c655 100644
---- a/lib/url.c
-+++ b/lib/url.c
-@@ -965,6 +965,7 @@ static bool extract_if_dead(struct connectdata *conn,
- /* The protocol has a special method for checking the state of the
- connection. Use it to check if the connection is dead. */
- unsigned int state;
-+ conn->data = data; /* use this transfer for now */
- state = conn->handler->connection_check(conn, CONNCHECK_ISDEAD);
- dead = (state & CONNRESULT_DEAD);
- }
---
-2.17.2
-
-
-From 287f5d70395b3833f8901a57b29a48b87d84a9fe Mon Sep 17 00:00:00 2001
-From: Jay Satiro
-Date: Mon, 11 Feb 2019 23:00:00 -0500
-Subject: [PATCH 2/3] connection_check: restore original conn->data after the
- check
-
-- Save the original conn->data before it's changed to the specified
- data transfer for the connection check and then restore it afterwards.
-
-This is a follow-up to 38d8e1b 2019-02-11.
-
-History:
-
-It was discovered a month ago that before checking whether to extract a
-dead connection that that connection should be associated with a "live"
-transfer for the check (ie original conn->data ignored and set to the
-passed in data). A fix was landed in 54b201b which did that and also
-cleared conn->data after the check. The original conn->data was not
-restored, so presumably it was thought that a valid conn->data was no
-longer needed.
-
-Several days later it was discovered that a valid conn->data was needed
-after the check and follow-up fix was landed in bbae24c which partially
-reverted the original fix and attempted to limit the scope of when
-conn->data was changed to only when pruning dead connections. In that
-case conn->data was not cleared and the original conn->data not
-restored.
-
-A month later it was discovered that the original fix was somewhat
-correct; a "live" transfer is needed for the check in all cases
-because original conn->data could be null which could cause a bad deref
-at arbitrary points in the check. A fix was landed in 38d8e1b which
-expanded the scope to all cases. conn->data was not cleared and the
-original conn->data not restored.
-
-A day later it was discovered that not restoring the original conn->data
-may lead to busy loops in applications that use the event interface, and
-given this observation it's a pretty safe assumption that there is some
-code path that still needs the original conn->data. This commit is the
-follow-up fix for that, it restores the original conn->data after the
-connection check.
-
-Assisted-by: tholin@users.noreply.github.com
-Reported-by: tholin@users.noreply.github.com
-
-Fixes https://github.com/curl/curl/issues/3542
-Closes #3559
-
-Upstream-commit: 4015fae044ce52a639c9358e22a9e948f287c89f
-Signed-off-by: Kamil Dudka
----
- lib/url.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/lib/url.c b/lib/url.c
-index 229c655..a77e92d 100644
---- a/lib/url.c
-+++ b/lib/url.c
-@@ -965,8 +965,10 @@ static bool extract_if_dead(struct connectdata *conn,
- /* The protocol has a special method for checking the state of the
- connection. Use it to check if the connection is dead. */
- unsigned int state;
-+ struct Curl_easy *olddata = conn->data;
- conn->data = data; /* use this transfer for now */
- state = conn->handler->connection_check(conn, CONNCHECK_ISDEAD);
-+ conn->data = olddata;
- dead = (state & CONNRESULT_DEAD);
- }
- else {
-@@ -995,7 +997,6 @@ struct prunedead {
- static int call_extract_if_dead(struct connectdata *conn, void *param)
- {
- struct prunedead *p = (struct prunedead *)param;
-- conn->data = p->data; /* transfer to use for this check */
- if(extract_if_dead(conn, p->data)) {
- /* stop the iteration here, pass back the connection that was extracted */
- p->extracted = conn;
---
-2.17.2
-
-
-From 15e3f2eef87bff1210f43921cb15f03c68be59f7 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Tue, 19 Feb 2019 15:56:54 +0100
-Subject: [PATCH 3/3] singlesocket: fix the 'sincebefore' placement
-
-The variable wasn't properly reset within the loop and thus could remain
-set for sockets that hadn't been set before and miss notifying the app.
-
-This is a follow-up to 4c35574 (shipped in curl 7.64.0)
-
-Reported-by: buzo-ffm on github
-Detected-by: Jan Alexander Steffens
-Fixes #3585
-Closes #3589
-
-Upstream-commit: afc00e047c773faeaa60a5f86a246cbbeeba5819
-Signed-off-by: Kamil Dudka
----
- lib/multi.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/multi.c b/lib/multi.c
-index 130226f..28f4c47 100644
---- a/lib/multi.c
-+++ b/lib/multi.c
-@@ -2360,8 +2360,6 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
- int num;
- unsigned int curraction;
- int actions[MAX_SOCKSPEREASYHANDLE];
-- unsigned int comboaction;
-- bool sincebefore = FALSE;
-
- for(i = 0; i< MAX_SOCKSPEREASYHANDLE; i++)
- socks[i] = CURL_SOCKET_BAD;
-@@ -2380,6 +2378,8 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
- i++) {
- unsigned int action = CURL_POLL_NONE;
- unsigned int prevaction = 0;
-+ unsigned int comboaction;
-+ bool sincebefore = FALSE;
-
- s = socks[i];
-
---
-2.17.2
-
diff --git a/0003-curl-7.64.0-cookie-segfault.patch b/0003-curl-7.64.0-cookie-segfault.patch
deleted file mode 100644
index 9539efa..0000000
--- a/0003-curl-7.64.0-cookie-segfault.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d73dc8d3e70bde0ef999ecf7bcd5585b9892371c Mon Sep 17 00:00:00 2001
-From: Michael Wallner
-Date: Mon, 25 Feb 2019 19:05:02 +0100
-Subject: [PATCH] cookies: fix NULL dereference if flushing cookies with no
- CookieInfo set
-
-Regression brought by a52e46f3900fb0 (shipped in 7.63.0)
-
-Closes #3613
-
-Upstream-commit: 8eddb8f4259193633cfc95a42603958a89b31de5
-Signed-off-by: Kamil Dudka
----
- lib/cookie.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/lib/cookie.c b/lib/cookie.c
-index 4fb992a..d535170 100644
---- a/lib/cookie.c
-+++ b/lib/cookie.c
-@@ -1504,7 +1504,8 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
- struct Cookie **array;
-
- /* at first, remove expired cookies */
-- remove_expired(c);
-+ if(c)
-+ remove_expired(c);
-
- if(!strcmp("-", dumphere)) {
- /* use stdout */
-@@ -1523,7 +1524,7 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
- "# This file was generated by libcurl! Edit at your own risk.\n\n",
- out);
-
-- if(c->numcookies) {
-+ if(c && c->numcookies) {
- array = malloc(sizeof(struct Cookie *) * c->numcookies);
- if(!array) {
- if(!use_stdout)
---
-2.17.2
-
diff --git a/0004-curl-7.64.0-spurious-resolver-error.patch b/0004-curl-7.64.0-spurious-resolver-error.patch
deleted file mode 100644
index 3e05ad5..0000000
--- a/0004-curl-7.64.0-spurious-resolver-error.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 5ddabe85b2e3e4fd08d06980719d71a2aed77a5b Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Thu, 28 Feb 2019 20:34:36 +0100
-Subject: [PATCH] threaded-resolver: shutdown the resolver thread without error
- message
-
-When a transfer is done, the resolver thread will be brought down. That
-could accidentally generate an error message in the error buffer even
-though this is not an error situationand the transfer would still return
-OK. An application that still reads the error buffer could find a
-"Could not resolve host: [host name]" message there and get confused.
-
-Reported-by: Michael Schmid
-Fixes #3629
-Closes #3630
-
-Upstream-commit: 754ae103989a6ad0869d23a6a427d652b5b4a2fe
-Signed-off-by: Kamil Dudka
----
- lib/asyn-thread.c | 68 ++++++++++++++++++++++++++---------------------
- 1 file changed, 38 insertions(+), 30 deletions(-)
-
-diff --git a/lib/asyn-thread.c b/lib/asyn-thread.c
-index a9679d0..55e0811 100644
---- a/lib/asyn-thread.c
-+++ b/lib/asyn-thread.c
-@@ -461,6 +461,42 @@ static CURLcode resolver_error(struct connectdata *conn)
- return result;
- }
-
-+static CURLcode thread_wait_resolv(struct connectdata *conn,
-+ struct Curl_dns_entry **entry,
-+ bool report)
-+{
-+ struct thread_data *td = (struct thread_data*) conn->async.os_specific;
-+ CURLcode result = CURLE_OK;
-+
-+ DEBUGASSERT(conn && td);
-+ DEBUGASSERT(td->thread_hnd != curl_thread_t_null);
-+
-+ /* wait for the thread to resolve the name */
-+ if(Curl_thread_join(&td->thread_hnd)) {
-+ if(entry)
-+ result = getaddrinfo_complete(conn);
-+ }
-+ else
-+ DEBUGASSERT(0);
-+
-+ conn->async.done = TRUE;
-+
-+ if(entry)
-+ *entry = conn->async.dns;
-+
-+ if(!conn->async.dns && report)
-+ /* a name was not resolved, report error */
-+ result = resolver_error(conn);
-+
-+ destroy_async_data(&conn->async);
-+
-+ if(!conn->async.dns && report)
-+ connclose(conn, "asynch resolve failed");
-+
-+ return result;
-+}
-+
-+
- /*
- * Until we gain a way to signal the resolver threads to stop early, we must
- * simply wait for them and ignore their results.
-@@ -473,7 +509,7 @@ void Curl_resolver_kill(struct connectdata *conn)
- unfortunately. Otherwise, we can simply cancel to clean up any resolver
- data. */
- if(td && td->thread_hnd != curl_thread_t_null)
-- (void)Curl_resolver_wait_resolv(conn, NULL);
-+ (void)thread_wait_resolv(conn, NULL, FALSE);
- else
- Curl_resolver_cancel(conn);
- }
-@@ -494,35 +530,7 @@ void Curl_resolver_kill(struct connectdata *conn)
- CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
- struct Curl_dns_entry **entry)
- {
-- struct thread_data *td = (struct thread_data*) conn->async.os_specific;
-- CURLcode result = CURLE_OK;
--
-- DEBUGASSERT(conn && td);
-- DEBUGASSERT(td->thread_hnd != curl_thread_t_null);
--
-- /* wait for the thread to resolve the name */
-- if(Curl_thread_join(&td->thread_hnd)) {
-- if(entry)
-- result = getaddrinfo_complete(conn);
-- }
-- else
-- DEBUGASSERT(0);
--
-- conn->async.done = TRUE;
--
-- if(entry)
-- *entry = conn->async.dns;
--
-- if(!conn->async.dns)
-- /* a name was not resolved, report error */
-- result = resolver_error(conn);
--
-- destroy_async_data(&conn->async);
--
-- if(!conn->async.dns)
-- connclose(conn, "asynch resolve failed");
--
-- return result;
-+ return thread_wait_resolv(conn, entry, TRUE);
- }
-
- /*
---
-2.17.2
-
diff --git a/0005-curl-7.64.0-expire-in-verbose-msgs.patch b/0005-curl-7.64.0-expire-in-verbose-msgs.patch
deleted file mode 100644
index 43d3573..0000000
--- a/0005-curl-7.64.0-expire-in-verbose-msgs.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 2e8f4d01cdd07779e0582257cb6b53c5a91d6504 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Mon, 11 Feb 2019 22:57:33 +0100
-Subject: [PATCH] multi: remove verbose "Expire in" ... messages
-
-Reported-by: James Brown
-Bug: https://curl.haxx.se/mail/archive-2019-02/0013.html
-Closes #3558
-
-Upstream-commit: aabc7ae5ecf70973add429b5acbc86d6a57e4da5
-Signed-off-by: Kamil Dudka
----
- lib/multi.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/lib/multi.c b/lib/multi.c
-index 28f4c47..856cc22 100644
---- a/lib/multi.c
-+++ b/lib/multi.c
-@@ -3028,9 +3028,6 @@ void Curl_expire(struct Curl_easy *data, time_t milli, expire_id id)
-
- DEBUGASSERT(id < EXPIRE_LAST);
-
-- infof(data, "Expire in %ld ms for %x (transfer %p)\n",
-- (long)milli, id, data);
--
- set = Curl_now();
- set.tv_sec += milli/1000;
- set.tv_usec += (unsigned int)(milli%1000)*1000;
---
-2.17.2
-
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index 57c05c6..265c3ff 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16250,18 +16250,11 @@ $as_echo "yes" >&6; }
+@@ -16273,18 +16273,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/0104-curl-7.19.7-localhost6.patch b/0104-curl-7.19.7-localhost6.patch
index 4f664d3..caa8bc2 100644
--- a/0104-curl-7.19.7-localhost6.patch
+++ b/0104-curl-7.19.7-localhost6.patch
@@ -14,8 +14,8 @@ index e441278..b0958b6 100644
+-g "http://%HOST6IP:%HTTP6PORT/1083" --interface localhost6
--perl -e "if ('%CLIENT6IP' ne '[::1]') {print 'Test requires default test server host address';} else {exec './server/resolve --ipv6 ip6-localhost'; print 'Cannot run precheck resolve';}"
-+perl -e "if ('%CLIENT6IP' ne '[::1]') {print 'Test requires default test server host address';} else {exec './server/resolve --ipv6 localhost6'; print 'Cannot run precheck resolve';}"
+-perl -e "if ('%CLIENT6IP' ne '[::1]') {print 'Test requires default test client host address';} else {exec './server/resolve --ipv6 ip6-localhost'; print 'Cannot run precheck resolve';}"
++perl -e "if ('%CLIENT6IP' ne '[::1]') {print 'Test requires default test client host address';} else {exec './server/resolve --ipv6 localhost6'; print 'Cannot run precheck resolve';}"
diff --git a/0105-curl-7.63.0-lib1560-valgrind.patch b/0105-curl-7.63.0-lib1560-valgrind.patch
index 003655c..84a6ee7 100644
--- a/0105-curl-7.63.0-lib1560-valgrind.patch
+++ b/0105-curl-7.63.0-lib1560-valgrind.patch
@@ -26,7 +26,7 @@ diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 080421b..ea3b806 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
-@@ -521,6 +521,7 @@ lib1558_SOURCES = lib1558.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+@@ -530,6 +530,7 @@ lib1558_SOURCES = lib1558.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1558_LDADD = $(TESTUTIL_LIBS)
lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
diff --git a/curl-7.64.0.tar.xz.asc b/curl-7.64.0.tar.xz.asc
deleted file mode 100644
index 21f7542..0000000
--- a/curl-7.64.0.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlxahccACgkQXMkI/bce
-EsKdrAf+OoNH+Yz1HfJG5MtmEi2sgRC56iAvZBQujPG8SJYGnT3D2nLiuC2+bzA8
-eMCqisodW5f6lV/9JRvLmLS0dhxAfdf/NHlMOdtgSv+NzVGsggpHeYEZ7HucRHsQ
-AKZ6/wx7rby8yZqrn2s7yWWB0qgiajWx30r+CJEYXpuw+YwZ2qZo5ecM7fa/J9ko
-ESwb7BLF6KMkdSz1wSApwCdznB/BXOaPrUBMiOcwO7ftq/t1ZmqnUWLtdlSp8OoH
-Tw832H1kCP2OFHcOFTQmZJLagRQtLBhC522wNsagXaMwak6uhoFApcAPqoPdm4Pm
-PvTO6aAopZk+sX9VemdSQzx/4ysT3w==
-=HOlc
------END PGP SIGNATURE-----
diff --git a/curl-7.64.1.tar.xz.asc b/curl-7.64.1.tar.xz.asc
new file mode 100644
index 0000000..d0dc784
--- /dev/null
+++ b/curl-7.64.1.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlybHwMACgkQXMkI/bce
+EsIlxQf+LUj/zeWzTgxXIFgtfba+RKb66RpWhgzKLBpiGFQjhckILFJ+Li625SE3
+9fCrIslGuY2S4G6fRH1qEIZVglpA185sTeY241/JK788ftJFFQd2GtM/+Ysrla5h
+zc2wD3amDXcROWI+QIl/dBy7xRnW8TSTMu2sEPLarsNtXK9EC+h/WIkeYW1amMf2
+a8vRFwXFZ7OrEiq7A0avvmbrQVgIIGP/zyz44ZN00PPgLm40c1rngHGBJJzEMVSS
+ClZ+wUQ+AyamL3Ls9a+V3SF3IuVrFInjv5Y1OshPULaqL2VxPsCVw67sCVouePMS
+J0u3GZPsE+sVbx7cHCfZFdSnutFBKQ==
+=WUio
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 6cf125f..9ccaff4 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,25 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.64.0
-Release: 6%{?dist}
+Version: 7.64.1
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# make zsh completion work again
-Patch1: 0001-curl-7.64.0-zsh-completion.patch
-
-# prevent NetworkManager from leaking file descriptors (#1680198)
-Patch2: 0002-curl-7.64.0-nm-fd-leak.patch
-
-# fix NULL dereference if flushing cookies with no CookieInfo set (#1683676)
-Patch3: 0003-curl-7.64.0-cookie-segfault.patch
-
-# avoid spurious "Could not resolve host: [host name]" error messages
-Patch4: 0004-curl-7.64.0-spurious-resolver-error.patch
-
-# remove verbose "Expire in" ... messages (#1690971)
-Patch5: 0005-curl-7.64.0-expire-in-verbose-msgs.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -181,11 +166,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
# Fedora patches
%patch101 -p1
@@ -312,6 +292,10 @@ make DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" install
LD_LIBRARY_PATH="$RPM_BUILD_ROOT%{_libdir}:$LD_LIBRARY_PATH" \
make DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" install -C scripts
+# do not install /usr/share/fish/completions/curl.fish which is also installed
+# by fish-3.0.2-1.module_f31+3716+57207597 and would trigger a conflict
+rm -rf ${RPM_BUILD_ROOT}%{_datadir}/fish
+
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%ldconfig_scriptlets -n libcurl
@@ -319,13 +303,17 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%ldconfig_scriptlets -n libcurl-minimal
%files
-%doc CHANGES README*
-%doc docs/BUGS docs/FAQ docs/FEATURES
-%doc docs/MANUAL docs/RESOURCES
-%doc docs/TheArtOfHttpScripting docs/TODO
+%doc CHANGES
+%doc README
+%doc docs/BUGS
+%doc docs/FAQ
+%doc docs/FEATURES
+%doc docs/RESOURCES
+%doc docs/TODO
+%doc docs/TheArtOfHttpScripting
%{_bindir}/curl
%{_mandir}/man1/curl.1*
-%{_datadir}/zsh/site-functions
+%{_datadir}/zsh
%files -n libcurl
%license COPYING
@@ -353,6 +341,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Mar 27 2019 Kamil Dudka - 7.64.1-1
+- new upstream release
+
* Mon Mar 25 2019 Kamil Dudka - 7.64.0-6
- remove verbose "Expire in" ... messages (#1690971)
diff --git a/sources b/sources
index d5662be..1c4276d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.64.0.tar.xz) = 953f1f5336ce5dfd1b9f933624432d401552d91ee02d39ecde6f023c956f99ec6aae8d7746d7c34b6eb2d6452f114e67da4e64d9c8dd90b7644b7844e7b9b423
+SHA512 (curl-7.64.1.tar.xz) = 1629ba154691bf9d936e0bce69ec8fb54991a40d34bc16ffdfb117f91e3faa93164154fc9ae9043e963955862e69515018673b7239f2fd625684a59cdd1db81c
From 8fd906c5591f06c7eb3be5d0aa182333e6889703 Mon Sep 17 00:00:00 2001
From: Paul Howarth
Date: Fri, 5 Apr 2019 13:38:15 +0100
Subject: [PATCH 019/218] generation of shell completions now needs more perl
stuff
---
curl.spec | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/curl.spec b/curl.spec
index 9ccaff4..347018f 100644
--- a/curl.spec
+++ b/curl.spec
@@ -39,6 +39,7 @@ BuildRequires: openldap-devel
BuildRequires: openssh-clients
BuildRequires: openssh-server
BuildRequires: openssl-devel
+BuildRequires: perl-interpreter
BuildRequires: pkgconfig
BuildRequires: python3-devel
BuildRequires: sed
@@ -48,6 +49,12 @@ BuildRequires: zlib-devel
# needed to compress content of tool_hugehelp.c after changing curl.1 man page
BuildRequires: perl(IO::Compress::Gzip)
+# needed for generation of shell completions
+BuildRequires: perl(Getopt::Long)
+BuildRequires: perl(Pod::Usage)
+BuildRequires: perl(strict)
+BuildRequires: perl(warnings)
+
# gnutls-serv is used by the upstream test-suite
BuildRequires: gnutls-utils
@@ -63,10 +70,8 @@ BuildRequires: perl(File::Copy)
BuildRequires: perl(File::Spec)
BuildRequires: perl(IPC::Open2)
BuildRequires: perl(MIME::Base64)
-BuildRequires: perl(strict)
BuildRequires: perl(Time::Local)
BuildRequires: perl(Time::HiRes)
-BuildRequires: perl(warnings)
BuildRequires: perl(vars)
# The test-suite runs automatically through valgrind if valgrind is available
From 9dd5d73f3b1c0fcae0ff35500e09e3c3574b2460 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Thu, 9 May 2019 09:59:31 +0200
Subject: [PATCH 020/218] do not treat failure of gss_init_sec_context() with
--negotiate as fatal
This commit fixes a major incompatibility introduced in curl-7.64.1.
Bug: https://github.com/curl/curl/issues/3726
---
...curl-7.64.1-negotiate-without-ticket.patch | 68 +++++++++++++++++++
curl.spec | 9 ++-
2 files changed, 76 insertions(+), 1 deletion(-)
create mode 100644 0001-curl-7.64.1-negotiate-without-ticket.patch
diff --git a/0001-curl-7.64.1-negotiate-without-ticket.patch b/0001-curl-7.64.1-negotiate-without-ticket.patch
new file mode 100644
index 0000000..125ee54
--- /dev/null
+++ b/0001-curl-7.64.1-negotiate-without-ticket.patch
@@ -0,0 +1,68 @@
+From f7c66081721ac54f68457f07994487f416db383f Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Mon, 6 May 2019 14:16:35 +0200
+Subject: [PATCH] spnego_gssapi: fix return code on gss_init_sec_context()
+ failure
+
+Fixes #3726
+Closes #3849
+
+Upstream-commit: f65845c1eccc02385cdfb22bf2e521e670f7b295
+Signed-off-by: Kamil Dudka
+---
+ lib/vauth/spnego_gssapi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/vauth/spnego_gssapi.c b/lib/vauth/spnego_gssapi.c
+index 7c4bd4b59..de8bde2ba 100644
+--- a/lib/vauth/spnego_gssapi.c
++++ b/lib/vauth/spnego_gssapi.c
+@@ -170,7 +170,7 @@ CURLcode Curl_auth_decode_spnego_message(struct Curl_easy *data,
+ Curl_gss_log_error(data, "gss_init_sec_context() failed: ",
+ major_status, minor_status);
+
+- return CURLE_OUT_OF_MEMORY;
++ return CURLE_LOGIN_DENIED;
+ }
+
+ if(!output_token.value || !output_token.length) {
+--
+2.20.1
+
+From ce0dbcf6f028c84adf4ff3704c04a09d4450a596 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Mon, 6 May 2019 14:32:00 +0200
+Subject: [PATCH] http_negotiate: do not treat failure of
+ gss_init_sec_context() as fatal
+
+Fixes #3726
+Closes #3849
+
+Upstream-commit: f4603708af08f454bca8b74095d0af40a4516512
+Signed-off-by: Kamil Dudka
+---
+ lib/http_negotiate.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
+index 9415236fb..201c3a785 100644
+--- a/lib/http_negotiate.c
++++ b/lib/http_negotiate.c
+@@ -143,7 +143,13 @@ CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)
+ }
+ if(!neg_ctx->context) {
+ result = Curl_input_negotiate(conn, proxy, "Negotiate");
+- if(result)
++ if(result == CURLE_LOGIN_DENIED) {
++ /* negotiate auth failed, let's continue unauthenticated to stay
++ * compatible with the behavior before curl-7_64_0-158-g6c6035532 */
++ conn->data->state.authproblem = TRUE;
++ return CURLE_OK;
++ }
++ else if(result)
+ return result;
+ }
+
+--
+2.20.1
+
diff --git a/curl.spec b/curl.spec
index 347018f..4f4198d 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,10 +1,13 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.64.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# do not treat failure of gss_init_sec_context() with --negotiate as fatal
+Patch1: 0001-curl-7.64.1-negotiate-without-ticket.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -171,6 +174,7 @@ be installed.
%setup -q
# upstream patches
+%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -346,6 +350,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Thu May 09 2019 Kamil Dudka - 7.64.1-2
+- do not treat failure of gss_init_sec_context() with --negotiate as fatal
+
* Wed Mar 27 2019 Kamil Dudka - 7.64.1-1
- new upstream release
From 3c7950da770ba435d85bfada130f9d0c512df60b Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 22 May 2019 10:37:45 +0200
Subject: [PATCH 021/218] new upstream release - 7.65.0
Resolves: CVE-2019-5436 - TFTP receive buffer overflow
Resolves: CVE-2019-5435 - integer overflows in curl_url_set()
---
...curl-7.64.1-negotiate-without-ticket.patch | 68 -------------------
0105-curl-7.63.0-lib1560-valgrind.patch | 4 +-
curl-7.64.1.tar.xz.asc | 11 ---
curl-7.65.0.tar.xz.asc | 11 +++
curl.spec | 13 ++--
sources | 2 +-
6 files changed, 21 insertions(+), 88 deletions(-)
delete mode 100644 0001-curl-7.64.1-negotiate-without-ticket.patch
delete mode 100644 curl-7.64.1.tar.xz.asc
create mode 100644 curl-7.65.0.tar.xz.asc
diff --git a/0001-curl-7.64.1-negotiate-without-ticket.patch b/0001-curl-7.64.1-negotiate-without-ticket.patch
deleted file mode 100644
index 125ee54..0000000
--- a/0001-curl-7.64.1-negotiate-without-ticket.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From f7c66081721ac54f68457f07994487f416db383f Mon Sep 17 00:00:00 2001
-From: Kamil Dudka
-Date: Mon, 6 May 2019 14:16:35 +0200
-Subject: [PATCH] spnego_gssapi: fix return code on gss_init_sec_context()
- failure
-
-Fixes #3726
-Closes #3849
-
-Upstream-commit: f65845c1eccc02385cdfb22bf2e521e670f7b295
-Signed-off-by: Kamil Dudka
----
- lib/vauth/spnego_gssapi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/vauth/spnego_gssapi.c b/lib/vauth/spnego_gssapi.c
-index 7c4bd4b59..de8bde2ba 100644
---- a/lib/vauth/spnego_gssapi.c
-+++ b/lib/vauth/spnego_gssapi.c
-@@ -170,7 +170,7 @@ CURLcode Curl_auth_decode_spnego_message(struct Curl_easy *data,
- Curl_gss_log_error(data, "gss_init_sec_context() failed: ",
- major_status, minor_status);
-
-- return CURLE_OUT_OF_MEMORY;
-+ return CURLE_LOGIN_DENIED;
- }
-
- if(!output_token.value || !output_token.length) {
---
-2.20.1
-
-From ce0dbcf6f028c84adf4ff3704c04a09d4450a596 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka
-Date: Mon, 6 May 2019 14:32:00 +0200
-Subject: [PATCH] http_negotiate: do not treat failure of
- gss_init_sec_context() as fatal
-
-Fixes #3726
-Closes #3849
-
-Upstream-commit: f4603708af08f454bca8b74095d0af40a4516512
-Signed-off-by: Kamil Dudka
----
- lib/http_negotiate.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
-index 9415236fb..201c3a785 100644
---- a/lib/http_negotiate.c
-+++ b/lib/http_negotiate.c
-@@ -143,7 +143,13 @@ CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)
- }
- if(!neg_ctx->context) {
- result = Curl_input_negotiate(conn, proxy, "Negotiate");
-- if(result)
-+ if(result == CURLE_LOGIN_DENIED) {
-+ /* negotiate auth failed, let's continue unauthenticated to stay
-+ * compatible with the behavior before curl-7_64_0-158-g6c6035532 */
-+ conn->data->state.authproblem = TRUE;
-+ return CURLE_OK;
-+ }
-+ else if(result)
- return result;
- }
-
---
-2.20.1
-
diff --git a/0105-curl-7.63.0-lib1560-valgrind.patch b/0105-curl-7.63.0-lib1560-valgrind.patch
index 84a6ee7..652739c 100644
--- a/0105-curl-7.63.0-lib1560-valgrind.patch
+++ b/0105-curl-7.63.0-lib1560-valgrind.patch
@@ -26,8 +26,8 @@ diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 080421b..ea3b806 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
-@@ -530,6 +530,7 @@ lib1558_SOURCES = lib1558.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
- lib1558_LDADD = $(TESTUTIL_LIBS)
+@@ -528,6 +528,7 @@ lib1559_SOURCES = lib1559.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+ lib1559_LDADD = $(TESTUTIL_LIBS)
lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+lib1560_CFLAGS = $(AM_CFLAGS) -fno-builtin-strcmp
diff --git a/curl-7.64.1.tar.xz.asc b/curl-7.64.1.tar.xz.asc
deleted file mode 100644
index d0dc784..0000000
--- a/curl-7.64.1.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlybHwMACgkQXMkI/bce
-EsIlxQf+LUj/zeWzTgxXIFgtfba+RKb66RpWhgzKLBpiGFQjhckILFJ+Li625SE3
-9fCrIslGuY2S4G6fRH1qEIZVglpA185sTeY241/JK788ftJFFQd2GtM/+Ysrla5h
-zc2wD3amDXcROWI+QIl/dBy7xRnW8TSTMu2sEPLarsNtXK9EC+h/WIkeYW1amMf2
-a8vRFwXFZ7OrEiq7A0avvmbrQVgIIGP/zyz44ZN00PPgLm40c1rngHGBJJzEMVSS
-ClZ+wUQ+AyamL3Ls9a+V3SF3IuVrFInjv5Y1OshPULaqL2VxPsCVw67sCVouePMS
-J0u3GZPsE+sVbx7cHCfZFdSnutFBKQ==
-=WUio
------END PGP SIGNATURE-----
diff --git a/curl-7.65.0.tar.xz.asc b/curl-7.65.0.tar.xz.asc
new file mode 100644
index 0000000..21f3b0b
--- /dev/null
+++ b/curl-7.65.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlzk438ACgkQXMkI/bce
+EsITWggAgk129Kxp4Br7Nn2+vyygKwv3dDEm87wJVuQka8gT2pZ9ZVQ6rEX9j0sR
+RETf8KrEbSlOBgl2EJpgToL5kgiMCweTXced3VY2szVVibenBa2Zd9MpSl5Sf7hH
+axinhdvEPNH+w8WuprEqZh+d/T5grAxChPJz4bLqKQI5fw5T3IuMfYTjZqx8DkOt
+4FekihWCr6N/nW9BFOz8H19GFtotYSwoPvQJ+RmB7+Zt7ruHjRgyINCgxbWPvs4P
+eZNWykqQ9FaXLSoJQYjLvEx0smye0bxSu3EIYBeL60fiFWJaSHQPyfBgC3JC+dD6
+ufxhEk814I4XzPaRFTLjgzjmTqRMPw==
+=4VIp
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 4f4198d..cb35ee2 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.64.1
-Release: 2%{?dist}
+Version: 7.65.0
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# do not treat failure of gss_init_sec_context() with --negotiate as fatal
-Patch1: 0001-curl-7.64.1-negotiate-without-ticket.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -174,7 +171,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -350,6 +346,11 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed May 22 2019 Kamil Dudka - 7.65.0-1
+- new upstream release, which fixes the following vulnerabilities
+ CVE-2019-5436 - TFTP receive buffer overflow
+ CVE-2019-5435 - integer overflows in curl_url_set()
+
* Thu May 09 2019 Kamil Dudka - 7.64.1-2
- do not treat failure of gss_init_sec_context() with --negotiate as fatal
diff --git a/sources b/sources
index 1c4276d..36347c9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.64.1.tar.xz) = 1629ba154691bf9d936e0bce69ec8fb54991a40d34bc16ffdfb117f91e3faa93164154fc9ae9043e963955862e69515018673b7239f2fd625684a59cdd1db81c
+SHA512 (curl-7.65.0.tar.xz) = 032c065c1d4bd07ba028625f8fab6a09e7cb8505a5f19339b3abdee5a9cda7d091c11f075fe3fc227d082690a66c558c770a4cd9fb17b52acc13794976a770c5
From b6ccff47ac093003674a469ec44541edbd8caaef Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Thu, 30 May 2019 15:27:58 +0200
Subject: [PATCH 022/218] Resolves: #1714893 - fix spurious timeout events with
speed-limit
---
0001-curl-7.65.0-speed-limit-timeout.patch | 203 +++++++++++++++++++++
curl.spec | 9 +-
2 files changed, 211 insertions(+), 1 deletion(-)
create mode 100644 0001-curl-7.65.0-speed-limit-timeout.patch
diff --git a/0001-curl-7.65.0-speed-limit-timeout.patch b/0001-curl-7.65.0-speed-limit-timeout.patch
new file mode 100644
index 0000000..f9e155b
--- /dev/null
+++ b/0001-curl-7.65.0-speed-limit-timeout.patch
@@ -0,0 +1,203 @@
+From f2cc9d8d194c4eef706cb5470bdf6f7483b4e3cf Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Wed, 22 May 2019 23:15:34 +0200
+Subject: [PATCH] Revert "progress: CURL_DISABLE_PROGRESS_METER"
+
+This reverts commit 3b06e68b7734cb10a555f9d7e804dd5d808236a4.
+
+Clearly this change wasn't good enough as it broke CURLOPT_LOW_SPEED_LIMIT +
+CURLOPT_LOW_SPEED_TIME
+
+Reported-by: Dave Reisner
+
+Fixes #3927
+Closes #3928
+
+Upstream-commit: c6b58137237a89081b4efc33ae0ecf7282e40132
+Signed-off-by: Kamil Dudka
+---
+ lib/progress.c | 110 ++++++++++++++++++++++---------------------------
+ 1 file changed, 49 insertions(+), 61 deletions(-)
+
+diff --git a/lib/progress.c b/lib/progress.c
+index f586d59b4..fe9929bb9 100644
+--- a/lib/progress.c
++++ b/lib/progress.c
+@@ -5,7 +5,7 @@
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+- * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
++ * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+@@ -31,7 +31,6 @@
+ /* check rate limits within this many recent milliseconds, at minimum. */
+ #define MIN_RATE_LIMIT_PERIOD 3000
+
+-#ifndef CURL_DISABLE_PROGRESS_METER
+ /* Provide a string that is 2 + 1 + 2 + 1 + 2 = 8 letters long (plus the zero
+ byte) */
+ static void time2str(char *r, curl_off_t seconds)
+@@ -120,7 +119,6 @@ static char *max5data(curl_off_t bytes, char *max5)
+
+ return max5;
+ }
+-#endif
+
+ /*
+
+@@ -364,13 +362,17 @@ void Curl_pgrsSetUploadSize(struct Curl_easy *data, curl_off_t size)
+ }
+ }
+
+-#ifndef CURL_DISABLE_PROGRESS_METER
+-static void progress_meter(struct connectdata *conn)
++/*
++ * Curl_pgrsUpdate() returns 0 for success or the value returned by the
++ * progress callback!
++ */
++int Curl_pgrsUpdate(struct connectdata *conn)
+ {
+ struct curltime now;
+ curl_off_t timespent;
+ curl_off_t timespent_ms; /* milliseconds */
+ struct Curl_easy *data = conn->data;
++ int nowindex = data->progress.speeder_c% CURR_TIME;
+ bool shownow = FALSE;
+ curl_off_t dl = data->progress.downloaded;
+ curl_off_t ul = data->progress.uploaded;
+@@ -397,9 +399,7 @@ static void progress_meter(struct connectdata *conn)
+ /* Calculations done at most once a second, unless end is reached */
+ if(data->progress.lastshow != now.tv_sec) {
+ int countindex; /* amount of seconds stored in the speeder array */
+- int nowindex = data->progress.speeder_c% CURR_TIME;
+- if(!(data->progress.flags & PGRS_HIDE))
+- shownow = TRUE;
++ shownow = TRUE;
+
+ data->progress.lastshow = now.tv_sec;
+
+@@ -461,12 +461,8 @@ static void progress_meter(struct connectdata *conn)
+ data->progress.ulspeed + data->progress.dlspeed;
+
+ } /* Calculations end */
+- if(!shownow)
+- /* only show the internal progress meter once per second */
+- return;
+- else {
+- /* If there's no external callback set, use internal code to show
+- progress */
++
++ if(!(data->progress.flags & PGRS_HIDE)) {
+ /* progress meter has not been shut off */
+ char max5[6][10];
+ curl_off_t dlpercen = 0;
+@@ -481,6 +477,42 @@ static void progress_meter(struct connectdata *conn)
+ curl_off_t dlestimate = 0;
+ curl_off_t total_estimate;
+
++ if(data->set.fxferinfo) {
++ int result;
++ /* There's a callback set, call that */
++ Curl_set_in_callback(data, true);
++ result = data->set.fxferinfo(data->set.progress_client,
++ data->progress.size_dl,
++ data->progress.downloaded,
++ data->progress.size_ul,
++ data->progress.uploaded);
++ Curl_set_in_callback(data, false);
++ if(result)
++ failf(data, "Callback aborted");
++ return result;
++ }
++ if(data->set.fprogress) {
++ int result;
++ /* The older deprecated callback is set, call that */
++ Curl_set_in_callback(data, true);
++ result = data->set.fprogress(data->set.progress_client,
++ (double)data->progress.size_dl,
++ (double)data->progress.downloaded,
++ (double)data->progress.size_ul,
++ (double)data->progress.uploaded);
++ Curl_set_in_callback(data, false);
++ if(result)
++ failf(data, "Callback aborted");
++ return result;
++ }
++
++ if(!shownow)
++ /* only show the internal progress meter once per second */
++ return 0;
++
++ /* If there's no external callback set, use internal code to show
++ progress */
++
+ if(!(data->progress.flags & PGRS_HEADERS_OUT)) {
+ if(data->state.resume_from) {
+ fprintf(data->set.err,
+@@ -563,57 +595,13 @@ static void progress_meter(struct connectdata *conn)
+ time_total, /* 8 letters */ /* total time */
+ time_spent, /* 8 letters */ /* time spent */
+ time_left, /* 8 letters */ /* time left */
+- max5data(data->progress.current_speed, max5[5])
+- );
++ max5data(data->progress.current_speed, max5[5]) /* current speed */
++ );
+
+ /* we flush the output stream to make it appear as soon as possible */
+ fflush(data->set.err);
+- } /* don't show now */
+-}
+-#else
+- /* progress bar disabled */
+-#define progress_meter(x)
+-#endif
+-
+
+-/*
+- * Curl_pgrsUpdate() returns 0 for success or the value returned by the
+- * progress callback!
+- */
+-int Curl_pgrsUpdate(struct connectdata *conn)
+-{
+- struct Curl_easy *data = conn->data;
+- if(!(data->progress.flags & PGRS_HIDE)) {
+- if(data->set.fxferinfo) {
+- int result;
+- /* There's a callback set, call that */
+- Curl_set_in_callback(data, true);
+- result = data->set.fxferinfo(data->set.progress_client,
+- data->progress.size_dl,
+- data->progress.downloaded,
+- data->progress.size_ul,
+- data->progress.uploaded);
+- Curl_set_in_callback(data, false);
+- if(result)
+- failf(data, "Callback aborted");
+- return result;
+- }
+- if(data->set.fprogress) {
+- int result;
+- /* The older deprecated callback is set, call that */
+- Curl_set_in_callback(data, true);
+- result = data->set.fprogress(data->set.progress_client,
+- (double)data->progress.size_dl,
+- (double)data->progress.downloaded,
+- (double)data->progress.size_ul,
+- (double)data->progress.uploaded);
+- Curl_set_in_callback(data, false);
+- if(result)
+- failf(data, "Callback aborted");
+- return result;
+- }
+- }
+- progress_meter(conn);
++ } /* !(data->progress.flags & PGRS_HIDE) */
+
+ return 0;
+ }
+--
+2.20.1
+
diff --git a/curl.spec b/curl.spec
index cb35ee2..79eb8a9 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,10 +1,13 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.65.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# fix spurious timeout events with speed-limit (#1714893)
+Patch1: 0001-curl-7.65.0-speed-limit-timeout.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -171,6 +174,7 @@ be installed.
%setup -q
# upstream patches
+%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -346,6 +350,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Thu May 30 2019 Kamil Dudka - 7.65.0-2
+- fix spurious timeout events with speed-limit (#1714893)
+
* Wed May 22 2019 Kamil Dudka - 7.65.0-1
- new upstream release, which fixes the following vulnerabilities
CVE-2019-5436 - TFTP receive buffer overflow
From 901da63160e081c2f0b4b2dce8b8afc2026e2431 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 5 Jun 2019 09:30:50 +0200
Subject: [PATCH 023/218] new upstream release - 7.65.1
---
0001-curl-7.65.0-speed-limit-timeout.patch | 203 ---------------------
0102-curl-7.36.0-debug.patch | 2 +-
curl-7.65.0.tar.xz.asc | 11 --
curl-7.65.1.tar.xz.asc | 11 ++
curl.spec | 11 +-
sources | 2 +-
6 files changed, 18 insertions(+), 222 deletions(-)
delete mode 100644 0001-curl-7.65.0-speed-limit-timeout.patch
delete mode 100644 curl-7.65.0.tar.xz.asc
create mode 100644 curl-7.65.1.tar.xz.asc
diff --git a/0001-curl-7.65.0-speed-limit-timeout.patch b/0001-curl-7.65.0-speed-limit-timeout.patch
deleted file mode 100644
index f9e155b..0000000
--- a/0001-curl-7.65.0-speed-limit-timeout.patch
+++ /dev/null
@@ -1,203 +0,0 @@
-From f2cc9d8d194c4eef706cb5470bdf6f7483b4e3cf Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Wed, 22 May 2019 23:15:34 +0200
-Subject: [PATCH] Revert "progress: CURL_DISABLE_PROGRESS_METER"
-
-This reverts commit 3b06e68b7734cb10a555f9d7e804dd5d808236a4.
-
-Clearly this change wasn't good enough as it broke CURLOPT_LOW_SPEED_LIMIT +
-CURLOPT_LOW_SPEED_TIME
-
-Reported-by: Dave Reisner
-
-Fixes #3927
-Closes #3928
-
-Upstream-commit: c6b58137237a89081b4efc33ae0ecf7282e40132
-Signed-off-by: Kamil Dudka
----
- lib/progress.c | 110 ++++++++++++++++++++++---------------------------
- 1 file changed, 49 insertions(+), 61 deletions(-)
-
-diff --git a/lib/progress.c b/lib/progress.c
-index f586d59b4..fe9929bb9 100644
---- a/lib/progress.c
-+++ b/lib/progress.c
-@@ -5,7 +5,7 @@
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
-- * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
-+ * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
-@@ -31,7 +31,6 @@
- /* check rate limits within this many recent milliseconds, at minimum. */
- #define MIN_RATE_LIMIT_PERIOD 3000
-
--#ifndef CURL_DISABLE_PROGRESS_METER
- /* Provide a string that is 2 + 1 + 2 + 1 + 2 = 8 letters long (plus the zero
- byte) */
- static void time2str(char *r, curl_off_t seconds)
-@@ -120,7 +119,6 @@ static char *max5data(curl_off_t bytes, char *max5)
-
- return max5;
- }
--#endif
-
- /*
-
-@@ -364,13 +362,17 @@ void Curl_pgrsSetUploadSize(struct Curl_easy *data, curl_off_t size)
- }
- }
-
--#ifndef CURL_DISABLE_PROGRESS_METER
--static void progress_meter(struct connectdata *conn)
-+/*
-+ * Curl_pgrsUpdate() returns 0 for success or the value returned by the
-+ * progress callback!
-+ */
-+int Curl_pgrsUpdate(struct connectdata *conn)
- {
- struct curltime now;
- curl_off_t timespent;
- curl_off_t timespent_ms; /* milliseconds */
- struct Curl_easy *data = conn->data;
-+ int nowindex = data->progress.speeder_c% CURR_TIME;
- bool shownow = FALSE;
- curl_off_t dl = data->progress.downloaded;
- curl_off_t ul = data->progress.uploaded;
-@@ -397,9 +399,7 @@ static void progress_meter(struct connectdata *conn)
- /* Calculations done at most once a second, unless end is reached */
- if(data->progress.lastshow != now.tv_sec) {
- int countindex; /* amount of seconds stored in the speeder array */
-- int nowindex = data->progress.speeder_c% CURR_TIME;
-- if(!(data->progress.flags & PGRS_HIDE))
-- shownow = TRUE;
-+ shownow = TRUE;
-
- data->progress.lastshow = now.tv_sec;
-
-@@ -461,12 +461,8 @@ static void progress_meter(struct connectdata *conn)
- data->progress.ulspeed + data->progress.dlspeed;
-
- } /* Calculations end */
-- if(!shownow)
-- /* only show the internal progress meter once per second */
-- return;
-- else {
-- /* If there's no external callback set, use internal code to show
-- progress */
-+
-+ if(!(data->progress.flags & PGRS_HIDE)) {
- /* progress meter has not been shut off */
- char max5[6][10];
- curl_off_t dlpercen = 0;
-@@ -481,6 +477,42 @@ static void progress_meter(struct connectdata *conn)
- curl_off_t dlestimate = 0;
- curl_off_t total_estimate;
-
-+ if(data->set.fxferinfo) {
-+ int result;
-+ /* There's a callback set, call that */
-+ Curl_set_in_callback(data, true);
-+ result = data->set.fxferinfo(data->set.progress_client,
-+ data->progress.size_dl,
-+ data->progress.downloaded,
-+ data->progress.size_ul,
-+ data->progress.uploaded);
-+ Curl_set_in_callback(data, false);
-+ if(result)
-+ failf(data, "Callback aborted");
-+ return result;
-+ }
-+ if(data->set.fprogress) {
-+ int result;
-+ /* The older deprecated callback is set, call that */
-+ Curl_set_in_callback(data, true);
-+ result = data->set.fprogress(data->set.progress_client,
-+ (double)data->progress.size_dl,
-+ (double)data->progress.downloaded,
-+ (double)data->progress.size_ul,
-+ (double)data->progress.uploaded);
-+ Curl_set_in_callback(data, false);
-+ if(result)
-+ failf(data, "Callback aborted");
-+ return result;
-+ }
-+
-+ if(!shownow)
-+ /* only show the internal progress meter once per second */
-+ return 0;
-+
-+ /* If there's no external callback set, use internal code to show
-+ progress */
-+
- if(!(data->progress.flags & PGRS_HEADERS_OUT)) {
- if(data->state.resume_from) {
- fprintf(data->set.err,
-@@ -563,57 +595,13 @@ static void progress_meter(struct connectdata *conn)
- time_total, /* 8 letters */ /* total time */
- time_spent, /* 8 letters */ /* time spent */
- time_left, /* 8 letters */ /* time left */
-- max5data(data->progress.current_speed, max5[5])
-- );
-+ max5data(data->progress.current_speed, max5[5]) /* current speed */
-+ );
-
- /* we flush the output stream to make it appear as soon as possible */
- fflush(data->set.err);
-- } /* don't show now */
--}
--#else
-- /* progress bar disabled */
--#define progress_meter(x)
--#endif
--
-
--/*
-- * Curl_pgrsUpdate() returns 0 for success or the value returned by the
-- * progress callback!
-- */
--int Curl_pgrsUpdate(struct connectdata *conn)
--{
-- struct Curl_easy *data = conn->data;
-- if(!(data->progress.flags & PGRS_HIDE)) {
-- if(data->set.fxferinfo) {
-- int result;
-- /* There's a callback set, call that */
-- Curl_set_in_callback(data, true);
-- result = data->set.fxferinfo(data->set.progress_client,
-- data->progress.size_dl,
-- data->progress.downloaded,
-- data->progress.size_ul,
-- data->progress.uploaded);
-- Curl_set_in_callback(data, false);
-- if(result)
-- failf(data, "Callback aborted");
-- return result;
-- }
-- if(data->set.fprogress) {
-- int result;
-- /* The older deprecated callback is set, call that */
-- Curl_set_in_callback(data, true);
-- result = data->set.fprogress(data->set.progress_client,
-- (double)data->progress.size_dl,
-- (double)data->progress.downloaded,
-- (double)data->progress.size_ul,
-- (double)data->progress.uploaded);
-- Curl_set_in_callback(data, false);
-- if(result)
-- failf(data, "Callback aborted");
-- return result;
-- }
-- }
-- progress_meter(conn);
-+ } /* !(data->progress.flags & PGRS_HIDE) */
-
- return 0;
- }
---
-2.20.1
-
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index 265c3ff..e757b9d 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16273,18 +16273,11 @@ $as_echo "yes" >&6; }
+@@ -16268,18 +16268,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/curl-7.65.0.tar.xz.asc b/curl-7.65.0.tar.xz.asc
deleted file mode 100644
index 21f3b0b..0000000
--- a/curl-7.65.0.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlzk438ACgkQXMkI/bce
-EsITWggAgk129Kxp4Br7Nn2+vyygKwv3dDEm87wJVuQka8gT2pZ9ZVQ6rEX9j0sR
-RETf8KrEbSlOBgl2EJpgToL5kgiMCweTXced3VY2szVVibenBa2Zd9MpSl5Sf7hH
-axinhdvEPNH+w8WuprEqZh+d/T5grAxChPJz4bLqKQI5fw5T3IuMfYTjZqx8DkOt
-4FekihWCr6N/nW9BFOz8H19GFtotYSwoPvQJ+RmB7+Zt7ruHjRgyINCgxbWPvs4P
-eZNWykqQ9FaXLSoJQYjLvEx0smye0bxSu3EIYBeL60fiFWJaSHQPyfBgC3JC+dD6
-ufxhEk814I4XzPaRFTLjgzjmTqRMPw==
-=4VIp
------END PGP SIGNATURE-----
diff --git a/curl-7.65.1.tar.xz.asc b/curl-7.65.1.tar.xz.asc
new file mode 100644
index 0000000..1fb59c8
--- /dev/null
+++ b/curl-7.65.1.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlz3WXoACgkQXMkI/bce
+EsLceAgAg0RTq0HLyI2DtJyR4b60vKXTFizjIxEEBJ9NCjpxwUTg4q3H6tzIOuCR
+PrPQXMADKtZpWwBDO1LV0CoUykw3vWxkG8uf5v/2GhdMdRGKm1TBgj1XN8SuAYTB
+Srpus7LtyiIuElpOGUNNTIMcVXjT4ykJbLU61ykNSPc8IxK3KSY0C+dc/IpQQWQe
+FmkMhuEpI4heu3uTmaj/UDs5LN+pv383XUTbMZvtgzDlquoyECGYX88+K6HC3doy
+HiulXv99BUckmnCvbzL9Ly/QsbYq41UJLfc8HN4B1VtKTXkZJFyHwd8NMlSl8rQq
+CLhRgj7IFk6VAEPpF3jJrmuvDxvdng==
+=hzYt
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 79eb8a9..e9de3c9 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.65.0
-Release: 2%{?dist}
+Version: 7.65.1
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# fix spurious timeout events with speed-limit (#1714893)
-Patch1: 0001-curl-7.65.0-speed-limit-timeout.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -174,7 +171,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -350,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Jun 05 2019 Kamil Dudka - 7.65.1-1
+- new upstream release
+
* Thu May 30 2019 Kamil Dudka - 7.65.0-2
- fix spurious timeout events with speed-limit (#1714893)
diff --git a/sources b/sources
index 36347c9..242cb15 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.65.0.tar.xz) = 032c065c1d4bd07ba028625f8fab6a09e7cb8505a5f19339b3abdee5a9cda7d091c11f075fe3fc227d082690a66c558c770a4cd9fb17b52acc13794976a770c5
+SHA512 (curl-7.65.1.tar.xz) = aba2d979a416d14a0f0852d595665e49fc4f7bff3bee31f3a52b90ba9dc5ffdb09c092777f124215470b72c47ebca7ddb47844cbf5c0e9142099272b6ac55df4
From 6e794d5beb6b56607f163c5c7862b010982f7b69 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 17 Jul 2019 10:28:35 +0200
Subject: [PATCH 024/218] new upstream release - 7.65.2
---
0102-curl-7.36.0-debug.patch | 2 +-
0105-curl-7.63.0-lib1560-valgrind.patch | 2 +-
curl-7.65.1.tar.xz.asc | 11 -----------
curl-7.65.2.tar.xz.asc | 11 +++++++++++
curl.spec | 5 ++++-
sources | 2 +-
6 files changed, 18 insertions(+), 15 deletions(-)
delete mode 100644 curl-7.65.1.tar.xz.asc
create mode 100644 curl-7.65.2.tar.xz.asc
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index e757b9d..4f7991b 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16268,18 +16268,11 @@ $as_echo "yes" >&6; }
+@@ -16288,18 +16288,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/0105-curl-7.63.0-lib1560-valgrind.patch b/0105-curl-7.63.0-lib1560-valgrind.patch
index 652739c..6d05c67 100644
--- a/0105-curl-7.63.0-lib1560-valgrind.patch
+++ b/0105-curl-7.63.0-lib1560-valgrind.patch
@@ -26,7 +26,7 @@ diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 080421b..ea3b806 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
-@@ -528,6 +528,7 @@ lib1559_SOURCES = lib1559.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+@@ -531,6 +531,7 @@ lib1559_SOURCES = lib1559.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1559_LDADD = $(TESTUTIL_LIBS)
lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
diff --git a/curl-7.65.1.tar.xz.asc b/curl-7.65.1.tar.xz.asc
deleted file mode 100644
index 1fb59c8..0000000
--- a/curl-7.65.1.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlz3WXoACgkQXMkI/bce
-EsLceAgAg0RTq0HLyI2DtJyR4b60vKXTFizjIxEEBJ9NCjpxwUTg4q3H6tzIOuCR
-PrPQXMADKtZpWwBDO1LV0CoUykw3vWxkG8uf5v/2GhdMdRGKm1TBgj1XN8SuAYTB
-Srpus7LtyiIuElpOGUNNTIMcVXjT4ykJbLU61ykNSPc8IxK3KSY0C+dc/IpQQWQe
-FmkMhuEpI4heu3uTmaj/UDs5LN+pv383XUTbMZvtgzDlquoyECGYX88+K6HC3doy
-HiulXv99BUckmnCvbzL9Ly/QsbYq41UJLfc8HN4B1VtKTXkZJFyHwd8NMlSl8rQq
-CLhRgj7IFk6VAEPpF3jJrmuvDxvdng==
-=hzYt
------END PGP SIGNATURE-----
diff --git a/curl-7.65.2.tar.xz.asc b/curl-7.65.2.tar.xz.asc
new file mode 100644
index 0000000..911a393
--- /dev/null
+++ b/curl-7.65.2.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl0uzp8ACgkQXMkI/bce
+EsKvxggApofdiAeSY2lMwKfydA6vmZRhLmdBcBx4AvA3dD56Yzs2Y78EVcv7Mtz7
+Dix90SQEQLrf29DqZh6U3/z96hwbUU0sx0k8I38KhePxAEiFcIgnyXTt4PaRrAzr
+WlIk5GX+Xz9HbWEop8b2yIskVUd+VfnyR1VH/+mBzpAHn9tbPscyBT8xcKCN8LxM
+QiQdzyXcxfPbBthYPaf2+bWhicch3pS4u4El8o4BTdosZrpElZtSD3RKKCbgK4Kw
+688juLaWVfFhoVgyEUc1cMJRqF3Q093rbxH5Z97cW6XBQRlhFW7HFgEEHq1bhXCF
++sMUhfr1Wz+LHfVg4SasOS4fqX3Mlg==
+=I4Mq
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index e9de3c9..5d5b096 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,6 +1,6 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.65.1
+Version: 7.65.2
Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -346,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Jul 17 2019 Kamil Dudka - 7.65.2-1
+- new upstream release
+
* Wed Jun 05 2019 Kamil Dudka - 7.65.1-1
- new upstream release
diff --git a/sources b/sources
index 242cb15..563e0f4 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.65.1.tar.xz) = aba2d979a416d14a0f0852d595665e49fc4f7bff3bee31f3a52b90ba9dc5ffdb09c092777f124215470b72c47ebca7ddb47844cbf5c0e9142099272b6ac55df4
+SHA512 (curl-7.65.2.tar.xz) = a411cf19c389301473d74b85d775e3ba0c7c2f6e74d7e0f8de47dace1a709bfba552c483c3faf94101f741a5478800284c475422844cedb6a7a070e2f78af263
From a5c984a5907b2ccf14e4d1524b6135244a607b51 Mon Sep 17 00:00:00 2001
From: Paul Howarth
Date: Sat, 20 Jul 2019 12:02:57 +0100
Subject: [PATCH 025/218] new upstream release - 7.65.3
---
curl-7.65.2.tar.xz.asc | 11 -----------
curl-7.65.3.tar.xz.asc | 11 +++++++++++
curl.spec | 5 ++++-
sources | 2 +-
4 files changed, 16 insertions(+), 13 deletions(-)
delete mode 100644 curl-7.65.2.tar.xz.asc
create mode 100644 curl-7.65.3.tar.xz.asc
diff --git a/curl-7.65.2.tar.xz.asc b/curl-7.65.2.tar.xz.asc
deleted file mode 100644
index 911a393..0000000
--- a/curl-7.65.2.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl0uzp8ACgkQXMkI/bce
-EsKvxggApofdiAeSY2lMwKfydA6vmZRhLmdBcBx4AvA3dD56Yzs2Y78EVcv7Mtz7
-Dix90SQEQLrf29DqZh6U3/z96hwbUU0sx0k8I38KhePxAEiFcIgnyXTt4PaRrAzr
-WlIk5GX+Xz9HbWEop8b2yIskVUd+VfnyR1VH/+mBzpAHn9tbPscyBT8xcKCN8LxM
-QiQdzyXcxfPbBthYPaf2+bWhicch3pS4u4El8o4BTdosZrpElZtSD3RKKCbgK4Kw
-688juLaWVfFhoVgyEUc1cMJRqF3Q093rbxH5Z97cW6XBQRlhFW7HFgEEHq1bhXCF
-+sMUhfr1Wz+LHfVg4SasOS4fqX3Mlg==
-=I4Mq
------END PGP SIGNATURE-----
diff --git a/curl-7.65.3.tar.xz.asc b/curl-7.65.3.tar.xz.asc
new file mode 100644
index 0000000..1671b07
--- /dev/null
+++ b/curl-7.65.3.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl0xj7oACgkQXMkI/bce
+EsKYbgf9G41o5x73tc+2TOGt2QmJ7ukyHmd5Vq7XTSNdNU5dJ41Z3qh9Jm72x62i
+b4kJMjWyoL2j031ml5JevycpMpNa1v784UlPW2tzzL2B7v6vcA4xknJRLWlPlcTJ
+HOgub6r7g/zhOpdAeJh8o4jkBLUyN+S/HOyHLWcvdWDnhqUAmpZfIqtd8kjqzDul
+XAkdj7MxWqKZ3wXWwlpp4j81jpfOj7KCC/ZpxlJ0KfefgYEzV23O2hcJzw57jqTy
+SQZc39uTQOjbZPlBXJD55QeVISCwe53pn55aWQll90XfE3XRapuYZdiL8wLwtl/L
+tjugTKjfoy9qqOGH5YB/4kHqoSJqow==
+=Itbi
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 5d5b096..a3f320a 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,6 +1,6 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.65.2
+Version: 7.65.3
Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -346,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Sat Jul 20 2019 Paul Howarth - 7.65.3-1
+- new upstream release
+
* Wed Jul 17 2019 Kamil Dudka - 7.65.2-1
- new upstream release
diff --git a/sources b/sources
index 563e0f4..e0d70dd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.65.2.tar.xz) = a411cf19c389301473d74b85d775e3ba0c7c2f6e74d7e0f8de47dace1a709bfba552c483c3faf94101f741a5478800284c475422844cedb6a7a070e2f78af263
+SHA512 (curl-7.65.3.tar.xz) = fc4f041d3d6682378ce9eef2c6081e6ad83bb2502ea4c992c760266584c09e9ebca7c6d35958bd32a888702d9308cbce7aef69c431f97994107d7ff6b953941b
From 22186831fb63c0aa5cf7d145919801c20cd96780 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 24 Jul 2019 21:21:56 +0000
Subject: [PATCH 026/218] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
curl.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/curl.spec b/curl.spec
index a3f320a..3828aff 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.65.3
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -346,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Jul 24 2019 Fedora Release Engineering - 7.65.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Sat Jul 20 2019 Paul Howarth - 7.65.3-1
- new upstream release
From 863394fd9543b71d6b01cfb325d20ddcf189b86e Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Thu, 1 Aug 2019 16:31:27 +0200
Subject: [PATCH 027/218] improve handling of gss_init_sec_context() failures
---
0001-curl-7.65.3-negotiate-fails.patch | 166 +++++++++++++++++++++++++
curl.spec | 9 +-
2 files changed, 174 insertions(+), 1 deletion(-)
create mode 100644 0001-curl-7.65.3-negotiate-fails.patch
diff --git a/0001-curl-7.65.3-negotiate-fails.patch b/0001-curl-7.65.3-negotiate-fails.patch
new file mode 100644
index 0000000..9cfae77
--- /dev/null
+++ b/0001-curl-7.65.3-negotiate-fails.patch
@@ -0,0 +1,166 @@
+From 90f7ca7bec18b49bf2706430aa6493eda7d7a573 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Tue, 30 Jul 2019 12:59:35 +0200
+Subject: [PATCH] http_negotiate: improve handling of gss_init_sec_context()
+ failures
+
+If HTTPAUTH_GSSNEGOTIATE was used for a POST request and
+gss_init_sec_context() failed, the POST request was sent
+with empty body. This commit also restores the original
+behavior of `curl --fail --negotiate`, which was changed
+by commit 6c6035532383e300c712e4c1cd9fdd749ed5cf59.
+
+Add regression tests 2077 and 2078 to cover this.
+
+Fixes #3992
+Closes #4171
+
+Upstream-commit: 4c187043c5aac57f354ebb96cc6ff3263411e98d
+Signed-off-by: Kamil Dudka
+---
+ lib/http_negotiate.c | 2 +-
+ tests/data/Makefile.inc | 3 ++-
+ tests/data/test2077 | 42 ++++++++++++++++++++++++++++++++
+ tests/data/test2078 | 54 +++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 99 insertions(+), 2 deletions(-)
+ create mode 100644 tests/data/test2077
+ create mode 100644 tests/data/test2078
+
+diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
+index c8f406444..fe15dcefb 100644
+--- a/lib/http_negotiate.c
++++ b/lib/http_negotiate.c
+@@ -151,7 +151,7 @@ CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)
+ if(result == CURLE_LOGIN_DENIED) {
+ /* negotiate auth failed, let's continue unauthenticated to stay
+ * compatible with the behavior before curl-7_64_0-158-g6c6035532 */
+- conn->data->state.authproblem = TRUE;
++ authp->done = TRUE;
+ return CURLE_OK;
+ }
+ else if(result)
+diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
+index 693e53d7c..3ed4a03e4 100644
+--- a/tests/data/Makefile.inc
++++ b/tests/data/Makefile.inc
+@@ -199,7 +199,8 @@ test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 \
+ test2048 test2049 test2050 test2051 test2052 test2053 test2054 test2055 \
+ test2056 test2057 test2058 test2059 test2060 test2061 test2062 test2063 \
+ test2064 test2065 test2066 test2067 test2068 test2069 \
+- test2071 test2072 test2073 test2074 test2075 test2076 \
++ test2071 test2072 test2073 test2074 test2075 test2076 test2077 \
++test2078 \
+ test2080 \
+ test2100 \
+ \
+diff --git a/tests/data/test2077 b/tests/data/test2077
+new file mode 100644
+index 000000000..0c600f5c3
+--- /dev/null
++++ b/tests/data/test2077
+@@ -0,0 +1,42 @@
++
++
++
++HTTP
++HTTP GET
++GSS-API
++
++
++
++# Server-side
++
++
++HTTP/1.1 200 OK swsclose
++Content-Length: 23
++
++This IS the real page!
++
++
++
++# Client-side
++
++
++http
++
++
++GSS-API
++
++
++curl --fail --negotiate to unauthenticated service fails
++
++
++http://%HOSTIP:%HTTPPORT/2077 -u : --fail --negotiate
++
++
++
++# Verify data after the test has been "shot"
++
++
++0
++
++
++
+diff --git a/tests/data/test2078 b/tests/data/test2078
+new file mode 100644
+index 000000000..99bc2dbee
+--- /dev/null
++++ b/tests/data/test2078
+@@ -0,0 +1,54 @@
++
++
++
++HTTP
++HTTP GET
++GSS-API
++
++
++
++# Server-side
++
++
++HTTP/1.1 200 OK swsclose
++Content-Length: 23
++
++This IS the real page!
++
++
++
++# Client-side
++
++
++http
++
++
++GSS-API
++
++
++curl --negotiate should not send empty POST request only
++
++
++http://%HOSTIP:%HTTPPORT/2078 -u : --negotiate --data name=value
++
++
++
++# Verify data after the test has been "shot"
++
++
++0
++
++
++^User-Agent:.*
++
++
++POST /2078 HTTP/1.1
++Host: 127.0.0.1:8990
++Accept: */*
++Content-Length: 10
++Content-Type: application/x-www-form-urlencoded
++
++name=value
++
++
++
+--
+2.20.1
+
diff --git a/curl.spec b/curl.spec
index 3828aff..ad0b460 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,10 +1,13 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.65.3
-Release: 2%{?dist}
+Release: 3%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# improve handling of gss_init_sec_context() failures
+Patch1: 0001-curl-7.65.3-negotiate-fails.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -171,6 +174,7 @@ be installed.
%setup -q
# upstream patches
+%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -346,6 +350,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Thu Aug 01 2019 Kamil Dudka - 7.65.3-3
+- new upstream release
+
* Wed Jul 24 2019 Fedora Release Engineering - 7.65.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
From 8559ecc1d99f43ecedecf06c588afe20286680ce Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Thu, 1 Aug 2019 16:41:42 +0200
Subject: [PATCH 028/218] changelog: fix copy/paste error in the last entry
---
curl.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/curl.spec b/curl.spec
index ad0b460..e6799f9 100644
--- a/curl.spec
+++ b/curl.spec
@@ -351,7 +351,7 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%changelog
* Thu Aug 01 2019 Kamil Dudka - 7.65.3-3
-- new upstream release
+- improve handling of gss_init_sec_context() failures
* Wed Jul 24 2019 Fedora Release Engineering - 7.65.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
From 91c50ee6d4c7512577cf97fbdb6b8038bf8b6de3 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Tue, 27 Aug 2019 18:10:11 +0200
Subject: [PATCH 029/218] Resolves: #1690971 - avoid reporting spurious error
in the HTTP2 framing layer
---
0002-curl-7.65.3-h2-framing-layer-error.patch | 37 +++++++++++++++++++
curl.spec | 9 ++++-
2 files changed, 45 insertions(+), 1 deletion(-)
create mode 100644 0002-curl-7.65.3-h2-framing-layer-error.patch
diff --git a/0002-curl-7.65.3-h2-framing-layer-error.patch b/0002-curl-7.65.3-h2-framing-layer-error.patch
new file mode 100644
index 0000000..24db142
--- /dev/null
+++ b/0002-curl-7.65.3-h2-framing-layer-error.patch
@@ -0,0 +1,37 @@
+From 98d59387c749256c2421b22dc3419b94d381986a Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Mon, 26 Aug 2019 16:00:05 +0200
+Subject: [PATCH] http2: when marked for closure and wanted to close == OK
+
+It could otherwise return an error even when closed correctly if GOAWAY
+had been received previously.
+
+Reported-by: Tom van der Woerdt
+Fixes #4267
+Closes #4268
+
+Upstream-commit: c1b6a384f9c8a91197c20adb49d43f30dc0e917d
+Signed-off-by: Kamil Dudka
+---
+ lib/http2.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/http2.c b/lib/http2.c
+index 930e85165..31d2d698a 100644
+--- a/lib/http2.c
++++ b/lib/http2.c
+@@ -1566,6 +1566,11 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
+ if(should_close_session(httpc)) {
+ H2BUGF(infof(data,
+ "http2_recv: nothing to do in this session\n"));
++ if(conn->bits.close) {
++ /* already marked for closure, return OK and we're done */
++ *err = CURLE_OK;
++ return 0;
++ }
+ *err = CURLE_HTTP2;
+ return -1;
+ }
+--
+2.20.1
+
diff --git a/curl.spec b/curl.spec
index e6799f9..54654c4 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,16 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.65.3
-Release: 3%{?dist}
+Release: 4%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
# improve handling of gss_init_sec_context() failures
Patch1: 0001-curl-7.65.3-negotiate-fails.patch
+# avoid reporting spurious error in the HTTP2 framing layer (#1690971)
+Patch2: 0002-curl-7.65.3-h2-framing-layer-error.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -175,6 +178,7 @@ be installed.
# upstream patches
%patch1 -p1
+%patch2 -p1
# Fedora patches
%patch101 -p1
@@ -350,6 +354,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Tue Aug 27 2019 Kamil Dudka - 7.65.3-4
+- avoid reporting spurious error in the HTTP2 framing layer (#1690971)
+
* Thu Aug 01 2019 Kamil Dudka - 7.65.3-3
- improve handling of gss_init_sec_context() failures
From da9af162568dfb4338fd422cf398964fda75b72e Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 11 Sep 2019 09:57:42 +0200
Subject: [PATCH 030/218] new upstream release - 7.66.0
Resolves: CVE-2019-5481 - double free due to subsequent call of realloc()
Resolves: CVE-2019-5482 - heap buffer overflow in function tftp_receive_packet()
---
0001-curl-7.65.3-negotiate-fails.patch | 166 ------------------
0002-curl-7.65.3-h2-framing-layer-error.patch | 37 ----
0102-curl-7.36.0-debug.patch | 2 +-
curl-7.65.3.tar.xz.asc | 11 --
curl-7.66.0.tar.xz.asc | 11 ++
curl.spec | 17 +-
sources | 2 +-
7 files changed, 20 insertions(+), 226 deletions(-)
delete mode 100644 0001-curl-7.65.3-negotiate-fails.patch
delete mode 100644 0002-curl-7.65.3-h2-framing-layer-error.patch
delete mode 100644 curl-7.65.3.tar.xz.asc
create mode 100644 curl-7.66.0.tar.xz.asc
diff --git a/0001-curl-7.65.3-negotiate-fails.patch b/0001-curl-7.65.3-negotiate-fails.patch
deleted file mode 100644
index 9cfae77..0000000
--- a/0001-curl-7.65.3-negotiate-fails.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 90f7ca7bec18b49bf2706430aa6493eda7d7a573 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka
-Date: Tue, 30 Jul 2019 12:59:35 +0200
-Subject: [PATCH] http_negotiate: improve handling of gss_init_sec_context()
- failures
-
-If HTTPAUTH_GSSNEGOTIATE was used for a POST request and
-gss_init_sec_context() failed, the POST request was sent
-with empty body. This commit also restores the original
-behavior of `curl --fail --negotiate`, which was changed
-by commit 6c6035532383e300c712e4c1cd9fdd749ed5cf59.
-
-Add regression tests 2077 and 2078 to cover this.
-
-Fixes #3992
-Closes #4171
-
-Upstream-commit: 4c187043c5aac57f354ebb96cc6ff3263411e98d
-Signed-off-by: Kamil Dudka
----
- lib/http_negotiate.c | 2 +-
- tests/data/Makefile.inc | 3 ++-
- tests/data/test2077 | 42 ++++++++++++++++++++++++++++++++
- tests/data/test2078 | 54 +++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 99 insertions(+), 2 deletions(-)
- create mode 100644 tests/data/test2077
- create mode 100644 tests/data/test2078
-
-diff --git a/lib/http_negotiate.c b/lib/http_negotiate.c
-index c8f406444..fe15dcefb 100644
---- a/lib/http_negotiate.c
-+++ b/lib/http_negotiate.c
-@@ -151,7 +151,7 @@ CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy)
- if(result == CURLE_LOGIN_DENIED) {
- /* negotiate auth failed, let's continue unauthenticated to stay
- * compatible with the behavior before curl-7_64_0-158-g6c6035532 */
-- conn->data->state.authproblem = TRUE;
-+ authp->done = TRUE;
- return CURLE_OK;
- }
- else if(result)
-diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
-index 693e53d7c..3ed4a03e4 100644
---- a/tests/data/Makefile.inc
-+++ b/tests/data/Makefile.inc
-@@ -199,7 +199,8 @@ test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 \
- test2048 test2049 test2050 test2051 test2052 test2053 test2054 test2055 \
- test2056 test2057 test2058 test2059 test2060 test2061 test2062 test2063 \
- test2064 test2065 test2066 test2067 test2068 test2069 \
-- test2071 test2072 test2073 test2074 test2075 test2076 \
-+ test2071 test2072 test2073 test2074 test2075 test2076 test2077 \
-+test2078 \
- test2080 \
- test2100 \
- \
-diff --git a/tests/data/test2077 b/tests/data/test2077
-new file mode 100644
-index 000000000..0c600f5c3
---- /dev/null
-+++ b/tests/data/test2077
-@@ -0,0 +1,42 @@
-+
-+
-+
-+HTTP
-+HTTP GET
-+GSS-API
-+
-+
-+
-+# Server-side
-+
-+
-+HTTP/1.1 200 OK swsclose
-+Content-Length: 23
-+
-+This IS the real page!
-+
-+
-+
-+# Client-side
-+
-+
-+http
-+
-+
-+GSS-API
-+
-+
-+curl --fail --negotiate to unauthenticated service fails
-+
-+
-+http://%HOSTIP:%HTTPPORT/2077 -u : --fail --negotiate
-+
-+
-+
-+# Verify data after the test has been "shot"
-+
-+
-+0
-+
-+
-+
-diff --git a/tests/data/test2078 b/tests/data/test2078
-new file mode 100644
-index 000000000..99bc2dbee
---- /dev/null
-+++ b/tests/data/test2078
-@@ -0,0 +1,54 @@
-+
-+
-+
-+HTTP
-+HTTP GET
-+GSS-API
-+
-+
-+
-+# Server-side
-+
-+
-+HTTP/1.1 200 OK swsclose
-+Content-Length: 23
-+
-+This IS the real page!
-+
-+
-+
-+# Client-side
-+
-+
-+http
-+
-+
-+GSS-API
-+
-+
-+curl --negotiate should not send empty POST request only
-+
-+
-+http://%HOSTIP:%HTTPPORT/2078 -u : --negotiate --data name=value
-+
-+
-+
-+# Verify data after the test has been "shot"
-+
-+
-+0
-+
-+
-+^User-Agent:.*
-+
-+
-+POST /2078 HTTP/1.1
-+Host: 127.0.0.1:8990
-+Accept: */*
-+Content-Length: 10
-+Content-Type: application/x-www-form-urlencoded
-+
-+name=value
-+
-+
-+
---
-2.20.1
-
diff --git a/0002-curl-7.65.3-h2-framing-layer-error.patch b/0002-curl-7.65.3-h2-framing-layer-error.patch
deleted file mode 100644
index 24db142..0000000
--- a/0002-curl-7.65.3-h2-framing-layer-error.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 98d59387c749256c2421b22dc3419b94d381986a Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Mon, 26 Aug 2019 16:00:05 +0200
-Subject: [PATCH] http2: when marked for closure and wanted to close == OK
-
-It could otherwise return an error even when closed correctly if GOAWAY
-had been received previously.
-
-Reported-by: Tom van der Woerdt
-Fixes #4267
-Closes #4268
-
-Upstream-commit: c1b6a384f9c8a91197c20adb49d43f30dc0e917d
-Signed-off-by: Kamil Dudka
----
- lib/http2.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/lib/http2.c b/lib/http2.c
-index 930e85165..31d2d698a 100644
---- a/lib/http2.c
-+++ b/lib/http2.c
-@@ -1566,6 +1566,11 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
- if(should_close_session(httpc)) {
- H2BUGF(infof(data,
- "http2_recv: nothing to do in this session\n"));
-+ if(conn->bits.close) {
-+ /* already marked for closure, return OK and we're done */
-+ *err = CURLE_OK;
-+ return 0;
-+ }
- *err = CURLE_HTTP2;
- return -1;
- }
---
-2.20.1
-
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index 4f7991b..affe9f0 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16288,18 +16288,11 @@ $as_echo "yes" >&6; }
+@@ -16301,18 +16301,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/curl-7.65.3.tar.xz.asc b/curl-7.65.3.tar.xz.asc
deleted file mode 100644
index 1671b07..0000000
--- a/curl-7.65.3.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl0xj7oACgkQXMkI/bce
-EsKYbgf9G41o5x73tc+2TOGt2QmJ7ukyHmd5Vq7XTSNdNU5dJ41Z3qh9Jm72x62i
-b4kJMjWyoL2j031ml5JevycpMpNa1v784UlPW2tzzL2B7v6vcA4xknJRLWlPlcTJ
-HOgub6r7g/zhOpdAeJh8o4jkBLUyN+S/HOyHLWcvdWDnhqUAmpZfIqtd8kjqzDul
-XAkdj7MxWqKZ3wXWwlpp4j81jpfOj7KCC/ZpxlJ0KfefgYEzV23O2hcJzw57jqTy
-SQZc39uTQOjbZPlBXJD55QeVISCwe53pn55aWQll90XfE3XRapuYZdiL8wLwtl/L
-tjugTKjfoy9qqOGH5YB/4kHqoSJqow==
-=Itbi
------END PGP SIGNATURE-----
diff --git a/curl-7.66.0.tar.xz.asc b/curl-7.66.0.tar.xz.asc
new file mode 100644
index 0000000..83e8258
--- /dev/null
+++ b/curl-7.66.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl14i4AACgkQXMkI/bce
+EsJwgwf/WauX31s687pdOgpPE4ymPuxIrdVl+NovWdOBdQQfIA0c/4lu4onJYPAT
+K6wq86me5y8fj/Q3ymqQ3H1EcJE2vTHPx/w+zEHNsEILtBMFHdm84CJzhdLlI1GC
+9iBkjVKk/2s0tBOdC3HuskYLY2y02dHACvTvDJjx42nK4IbsdjoamVdMa7vep1TG
+abmLRNHkOHKjioYWi0N04c5H5YDpdWOOjFY+EPO+m+YQuJlYkgw90nlmOaqiLcHL
+3zGCMNXb209wxuNEVKenlhPQ/3FQZ9+8a4b6mMqBX7PDwhDiZLhqIJgVseWdw1r0
+Qm2suW4eUtlC2DTqTMtusG7EMN8pag==
+=pFLb
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 54654c4..7d8f9f8 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,16 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.65.3
-Release: 4%{?dist}
+Version: 7.66.0
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# improve handling of gss_init_sec_context() failures
-Patch1: 0001-curl-7.65.3-negotiate-fails.patch
-
-# avoid reporting spurious error in the HTTP2 framing layer (#1690971)
-Patch2: 0002-curl-7.65.3-h2-framing-layer-error.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -177,8 +171,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
-%patch2 -p1
# Fedora patches
%patch101 -p1
@@ -354,6 +346,11 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Sep 11 2019 Kamil Dudka - 7.66.0-1
+- new upstream release, which fixes the following vulnerabilities
+ CVE-2019-5481 - double free due to subsequent call of realloc()
+ CVE-2019-5482 - heap buffer overflow in function tftp_receive_packet()
+
* Tue Aug 27 2019 Kamil Dudka - 7.65.3-4
- avoid reporting spurious error in the HTTP2 framing layer (#1690971)
diff --git a/sources b/sources
index e0d70dd..aea53b9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.65.3.tar.xz) = fc4f041d3d6682378ce9eef2c6081e6ad83bb2502ea4c992c760266584c09e9ebca7c6d35958bd32a888702d9308cbce7aef69c431f97994107d7ff6b953941b
+SHA512 (curl-7.66.0.tar.xz) = 81170e7e4fa9d99ee2038d96d7f2ab10dcf52435331c818c7565c1a733891720f845a08029915e52ba532c6a344c346e1678474624aac1cc333aea6d1eacde35
From e0bf66ef6c403a5f93199b6f5a29105f5e4c244f Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Fri, 13 Sep 2019 10:18:05 +0200
Subject: [PATCH 031/218] fix memory leaked by parse_metalink()
---
0001-curl-7.66.0-metalink-memleak.patch | 71 +++++++++++++++++++++++++
curl.spec | 4 ++
2 files changed, 75 insertions(+)
create mode 100644 0001-curl-7.66.0-metalink-memleak.patch
diff --git a/0001-curl-7.66.0-metalink-memleak.patch b/0001-curl-7.66.0-metalink-memleak.patch
new file mode 100644
index 0000000..16c8ae2
--- /dev/null
+++ b/0001-curl-7.66.0-metalink-memleak.patch
@@ -0,0 +1,71 @@
+From 855ebacdffbc421b121563ae1ecd9fde736bfaf2 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Wed, 11 Sep 2019 16:32:11 +0200
+Subject: [PATCH] curl: fix memory leaked by parse_metalink()
+
+This commit fixes a regression introduced by curl-7_65_3-5-gb88940850.
+Detected by tests 2005, 2008, 2009, 2010, 2011, and 2012 with valgrind
+and libmetalink enabled.
+
+Closes #4326
+
+Upstream-commit: 1ca91bcdb588dc6c25d345f2411fdba314433732
+Signed-off-by: Kamil Dudka
+---
+ src/tool_metalink.c | 2 +-
+ src/tool_metalink.h | 3 +++
+ src/tool_operate.c | 4 ++++
+ 3 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/tool_metalink.c b/src/tool_metalink.c
+index 0740407f9..cd5a7d650 100644
+--- a/src/tool_metalink.c
++++ b/src/tool_metalink.c
+@@ -965,7 +965,7 @@ static void delete_metalink_resource(metalink_resource *res)
+ Curl_safefree(res);
+ }
+
+-static void delete_metalinkfile(metalinkfile *mlfile)
++void delete_metalinkfile(metalinkfile *mlfile)
+ {
+ metalink_resource *res;
+ if(mlfile == NULL) {
+diff --git a/src/tool_metalink.h b/src/tool_metalink.h
+index 1e367033c..f5ec306f7 100644
+--- a/src/tool_metalink.h
++++ b/src/tool_metalink.h
+@@ -105,6 +105,8 @@ extern const digest_params SHA256_DIGEST_PARAMS[1];
+ * Counts the resource in the metalinkfile.
+ */
+ int count_next_metalink_resource(metalinkfile *mlfile);
++
++void delete_metalinkfile(metalinkfile *mlfile);
+ void clean_metalink(struct OperationConfig *config);
+
+ /*
+@@ -158,6 +160,7 @@ void metalink_cleanup(void);
+ #else /* USE_METALINK */
+
+ #define count_next_metalink_resource(x) 0
++#define delete_metalinkfile(x) (void)x
+ #define clean_metalink(x) (void)x
+
+ /* metalink_cleanup() takes no arguments */
+diff --git a/src/tool_operate.c b/src/tool_operate.c
+index d2ad9642d..09dfc0c84 100644
+--- a/src/tool_operate.c
++++ b/src/tool_operate.c
+@@ -2073,6 +2073,10 @@ static CURLcode serial_transfers(struct GlobalConfig *global,
+ result = post_transfer(global, share, per, result, &retry);
+ if(retry)
+ continue;
++
++ /* Release metalink related resources here */
++ delete_metalinkfile(per->mlfile);
++
+ per = del_transfer(per);
+
+ /* Bail out upon critical errors or --fail-early */
+--
+2.20.1
+
diff --git a/curl.spec b/curl.spec
index 7d8f9f8..62a4980 100644
--- a/curl.spec
+++ b/curl.spec
@@ -5,6 +5,9 @@ Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# fix memory leaked by parse_metalink()
+Patch1: 0001-curl-7.66.0-metalink-memleak.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -171,6 +174,7 @@ be installed.
%setup -q
# upstream patches
+%patch1 -p1
# Fedora patches
%patch101 -p1
From c667b141d6e0fa277fba73dc393b474b2ae0eb0c Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 6 Nov 2019 09:21:14 +0100
Subject: [PATCH 032/218] new upstream release - 7.67.0
---
0001-curl-7.66.0-metalink-memleak.patch | 71 -------------------------
0102-curl-7.36.0-debug.patch | 2 +-
0103-curl-7.59.0-python3.patch | 25 +--------
0105-curl-7.63.0-lib1560-valgrind.patch | 2 +-
curl-7.66.0.tar.xz.asc | 11 ----
curl-7.67.0.tar.xz.asc | 11 ++++
curl.spec | 9 ++--
sources | 2 +-
8 files changed, 19 insertions(+), 114 deletions(-)
delete mode 100644 0001-curl-7.66.0-metalink-memleak.patch
delete mode 100644 curl-7.66.0.tar.xz.asc
create mode 100644 curl-7.67.0.tar.xz.asc
diff --git a/0001-curl-7.66.0-metalink-memleak.patch b/0001-curl-7.66.0-metalink-memleak.patch
deleted file mode 100644
index 16c8ae2..0000000
--- a/0001-curl-7.66.0-metalink-memleak.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 855ebacdffbc421b121563ae1ecd9fde736bfaf2 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka
-Date: Wed, 11 Sep 2019 16:32:11 +0200
-Subject: [PATCH] curl: fix memory leaked by parse_metalink()
-
-This commit fixes a regression introduced by curl-7_65_3-5-gb88940850.
-Detected by tests 2005, 2008, 2009, 2010, 2011, and 2012 with valgrind
-and libmetalink enabled.
-
-Closes #4326
-
-Upstream-commit: 1ca91bcdb588dc6c25d345f2411fdba314433732
-Signed-off-by: Kamil Dudka
----
- src/tool_metalink.c | 2 +-
- src/tool_metalink.h | 3 +++
- src/tool_operate.c | 4 ++++
- 3 files changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/src/tool_metalink.c b/src/tool_metalink.c
-index 0740407f9..cd5a7d650 100644
---- a/src/tool_metalink.c
-+++ b/src/tool_metalink.c
-@@ -965,7 +965,7 @@ static void delete_metalink_resource(metalink_resource *res)
- Curl_safefree(res);
- }
-
--static void delete_metalinkfile(metalinkfile *mlfile)
-+void delete_metalinkfile(metalinkfile *mlfile)
- {
- metalink_resource *res;
- if(mlfile == NULL) {
-diff --git a/src/tool_metalink.h b/src/tool_metalink.h
-index 1e367033c..f5ec306f7 100644
---- a/src/tool_metalink.h
-+++ b/src/tool_metalink.h
-@@ -105,6 +105,8 @@ extern const digest_params SHA256_DIGEST_PARAMS[1];
- * Counts the resource in the metalinkfile.
- */
- int count_next_metalink_resource(metalinkfile *mlfile);
-+
-+void delete_metalinkfile(metalinkfile *mlfile);
- void clean_metalink(struct OperationConfig *config);
-
- /*
-@@ -158,6 +160,7 @@ void metalink_cleanup(void);
- #else /* USE_METALINK */
-
- #define count_next_metalink_resource(x) 0
-+#define delete_metalinkfile(x) (void)x
- #define clean_metalink(x) (void)x
-
- /* metalink_cleanup() takes no arguments */
-diff --git a/src/tool_operate.c b/src/tool_operate.c
-index d2ad9642d..09dfc0c84 100644
---- a/src/tool_operate.c
-+++ b/src/tool_operate.c
-@@ -2073,6 +2073,10 @@ static CURLcode serial_transfers(struct GlobalConfig *global,
- result = post_transfer(global, share, per, result, &retry);
- if(retry)
- continue;
-+
-+ /* Release metalink related resources here */
-+ delete_metalinkfile(per->mlfile);
-+
- per = del_transfer(per);
-
- /* Bail out upon critical errors or --fail-early */
---
-2.20.1
-
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index affe9f0..53022e1 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16301,18 +16301,11 @@ $as_echo "yes" >&6; }
+@@ -16331,18 +16331,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/0103-curl-7.59.0-python3.patch b/0103-curl-7.59.0-python3.patch
index 56485fe..55bf4a9 100644
--- a/0103-curl-7.59.0-python3.patch
+++ b/0103-curl-7.59.0-python3.patch
@@ -9,8 +9,7 @@ there is no 'impacket' module available for Python 3:
https://github.com/CoreSecurity/impacket/issues/61
---
tests/negtelnetserver.py | 4 ++--
- tests/smbserver.py | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/negtelnetserver.py b/tests/negtelnetserver.py
index 8cfd409..72ee771 100755
@@ -30,28 +29,6 @@ index 8cfd409..72ee771 100755
except IOError:
log.exception("IOError hit during request")
-diff --git a/tests/smbserver.py b/tests/smbserver.py
-index 195ae39..b09cd44 100755
---- a/tests/smbserver.py
-+++ b/tests/smbserver.py
-@@ -24,7 +24,7 @@
- from __future__ import (absolute_import, division, print_function)
- # unicode_literals)
- import argparse
--import ConfigParser
-+import configparser
- import os
- import sys
- import logging
-@@ -58,7 +58,7 @@ def smbserver(options):
- f.write("{0}".format(pid))
-
- # Here we write a mini config for the server
-- smb_config = ConfigParser.ConfigParser()
-+ smb_config = configparser.ConfigParser()
- smb_config.add_section("global")
- smb_config.set("global", "server_name", "SERVICE")
- smb_config.set("global", "server_os", "UNIX")
--
2.14.3
diff --git a/0105-curl-7.63.0-lib1560-valgrind.patch b/0105-curl-7.63.0-lib1560-valgrind.patch
index 6d05c67..8121ee6 100644
--- a/0105-curl-7.63.0-lib1560-valgrind.patch
+++ b/0105-curl-7.63.0-lib1560-valgrind.patch
@@ -26,7 +26,7 @@ diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 080421b..ea3b806 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
-@@ -531,6 +531,7 @@ lib1559_SOURCES = lib1559.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+@@ -534,6 +534,7 @@ lib1559_SOURCES = lib1559.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1559_LDADD = $(TESTUTIL_LIBS)
lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
diff --git a/curl-7.66.0.tar.xz.asc b/curl-7.66.0.tar.xz.asc
deleted file mode 100644
index 83e8258..0000000
--- a/curl-7.66.0.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl14i4AACgkQXMkI/bce
-EsJwgwf/WauX31s687pdOgpPE4ymPuxIrdVl+NovWdOBdQQfIA0c/4lu4onJYPAT
-K6wq86me5y8fj/Q3ymqQ3H1EcJE2vTHPx/w+zEHNsEILtBMFHdm84CJzhdLlI1GC
-9iBkjVKk/2s0tBOdC3HuskYLY2y02dHACvTvDJjx42nK4IbsdjoamVdMa7vep1TG
-abmLRNHkOHKjioYWi0N04c5H5YDpdWOOjFY+EPO+m+YQuJlYkgw90nlmOaqiLcHL
-3zGCMNXb209wxuNEVKenlhPQ/3FQZ9+8a4b6mMqBX7PDwhDiZLhqIJgVseWdw1r0
-Qm2suW4eUtlC2DTqTMtusG7EMN8pag==
-=pFLb
------END PGP SIGNATURE-----
diff --git a/curl-7.67.0.tar.xz.asc b/curl-7.67.0.tar.xz.asc
new file mode 100644
index 0000000..e44cfc6
--- /dev/null
+++ b/curl-7.67.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl3CauAACgkQXMkI/bce
+EsKe7Qf+Py/Wufz3AqqpJ1Xr0oigaV1Sa5AAyRD+KX8jwSJTRaRahaECGMhmR9vh
+kBaMFtycctCKcK1masI9GSeTX5nCtmaWzELLsBXynm/l2W+hrW1AD2R++YuM384t
+O078GxgsgRH0m8MacSKoV5yPOv/h9URnVMTavkAIfnW50vw17akDZ9MW2NhJzKpP
+s6GgWTMB5gomTHlnlHjTjtNoVbKKrV4v9YyRwqzI3XHXYtYOA7iufP4wnT+dpSm5
+ZLdbg5Nq+1pCTEiMg3KZKYNriypoLJuWuSF+bKc54CGN63eoUxXgU6js9ViHS5JS
+3dPfzzRA8wgROem58QhHnrR9c2CmdQ==
+=5gov
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 62a4980..9d85067 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.66.0
+Version: 7.67.0
Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# fix memory leaked by parse_metalink()
-Patch1: 0001-curl-7.66.0-metalink-memleak.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -174,7 +171,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -350,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Nov 06 2019 Kamil Dudka - 7.67.1-1
+- new upstream release
+
* Wed Sep 11 2019 Kamil Dudka - 7.66.0-1
- new upstream release, which fixes the following vulnerabilities
CVE-2019-5481 - double free due to subsequent call of realloc()
diff --git a/sources b/sources
index aea53b9..16e8545 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.66.0.tar.xz) = 81170e7e4fa9d99ee2038d96d7f2ab10dcf52435331c818c7565c1a733891720f845a08029915e52ba532c6a344c346e1678474624aac1cc333aea6d1eacde35
+SHA512 (curl-7.67.0.tar.xz) = 1d5a344be92dd61b1ba5189eff0fe337e492f2e850794943570fe71c985d0af60bd412082be646e07aaa8639908593e1ce4bb2d07db35394ec377e8ce8b9ae29
From 2298078d54ad9124a2eee9c01f62a43b8a633866 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Thu, 14 Nov 2019 13:57:06 +0100
Subject: [PATCH 033/218] Resolves: #1771025 - fix infinite loop on upload
using a glob
---
0001-curl-7.67.0-upload-glob.patch | 316 +++++++++++++++++++++++++++++
curl.spec | 9 +-
2 files changed, 324 insertions(+), 1 deletion(-)
create mode 100644 0001-curl-7.67.0-upload-glob.patch
diff --git a/0001-curl-7.67.0-upload-glob.patch b/0001-curl-7.67.0-upload-glob.patch
new file mode 100644
index 0000000..257eb22
--- /dev/null
+++ b/0001-curl-7.67.0-upload-glob.patch
@@ -0,0 +1,316 @@
+From 37a36231c5e34ae31b1968481fad2e8d76613fbd Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Wed, 13 Nov 2019 11:33:29 +0100
+Subject: [PATCH] curl: fix -T globbing
+
+Regression from e59371a4936f8 (7.67.0)
+
+Added test 490, 491 and 492 to verify the functionality.
+
+Reported-by: Kamil Dudka
+Reported-by: Anderson Sasaki
+
+Fixes #4588
+Closes #4591
+
+Upstream-commit: 7a46aeb0be3fa00826b0c47a8bc06eddff448659
+Signed-off-by: Kamil Dudka
+---
+ src/tool_operate.c | 15 ++++---
+ tests/data/Makefile.inc | 2 +
+ tests/data/test490 | 68 +++++++++++++++++++++++++++++++
+ tests/data/test491 | 64 +++++++++++++++++++++++++++++
+ tests/data/test492 | 89 +++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 232 insertions(+), 6 deletions(-)
+ create mode 100644 tests/data/test490
+ create mode 100644 tests/data/test491
+ create mode 100644 tests/data/test492
+
+diff --git a/src/tool_operate.c b/src/tool_operate.c
+index 3087d2d..4ecb1ed 100644
+--- a/src/tool_operate.c
++++ b/src/tool_operate.c
+@@ -829,12 +829,6 @@ static CURLcode single_transfer(struct GlobalConfig *global,
+ separator = ((!state->outfiles ||
+ !strcmp(state->outfiles, "-")) && urlnum > 1);
+
+- /* Here's looping around each globbed URL */
+-
+- if(state->li >= urlnum) {
+- state->li = 0;
+- state->up++;
+- }
+ if(state->up < state->infilenum) {
+ struct per_transfer *per;
+ struct OutStruct *outs;
+@@ -1908,6 +1902,15 @@ static CURLcode single_transfer(struct GlobalConfig *global,
+ per->retrystart = tvnow();
+
+ state->li++;
++ /* Here's looping around each globbed URL */
++ if(state->li >= urlnum) {
++ state->li = 0;
++ state->urlnum = 0; /* forced reglob of URLs */
++ glob_cleanup(state->urls);
++ state->urls = NULL;
++ state->up++;
++ Curl_safefree(state->uploadfile); /* clear it to get the next */
++ }
+ }
+ else {
+ /* Free this URL node data without destroying the
+diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
+index 557f928..212900e 100644
+--- a/tests/data/Makefile.inc
++++ b/tests/data/Makefile.inc
+@@ -66,6 +66,8 @@ test393 test394 test395 \
+ test400 test401 test402 test403 test404 test405 test406 test407 test408 \
+ test409 \
+ \
++test490 test491 test492 \
++\
+ test500 test501 test502 test503 test504 test505 test506 test507 test508 \
+ test509 test510 test511 test512 test513 test514 test515 test516 test517 \
+ test518 test519 test520 test521 test522 test523 test524 test525 test526 \
+diff --git a/tests/data/test490 b/tests/data/test490
+new file mode 100644
+index 0000000..a3383a9
+--- /dev/null
++++ b/tests/data/test490
+@@ -0,0 +1,68 @@
++
++
++
++HTTP
++HTTP PUT
++
++
++
++#
++# Server-side
++
++
++HTTP/1.1 200 OK
++Date: Thu, 09 Nov 2010 14:49:00 GMT
++Server: test-server/fake
++Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
++ETag: "21025-dc7-39462498"
++Accept-Ranges: bytes
++Content-Length: 6
++Connection: close
++Content-Type: text/html
++Funny-head: yesyes
++
++-foo-
++
++
++
++#
++# Client-side
++
++
++http
++
++
++Two globbed HTTP PUTs
++
++
++http://%HOSTIP:%HTTPPORT/490 -T '{log/in490,log/in490}'
++
++
++surprise!
++
++
++
++#
++# Verify data after the test has been "shot"
++
++
++^User-Agent:.*
++
++
++PUT /490 HTTP/1.1
++Host: 127.0.0.1:8990
++Accept: */*
++Content-Length: 10
++Expect: 100-continue
++
++surprise!
++PUT /490 HTTP/1.1
++Host: 127.0.0.1:8990
++Accept: */*
++Content-Length: 10
++Expect: 100-continue
++
++surprise!
++
++
++
+diff --git a/tests/data/test491 b/tests/data/test491
+new file mode 100644
+index 0000000..b49c06c
+--- /dev/null
++++ b/tests/data/test491
+@@ -0,0 +1,64 @@
++
++
++
++HTTP
++HTTP PUT
++
++
++
++#
++# Server-side
++
++
++HTTP/1.1 200 OK
++Date: Thu, 09 Nov 2010 14:49:00 GMT
++Server: test-server/fake
++Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
++ETag: "21025-dc7-39462498"
++Accept-Ranges: bytes
++Content-Length: 6
++Connection: close
++Content-Type: text/html
++Funny-head: yesyes
++
++-foo-
++
++
++
++#
++# Client-side
++
++
++http
++
++
++Two globbed HTTP PUTs, the second upload file is missing
++
++
++http://%HOSTIP:%HTTPPORT/491 -T '{log/in491,log/bad491}'
++
++
++surprise!
++
++
++
++#
++# Verify data after the test has been "shot"
++
++
++^User-Agent:.*
++
++
++PUT /491 HTTP/1.1
++Host: 127.0.0.1:8990
++Accept: */*
++Content-Length: 10
++Expect: 100-continue
++
++surprise!
++
++
++26
++
++
++
+diff --git a/tests/data/test492 b/tests/data/test492
+new file mode 100644
+index 0000000..12edd8b
+--- /dev/null
++++ b/tests/data/test492
+@@ -0,0 +1,89 @@
++
++
++
++HTTP
++HTTP PUT
++
++
++
++#
++# Server-side
++
++
++HTTP/1.1 200 OK
++Date: Thu, 09 Nov 2010 14:49:00 GMT
++Server: test-server/fake
++Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
++ETag: "21025-dc7-39462498"
++Accept-Ranges: bytes
++Content-Length: 6
++Connection: close
++Content-Type: text/html
++Funny-head: yesyes
++
++-foo-
++
++
++
++#
++# Client-side
++
++
++http
++
++
++Two globbed HTTP PUTs to two globbed URLs
++
++
++'http://%HOSTIP:%HTTPPORT/{one,two}/' -T '{log/first492,log/second492}' -H "Testno: 492"
++
++
++first 492 contents
++
++
++second 492 contents
++
++
++
++#
++# Verify data after the test has been "shot"
++
++
++^User-Agent:.*
++
++
++PUT /one/first492 HTTP/1.1
++Host: 127.0.0.1:8990
++Accept: */*
++Testno: 492
++Content-Length: 19
++Expect: 100-continue
++
++first 492 contents
++PUT /two/first492 HTTP/1.1
++Host: 127.0.0.1:8990
++Accept: */*
++Testno: 492
++Content-Length: 19
++Expect: 100-continue
++
++first 492 contents
++PUT /one/second492 HTTP/1.1
++Host: 127.0.0.1:8990
++Accept: */*
++Testno: 492
++Content-Length: 20
++Expect: 100-continue
++
++second 492 contents
++PUT /two/second492 HTTP/1.1
++Host: 127.0.0.1:8990
++Accept: */*
++Testno: 492
++Content-Length: 20
++Expect: 100-continue
++
++second 492 contents
++
++
++
+--
+2.20.1
+
diff --git a/curl.spec b/curl.spec
index 9d85067..9266e40 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,10 +1,13 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.67.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# fix infinite loop on upload using a glob (#1771025)
+Patch1: 0001-curl-7.67.0-upload-glob.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -171,6 +174,7 @@ be installed.
%setup -q
# upstream patches
+%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -346,6 +350,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Thu Nov 28 2019 Kamil Dudka - 7.67.1-2
+- fix infinite loop on upload using a glob (#1771025)
+
* Wed Nov 06 2019 Kamil Dudka - 7.67.1-1
- new upstream release
From eeb37e29bdb6c563bbe9559420ad4d95193dd6e6 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Thu, 14 Nov 2019 16:25:25 +0100
Subject: [PATCH 034/218] Related: #1771025 - fix date in the last change log
entry
---
curl.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/curl.spec b/curl.spec
index 9266e40..4ca9d0d 100644
--- a/curl.spec
+++ b/curl.spec
@@ -350,7 +350,7 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
-* Thu Nov 28 2019 Kamil Dudka - 7.67.1-2
+* Thu Nov 14 2019 Kamil Dudka - 7.67.1-2
- fix infinite loop on upload using a glob (#1771025)
* Wed Nov 06 2019 Kamil Dudka - 7.67.1-1
From d1233ad4cd39ea577a23ac966607d0ca04726b13 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Fri, 15 Nov 2019 10:37:39 +0100
Subject: [PATCH 035/218] do not run test-suite through valgrind on i686 brew
builds
The architecture is being decommissioned in Fedora, which makes it
difficult to debug valgrind failures (usually not related to curl
anyway).
---
curl.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/curl.spec b/curl.spec
index 4ca9d0d..85901fe 100644
--- a/curl.spec
+++ b/curl.spec
@@ -83,7 +83,7 @@ BuildRequires: perl(vars)
# to be less reliable, in order to avoid unnecessary build failures (see RHBZ
# #810992, #816175, and #886891). Nevertheless developers are free to install
# valgrind manually to improve test coverage on any architecture.
-%ifarch x86_64 %{ix86}
+%ifarch x86_64
BuildRequires: valgrind
%endif
From 13f70ceee2ecaf605d8e4fa3bd3674480a16a261 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 8 Jan 2020 09:46:20 +0100
Subject: [PATCH 036/218] fix upstream release number in last two change log
items
---
curl.spec | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/curl.spec b/curl.spec
index 85901fe..3c38b8f 100644
--- a/curl.spec
+++ b/curl.spec
@@ -350,10 +350,10 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
-* Thu Nov 14 2019 Kamil Dudka - 7.67.1-2
+* Thu Nov 14 2019 Kamil Dudka - 7.67.0-2
- fix infinite loop on upload using a glob (#1771025)
-* Wed Nov 06 2019 Kamil Dudka - 7.67.1-1
+* Wed Nov 06 2019 Kamil Dudka - 7.67.0-1
- new upstream release
* Wed Sep 11 2019 Kamil Dudka - 7.66.0-1
From dfb411a0a2e97508bf2228085e09ea904f711f66 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 8 Jan 2020 09:45:26 +0100
Subject: [PATCH 037/218] new upstream release - 7.68.0
---
0001-curl-7.67.0-upload-glob.patch | 316 ------------------------
0102-curl-7.36.0-debug.patch | 2 +-
0105-curl-7.63.0-lib1560-valgrind.patch | 2 +-
curl-7.67.0.tar.xz.asc | 11 -
curl-7.68.0.tar.xz.asc | 11 +
curl.spec | 11 +-
sources | 2 +-
7 files changed, 19 insertions(+), 336 deletions(-)
delete mode 100644 0001-curl-7.67.0-upload-glob.patch
delete mode 100644 curl-7.67.0.tar.xz.asc
create mode 100644 curl-7.68.0.tar.xz.asc
diff --git a/0001-curl-7.67.0-upload-glob.patch b/0001-curl-7.67.0-upload-glob.patch
deleted file mode 100644
index 257eb22..0000000
--- a/0001-curl-7.67.0-upload-glob.patch
+++ /dev/null
@@ -1,316 +0,0 @@
-From 37a36231c5e34ae31b1968481fad2e8d76613fbd Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Wed, 13 Nov 2019 11:33:29 +0100
-Subject: [PATCH] curl: fix -T globbing
-
-Regression from e59371a4936f8 (7.67.0)
-
-Added test 490, 491 and 492 to verify the functionality.
-
-Reported-by: Kamil Dudka
-Reported-by: Anderson Sasaki
-
-Fixes #4588
-Closes #4591
-
-Upstream-commit: 7a46aeb0be3fa00826b0c47a8bc06eddff448659
-Signed-off-by: Kamil Dudka
----
- src/tool_operate.c | 15 ++++---
- tests/data/Makefile.inc | 2 +
- tests/data/test490 | 68 +++++++++++++++++++++++++++++++
- tests/data/test491 | 64 +++++++++++++++++++++++++++++
- tests/data/test492 | 89 +++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 232 insertions(+), 6 deletions(-)
- create mode 100644 tests/data/test490
- create mode 100644 tests/data/test491
- create mode 100644 tests/data/test492
-
-diff --git a/src/tool_operate.c b/src/tool_operate.c
-index 3087d2d..4ecb1ed 100644
---- a/src/tool_operate.c
-+++ b/src/tool_operate.c
-@@ -829,12 +829,6 @@ static CURLcode single_transfer(struct GlobalConfig *global,
- separator = ((!state->outfiles ||
- !strcmp(state->outfiles, "-")) && urlnum > 1);
-
-- /* Here's looping around each globbed URL */
--
-- if(state->li >= urlnum) {
-- state->li = 0;
-- state->up++;
-- }
- if(state->up < state->infilenum) {
- struct per_transfer *per;
- struct OutStruct *outs;
-@@ -1908,6 +1902,15 @@ static CURLcode single_transfer(struct GlobalConfig *global,
- per->retrystart = tvnow();
-
- state->li++;
-+ /* Here's looping around each globbed URL */
-+ if(state->li >= urlnum) {
-+ state->li = 0;
-+ state->urlnum = 0; /* forced reglob of URLs */
-+ glob_cleanup(state->urls);
-+ state->urls = NULL;
-+ state->up++;
-+ Curl_safefree(state->uploadfile); /* clear it to get the next */
-+ }
- }
- else {
- /* Free this URL node data without destroying the
-diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
-index 557f928..212900e 100644
---- a/tests/data/Makefile.inc
-+++ b/tests/data/Makefile.inc
-@@ -66,6 +66,8 @@ test393 test394 test395 \
- test400 test401 test402 test403 test404 test405 test406 test407 test408 \
- test409 \
- \
-+test490 test491 test492 \
-+\
- test500 test501 test502 test503 test504 test505 test506 test507 test508 \
- test509 test510 test511 test512 test513 test514 test515 test516 test517 \
- test518 test519 test520 test521 test522 test523 test524 test525 test526 \
-diff --git a/tests/data/test490 b/tests/data/test490
-new file mode 100644
-index 0000000..a3383a9
---- /dev/null
-+++ b/tests/data/test490
-@@ -0,0 +1,68 @@
-+
-+
-+
-+HTTP
-+HTTP PUT
-+
-+
-+
-+#
-+# Server-side
-+
-+
-+HTTP/1.1 200 OK
-+Date: Thu, 09 Nov 2010 14:49:00 GMT
-+Server: test-server/fake
-+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-+ETag: "21025-dc7-39462498"
-+Accept-Ranges: bytes
-+Content-Length: 6
-+Connection: close
-+Content-Type: text/html
-+Funny-head: yesyes
-+
-+-foo-
-+
-+
-+
-+#
-+# Client-side
-+
-+
-+http
-+
-+
-+Two globbed HTTP PUTs
-+
-+
-+http://%HOSTIP:%HTTPPORT/490 -T '{log/in490,log/in490}'
-+
-+
-+surprise!
-+
-+
-+
-+#
-+# Verify data after the test has been "shot"
-+
-+
-+^User-Agent:.*
-+
-+
-+PUT /490 HTTP/1.1
-+Host: 127.0.0.1:8990
-+Accept: */*
-+Content-Length: 10
-+Expect: 100-continue
-+
-+surprise!
-+PUT /490 HTTP/1.1
-+Host: 127.0.0.1:8990
-+Accept: */*
-+Content-Length: 10
-+Expect: 100-continue
-+
-+surprise!
-+
-+
-+
-diff --git a/tests/data/test491 b/tests/data/test491
-new file mode 100644
-index 0000000..b49c06c
---- /dev/null
-+++ b/tests/data/test491
-@@ -0,0 +1,64 @@
-+
-+
-+
-+HTTP
-+HTTP PUT
-+
-+
-+
-+#
-+# Server-side
-+
-+
-+HTTP/1.1 200 OK
-+Date: Thu, 09 Nov 2010 14:49:00 GMT
-+Server: test-server/fake
-+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-+ETag: "21025-dc7-39462498"
-+Accept-Ranges: bytes
-+Content-Length: 6
-+Connection: close
-+Content-Type: text/html
-+Funny-head: yesyes
-+
-+-foo-
-+
-+
-+
-+#
-+# Client-side
-+
-+
-+http
-+
-+
-+Two globbed HTTP PUTs, the second upload file is missing
-+
-+
-+http://%HOSTIP:%HTTPPORT/491 -T '{log/in491,log/bad491}'
-+
-+
-+surprise!
-+
-+
-+
-+#
-+# Verify data after the test has been "shot"
-+
-+
-+^User-Agent:.*
-+
-+
-+PUT /491 HTTP/1.1
-+Host: 127.0.0.1:8990
-+Accept: */*
-+Content-Length: 10
-+Expect: 100-continue
-+
-+surprise!
-+
-+
-+26
-+
-+
-+
-diff --git a/tests/data/test492 b/tests/data/test492
-new file mode 100644
-index 0000000..12edd8b
---- /dev/null
-+++ b/tests/data/test492
-@@ -0,0 +1,89 @@
-+
-+
-+
-+HTTP
-+HTTP PUT
-+
-+
-+
-+#
-+# Server-side
-+
-+
-+HTTP/1.1 200 OK
-+Date: Thu, 09 Nov 2010 14:49:00 GMT
-+Server: test-server/fake
-+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
-+ETag: "21025-dc7-39462498"
-+Accept-Ranges: bytes
-+Content-Length: 6
-+Connection: close
-+Content-Type: text/html
-+Funny-head: yesyes
-+
-+-foo-
-+
-+
-+
-+#
-+# Client-side
-+
-+
-+http
-+
-+
-+Two globbed HTTP PUTs to two globbed URLs
-+
-+
-+'http://%HOSTIP:%HTTPPORT/{one,two}/' -T '{log/first492,log/second492}' -H "Testno: 492"
-+
-+
-+first 492 contents
-+
-+
-+second 492 contents
-+
-+
-+
-+#
-+# Verify data after the test has been "shot"
-+
-+
-+^User-Agent:.*
-+
-+
-+PUT /one/first492 HTTP/1.1
-+Host: 127.0.0.1:8990
-+Accept: */*
-+Testno: 492
-+Content-Length: 19
-+Expect: 100-continue
-+
-+first 492 contents
-+PUT /two/first492 HTTP/1.1
-+Host: 127.0.0.1:8990
-+Accept: */*
-+Testno: 492
-+Content-Length: 19
-+Expect: 100-continue
-+
-+first 492 contents
-+PUT /one/second492 HTTP/1.1
-+Host: 127.0.0.1:8990
-+Accept: */*
-+Testno: 492
-+Content-Length: 20
-+Expect: 100-continue
-+
-+second 492 contents
-+PUT /two/second492 HTTP/1.1
-+Host: 127.0.0.1:8990
-+Accept: */*
-+Testno: 492
-+Content-Length: 20
-+Expect: 100-continue
-+
-+second 492 contents
-+
-+
-+
---
-2.20.1
-
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index 53022e1..c227258 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16331,18 +16331,11 @@ $as_echo "yes" >&6; }
+@@ -16336,18 +16336,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/0105-curl-7.63.0-lib1560-valgrind.patch b/0105-curl-7.63.0-lib1560-valgrind.patch
index 8121ee6..d37d283 100644
--- a/0105-curl-7.63.0-lib1560-valgrind.patch
+++ b/0105-curl-7.63.0-lib1560-valgrind.patch
@@ -33,7 +33,7 @@ index 080421b..ea3b806 100644
+lib1560_CFLAGS = $(AM_CFLAGS) -fno-builtin-strcmp
lib1560_LDADD = $(TESTUTIL_LIBS)
- lib1591_SOURCES = lib1591.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+ lib1564_SOURCES = lib1564.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
--
2.17.2
diff --git a/curl-7.67.0.tar.xz.asc b/curl-7.67.0.tar.xz.asc
deleted file mode 100644
index e44cfc6..0000000
--- a/curl-7.67.0.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl3CauAACgkQXMkI/bce
-EsKe7Qf+Py/Wufz3AqqpJ1Xr0oigaV1Sa5AAyRD+KX8jwSJTRaRahaECGMhmR9vh
-kBaMFtycctCKcK1masI9GSeTX5nCtmaWzELLsBXynm/l2W+hrW1AD2R++YuM384t
-O078GxgsgRH0m8MacSKoV5yPOv/h9URnVMTavkAIfnW50vw17akDZ9MW2NhJzKpP
-s6GgWTMB5gomTHlnlHjTjtNoVbKKrV4v9YyRwqzI3XHXYtYOA7iufP4wnT+dpSm5
-ZLdbg5Nq+1pCTEiMg3KZKYNriypoLJuWuSF+bKc54CGN63eoUxXgU6js9ViHS5JS
-3dPfzzRA8wgROem58QhHnrR9c2CmdQ==
-=5gov
------END PGP SIGNATURE-----
diff --git a/curl-7.68.0.tar.xz.asc b/curl-7.68.0.tar.xz.asc
new file mode 100644
index 0000000..1aee04b
--- /dev/null
+++ b/curl-7.68.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl4Vd+gACgkQXMkI/bce
+EsILUwf/YMvltTP+zlsldTRctrfC7FIZkjjj+pYylejKVajl84NZ+JnrH7o/zRyx
+blZ+D6b8CYW/3It+IPxtGPvUXW0rhmBU4ClT39mXfZBV19+WhCX7rIi3Y/ylTQ0Y
+rCfKNmiw+51u0Mug6cgsV+OAjDyLSsCu/VpWY7wyBBCHwZxYHshcdxbMvps0FBhO
+odCmP7wtXfDKxXiycGzgRxoKQ2Xd4EmBxICecPOvPnVmrCJdANjyrPQHsY8FYPG9
+piZ+bwxKCtZLfA6jsYKGelEh8KUew5eTBoSYCz7oXsPFeCmKVaRIPHYxe+RKlG9C
+IklQkFVg3FqWvtGU2eXOALyxrZnRUQ==
+=XyDf
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 3c38b8f..256bf4a 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.67.0
-Release: 2%{?dist}
+Version: 7.68.0
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# fix infinite loop on upload using a glob (#1771025)
-Patch1: 0001-curl-7.67.0-upload-glob.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -174,7 +171,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -350,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Jan 08 2020 Kamil Dudka - 7.68.0-1
+- new upstream release
+
* Thu Nov 14 2019 Kamil Dudka - 7.67.0-2
- fix infinite loop on upload using a glob (#1771025)
diff --git a/sources b/sources
index 16e8545..f923f78 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.67.0.tar.xz) = 1d5a344be92dd61b1ba5189eff0fe337e492f2e850794943570fe71c985d0af60bd412082be646e07aaa8639908593e1ce4bb2d07db35394ec377e8ce8b9ae29
+SHA512 (curl-7.68.0.tar.xz) = bf365609c9a66a05b3a263d02bcd3f81f905570c5739c8ec522a296b4b8e2a479d64d5524e8345e14eafad28995ee22d923522f1a45fa40eb46db38759c2eb2c
From 83181bd6d31f4b9d070588741471f6fc4e0ae42d Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Tue, 28 Jan 2020 15:11:40 +0000
Subject: [PATCH 038/218] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
curl.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/curl.spec b/curl.spec
index 256bf4a..c5b13af 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.68.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -346,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Tue Jan 28 2020 Fedora Release Engineering - 7.68.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
* Wed Jan 08 2020 Kamil Dudka - 7.68.0-1
- new upstream release
From 249d0aea514d8c09b6acbcb55074b50a2e1973f1 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 4 Mar 2020 11:39:00 +0100
Subject: [PATCH 039/218] new upstream release - 7.69.0
---
0102-curl-7.36.0-debug.patch | 2 +-
curl-7.68.0.tar.xz.asc | 11 -----------
curl-7.69.0.tar.xz.asc | 11 +++++++++++
curl.spec | 7 +++++--
sources | 2 +-
5 files changed, 18 insertions(+), 15 deletions(-)
delete mode 100644 curl-7.68.0.tar.xz.asc
create mode 100644 curl-7.69.0.tar.xz.asc
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index c227258..e9b3848 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -12,7 +12,7 @@ diff --git a/configure b/configure
index 8f079a3..53b4774 100755
--- a/configure
+++ b/configure
-@@ -16336,18 +16336,11 @@ $as_echo "yes" >&6; }
+@@ -16343,18 +16343,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/curl-7.68.0.tar.xz.asc b/curl-7.68.0.tar.xz.asc
deleted file mode 100644
index 1aee04b..0000000
--- a/curl-7.68.0.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl4Vd+gACgkQXMkI/bce
-EsILUwf/YMvltTP+zlsldTRctrfC7FIZkjjj+pYylejKVajl84NZ+JnrH7o/zRyx
-blZ+D6b8CYW/3It+IPxtGPvUXW0rhmBU4ClT39mXfZBV19+WhCX7rIi3Y/ylTQ0Y
-rCfKNmiw+51u0Mug6cgsV+OAjDyLSsCu/VpWY7wyBBCHwZxYHshcdxbMvps0FBhO
-odCmP7wtXfDKxXiycGzgRxoKQ2Xd4EmBxICecPOvPnVmrCJdANjyrPQHsY8FYPG9
-piZ+bwxKCtZLfA6jsYKGelEh8KUew5eTBoSYCz7oXsPFeCmKVaRIPHYxe+RKlG9C
-IklQkFVg3FqWvtGU2eXOALyxrZnRUQ==
-=XyDf
------END PGP SIGNATURE-----
diff --git a/curl-7.69.0.tar.xz.asc b/curl-7.69.0.tar.xz.asc
new file mode 100644
index 0000000..dffe2da
--- /dev/null
+++ b/curl-7.69.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl5fTaIACgkQXMkI/bce
+EsIyaAf8DEjmWf+UpZDBjyirl6PuNfxpgZGm8Qw5eWBKD1rdQuMjZ3xJLauAR34G
+fYvsj8cYotUaIPHw4jWcvn6m/M5KFII6XWANcasn7edbg47BcXS6xadNkUnqcJnF
+0U9YbghGXaj0CwaNjqP4Gv23oG2nuYyWhUzI4wD8cRcO3oE/5Wksfwhwq5DrnpuQ
+CLlgP8o9qMgfrds87WK4Gb+AFHW4jkCAT2wnJBvtEfK97pG1E9y7S8l5oZ7H8hTe
+Vm3UgM8Stk13yPCCN3nOaTdPKk5nA6co7VWW5TbjJPQ+6mT+eD6SY/+k5yJ+A11X
+zaXOa3fXEJiRX3nfAR47iThh2Pj8wA==
+=baDZ
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index c5b13af..dacb502 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.68.0
-Release: 2%{?dist}
+Version: 7.69.0
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -346,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Mar 04 2020 Kamil Dudka - 7.69.0-1
+- new upstream release
+
* Tue Jan 28 2020 Fedora Release Engineering - 7.68.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/sources b/sources
index f923f78..63cb9a9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.68.0.tar.xz) = bf365609c9a66a05b3a263d02bcd3f81f905570c5739c8ec522a296b4b8e2a479d64d5524e8345e14eafad28995ee22d923522f1a45fa40eb46db38759c2eb2c
+SHA512 (curl-7.69.0.tar.xz) = 8c151201b09c51cc1437c2f6345036fce88ea5402cd1fd62b76c093e294b87d0c1f61e1dcf6f799f508d8dcfe381589a3815001a8c8bbc085aed0fdca6f2536d
From fbcad9a3a0d50831db86e64633da4c9ba983650c Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 9 Mar 2020 09:53:54 +0100
Subject: [PATCH 040/218] Resolves: #1810989 - make Flatpak work again
---
0001-curl-7.69.0-flatpak.patch | 58 ++++++++++++++++++++++++++++++++++
curl.spec | 9 +++++-
2 files changed, 66 insertions(+), 1 deletion(-)
create mode 100644 0001-curl-7.69.0-flatpak.patch
diff --git a/0001-curl-7.69.0-flatpak.patch b/0001-curl-7.69.0-flatpak.patch
new file mode 100644
index 0000000..0268258
--- /dev/null
+++ b/0001-curl-7.69.0-flatpak.patch
@@ -0,0 +1,58 @@
+From 2c706c44b98998fa619ddc63b2c14955b0f50692 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Thu, 5 Mar 2020 23:45:36 +0100
+Subject: [PATCH] Revert "pause: force-drain the transfer on unpause"
+
+This reverts commit fa0216b294af4c7113a9040ca65eefc7fc18ac1c (from #5000)
+
+Clearly that didn't solve the problem correctly.
+
+Reported-by: Christopher Reid
+Reopens #4966
+Fixes #5044
+
+Upstream-commit: 8aa04e9a24932b830bc5eaf6838dea5a3329341e
+Signed-off-by: Kamil Dudka
+---
+ lib/easy.c | 1 -
+ lib/transfer.c | 5 ++---
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/lib/easy.c b/lib/easy.c
+index 1a69127..4546210 100644
+--- a/lib/easy.c
++++ b/lib/easy.c
+@@ -1033,7 +1033,6 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action)
+ to have this handle checked soon */
+ if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) !=
+ (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) {
+- data->state.drain++;
+ Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */
+ if(data->multi)
+ Curl_update_timer(data->multi);
+diff --git a/lib/transfer.c b/lib/transfer.c
+index 8270761..ead8b36 100644
+--- a/lib/transfer.c
++++ b/lib/transfer.c
+@@ -5,7 +5,7 @@
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+- * Copyright (C) 1998 - 2020, Daniel Stenberg, , et al.
++ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+@@ -1217,8 +1217,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
+ else
+ fd_write = CURL_SOCKET_BAD;
+
+- if(data->state.drain) {
+- data->state.drain--;
++ if(conn->data->state.drain) {
+ select_res |= CURL_CSELECT_IN;
+ DEBUGF(infof(data, "Curl_readwrite: forcibly told to drain data\n"));
+ }
+--
+2.21.1
+
diff --git a/curl.spec b/curl.spec
index dacb502..67e623c 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,10 +1,13 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.69.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# make Flatpak work again (#1810989)
+Patch1: 0001-curl-7.69.0-flatpak.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -171,6 +174,7 @@ be installed.
%setup -q
# upstream patches
+%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -346,6 +350,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Mon Mar 09 2020 Kamil Dudka - 7.69.0-2
+- make Flatpak work again (#1810989)
+
* Wed Mar 04 2020 Kamil Dudka - 7.69.0-1
- new upstream release
From ac5c236f18be0a8a6ad3b5ee6a72039f68b7eaab Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 11 Mar 2020 10:21:27 +0100
Subject: [PATCH 041/218] new upstream release - 7.69.1
---
0001-curl-7.69.0-flatpak.patch | 58 -------------------------
0105-curl-7.63.0-lib1560-valgrind.patch | 2 +-
curl-7.69.0.tar.xz.asc | 11 -----
curl-7.69.1.tar.xz.asc | 11 +++++
curl.spec | 11 +++--
sources | 2 +-
6 files changed, 18 insertions(+), 77 deletions(-)
delete mode 100644 0001-curl-7.69.0-flatpak.patch
delete mode 100644 curl-7.69.0.tar.xz.asc
create mode 100644 curl-7.69.1.tar.xz.asc
diff --git a/0001-curl-7.69.0-flatpak.patch b/0001-curl-7.69.0-flatpak.patch
deleted file mode 100644
index 0268258..0000000
--- a/0001-curl-7.69.0-flatpak.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 2c706c44b98998fa619ddc63b2c14955b0f50692 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg
-Date: Thu, 5 Mar 2020 23:45:36 +0100
-Subject: [PATCH] Revert "pause: force-drain the transfer on unpause"
-
-This reverts commit fa0216b294af4c7113a9040ca65eefc7fc18ac1c (from #5000)
-
-Clearly that didn't solve the problem correctly.
-
-Reported-by: Christopher Reid
-Reopens #4966
-Fixes #5044
-
-Upstream-commit: 8aa04e9a24932b830bc5eaf6838dea5a3329341e
-Signed-off-by: Kamil Dudka
----
- lib/easy.c | 1 -
- lib/transfer.c | 5 ++---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/lib/easy.c b/lib/easy.c
-index 1a69127..4546210 100644
---- a/lib/easy.c
-+++ b/lib/easy.c
-@@ -1033,7 +1033,6 @@ CURLcode curl_easy_pause(struct Curl_easy *data, int action)
- to have this handle checked soon */
- if((newstate & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) !=
- (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) {
-- data->state.drain++;
- Curl_expire(data, 0, EXPIRE_RUN_NOW); /* get this handle going again */
- if(data->multi)
- Curl_update_timer(data->multi);
-diff --git a/lib/transfer.c b/lib/transfer.c
-index 8270761..ead8b36 100644
---- a/lib/transfer.c
-+++ b/lib/transfer.c
-@@ -5,7 +5,7 @@
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
-- * Copyright (C) 1998 - 2020, Daniel Stenberg, , et al.
-+ * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
-@@ -1217,8 +1217,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
- else
- fd_write = CURL_SOCKET_BAD;
-
-- if(data->state.drain) {
-- data->state.drain--;
-+ if(conn->data->state.drain) {
- select_res |= CURL_CSELECT_IN;
- DEBUGF(infof(data, "Curl_readwrite: forcibly told to drain data\n"));
- }
---
-2.21.1
-
diff --git a/0105-curl-7.63.0-lib1560-valgrind.patch b/0105-curl-7.63.0-lib1560-valgrind.patch
index d37d283..49a3bdd 100644
--- a/0105-curl-7.63.0-lib1560-valgrind.patch
+++ b/0105-curl-7.63.0-lib1560-valgrind.patch
@@ -26,7 +26,7 @@ diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
index 080421b..ea3b806 100644
--- a/tests/libtest/Makefile.inc
+++ b/tests/libtest/Makefile.inc
-@@ -534,6 +534,7 @@ lib1559_SOURCES = lib1559.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
+@@ -562,6 +562,7 @@ lib1559_SOURCES = lib1559.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib1559_LDADD = $(TESTUTIL_LIBS)
lib1560_SOURCES = lib1560.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
diff --git a/curl-7.69.0.tar.xz.asc b/curl-7.69.0.tar.xz.asc
deleted file mode 100644
index dffe2da..0000000
--- a/curl-7.69.0.tar.xz.asc
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl5fTaIACgkQXMkI/bce
-EsIyaAf8DEjmWf+UpZDBjyirl6PuNfxpgZGm8Qw5eWBKD1rdQuMjZ3xJLauAR34G
-fYvsj8cYotUaIPHw4jWcvn6m/M5KFII6XWANcasn7edbg47BcXS6xadNkUnqcJnF
-0U9YbghGXaj0CwaNjqP4Gv23oG2nuYyWhUzI4wD8cRcO3oE/5Wksfwhwq5DrnpuQ
-CLlgP8o9qMgfrds87WK4Gb+AFHW4jkCAT2wnJBvtEfK97pG1E9y7S8l5oZ7H8hTe
-Vm3UgM8Stk13yPCCN3nOaTdPKk5nA6co7VWW5TbjJPQ+6mT+eD6SY/+k5yJ+A11X
-zaXOa3fXEJiRX3nfAR47iThh2Pj8wA==
-=baDZ
------END PGP SIGNATURE-----
diff --git a/curl-7.69.1.tar.xz.asc b/curl-7.69.1.tar.xz.asc
new file mode 100644
index 0000000..7607e60
--- /dev/null
+++ b/curl-7.69.1.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAl5oh44ACgkQXMkI/bce
+EsL/5QgAlK2oYZTG3OQziHD8RtvjcRZyVfSPgH+UCEe12o+pqrWncWG5kVbFPjoX
+USq8EEmRLaTdPPVY+lLZjrll0LgAHa5fyOYV5IFeKHHlRtGUsurMx+IW7NXg1kWn
+lZXV/xzcogVeaqTZtJS1QQeyBxV55BEzwbO7WI7U3dQHKspE2724IqaGwHAj7BaL
+K3hmHpBHuuGNpP5wsmnA0GXVLYSfqTJhc2itcupG8ZveNeEjCXPoRxGq/aewqUCH
+UoT0tLu/LJ/D4FW1zGYdQXkli4MHKzTP9l2Tp/6ounEc+WpEirIRJLWRE8Wn/bmH
+JjmSkls5sMCsmLl5DNoSUEw4Jco0oQ==
+=+Rw4
+-----END PGP SIGNATURE-----
diff --git a/curl.spec b/curl.spec
index 67e623c..15a1a8b 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,13 +1,10 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 7.69.0
-Release: 2%{?dist}
+Version: 7.69.1
+Release: 1%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
-# make Flatpak work again (#1810989)
-Patch1: 0001-curl-7.69.0-flatpak.patch
-
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -174,7 +171,6 @@ be installed.
%setup -q
# upstream patches
-%patch1 -p1
# Fedora patches
%patch101 -p1
@@ -350,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Wed Mar 11 2020 Kamil Dudka - 7.69.1-1
+- new upstream release
+
* Mon Mar 09 2020 Kamil Dudka - 7.69.0-2
- make Flatpak work again (#1810989)
diff --git a/sources b/sources
index 63cb9a9..af5828c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (curl-7.69.0.tar.xz) = 8c151201b09c51cc1437c2f6345036fce88ea5402cd1fd62b76c093e294b87d0c1f61e1dcf6f799f508d8dcfe381589a3815001a8c8bbc085aed0fdca6f2536d
+SHA512 (curl-7.69.1.tar.xz) = dcb917ce9a6f34b30adae10e2e635d7a8c67781d69789cc5617ab2b49e898394ecfeee546453b14ab168d4b3b52baf974b2ec07e7a4b199addbc1ba57274d8fa
From 53c8c93125c0fcb24c0cb6688e25c11631f8f8a0 Mon Sep 17 00:00:00 2001
From: Tom Stellard
Date: Fri, 17 Apr 2020 16:06:52 +0000
Subject: [PATCH 042/218] Prevent discarding of -g when compiling with clang
---
0102-curl-7.36.0-debug.patch | 63 ++++++++++++++++++++++++++++++------
curl.spec | 5 ++-
2 files changed, 58 insertions(+), 10 deletions(-)
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
index e9b3848..10180bf 100644
--- a/0102-curl-7.36.0-debug.patch
+++ b/0102-curl-7.36.0-debug.patch
@@ -1,18 +1,41 @@
-From 6710648c2b270c9ce68a7d9f1bba1222c7be8b58 Mon Sep 17 00:00:00 2001
+From 3602ee9dcc74683f91fe4f9ca228aa17a6474403 Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Wed, 31 Oct 2012 11:38:30 +0100
-Subject: [PATCH] prevent configure script from discarding -g in CFLAGS (#496778)
+Subject: [PATCH] prevent configure script from discarding -g in CFLAGS
+ (#496778)
---
- configure | 13 +++----------
- m4/curl-compilers.m4 | 13 +++----------
- 2 files changed, 6 insertions(+), 20 deletions(-)
+ configure | 26 ++++++--------------------
+ m4/curl-compilers.m4 | 26 ++++++--------------------
+ 2 files changed, 12 insertions(+), 40 deletions(-)
diff --git a/configure b/configure
-index 8f079a3..53b4774 100755
+index d6d125f49..3eba7b15f 100755
--- a/configure
+++ b/configure
-@@ -16343,18 +16343,11 @@ $as_echo "yes" >&6; }
+@@ -16269,18 +16269,11 @@ $as_echo "no" >&6; }
+ clangvhi=`echo $clangver | cut -d . -f1`
+ clangvlo=`echo $clangver | cut -d . -f2`
+ compiler_num=`(expr $clangvhi "*" 100 + $clangvlo) 2>/dev/null`
+- flags_dbg_all="-g -g0 -g1 -g2 -g3"
+- flags_dbg_all="$flags_dbg_all -ggdb"
+- flags_dbg_all="$flags_dbg_all -gstabs"
+- flags_dbg_all="$flags_dbg_all -gstabs+"
+- flags_dbg_all="$flags_dbg_all -gcoff"
+- flags_dbg_all="$flags_dbg_all -gxcoff"
+- flags_dbg_all="$flags_dbg_all -gdwarf-2"
+- flags_dbg_all="$flags_dbg_all -gvms"
++ flags_dbg_all=""
+ flags_dbg_yes="-g"
+ flags_dbg_off=""
+- flags_opt_all="-O -O0 -O1 -O2 -Os -O3 -O4"
+- flags_opt_yes="-Os"
++ flags_opt_all=""
++ flags_opt_yes=""
+ flags_opt_off="-O0"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+@@ -16343,18 +16336,11 @@ $as_echo "yes" >&6; }
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
@@ -35,10 +58,32 @@ index 8f079a3..53b4774 100755
OLDCPPFLAGS=$CPPFLAGS
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
-index 0cbba7a..9175b5b 100644
+index c64db4bc6..d115a4aed 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
-@@ -166,18 +166,11 @@ AC_DEFUN([CURL_CHECK_COMPILER_GNU_C], [
+@@ -106,18 +106,11 @@ AC_DEFUN([CURL_CHECK_COMPILER_CLANG], [
+ clangvhi=`echo $clangver | cut -d . -f1`
+ clangvlo=`echo $clangver | cut -d . -f2`
+ compiler_num=`(expr $clangvhi "*" 100 + $clangvlo) 2>/dev/null`
+- flags_dbg_all="-g -g0 -g1 -g2 -g3"
+- flags_dbg_all="$flags_dbg_all -ggdb"
+- flags_dbg_all="$flags_dbg_all -gstabs"
+- flags_dbg_all="$flags_dbg_all -gstabs+"
+- flags_dbg_all="$flags_dbg_all -gcoff"
+- flags_dbg_all="$flags_dbg_all -gxcoff"
+- flags_dbg_all="$flags_dbg_all -gdwarf-2"
+- flags_dbg_all="$flags_dbg_all -gvms"
++ flags_dbg_all=""
+ flags_dbg_yes="-g"
+ flags_dbg_off=""
+- flags_opt_all="-O -O0 -O1 -O2 -Os -O3 -O4"
+- flags_opt_yes="-Os"
++ flags_opt_all=""
++ flags_opt_yes=""
+ flags_opt_off="-O0"
+ else
+ AC_MSG_RESULT([no])
+@@ -166,18 +159,11 @@ AC_DEFUN([CURL_CHECK_COMPILER_GNU_C], [
gccvhi=`echo $gccver | cut -d . -f1`
gccvlo=`echo $gccver | cut -d . -f2`
compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
diff --git a/curl.spec b/curl.spec
index 15a1a8b..e67587c 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,7 +1,7 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.69.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
@@ -346,6 +346,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Fri Apr 17 2020 Tom Stellard - 7.69.1-2
+- Prevent discarding of -g when compiling with clang
+
* Wed Mar 11 2020 Kamil Dudka - 7.69.1-1
- new upstream release
From 6a752013d0c9403d74c37810273e4a73da8d494c Mon Sep 17 00:00:00 2001
From: Kamil Dudka
Date: Mon, 20 Apr 2020 11:21:23 +0200
Subject: [PATCH 043/218] Resolves: #1824926 - SSH: use new ECDSA key types to
check known hosts
---
0001-curl-7.69.1-ssh-ecdsa-keys.patch | 47 +++++++++++++++++++++++++++
curl.spec | 9 ++++-
2 files changed, 55 insertions(+), 1 deletion(-)
create mode 100644 0001-curl-7.69.1-ssh-ecdsa-keys.patch
diff --git a/0001-curl-7.69.1-ssh-ecdsa-keys.patch b/0001-curl-7.69.1-ssh-ecdsa-keys.patch
new file mode 100644
index 0000000..e354299
--- /dev/null
+++ b/0001-curl-7.69.1-ssh-ecdsa-keys.patch
@@ -0,0 +1,47 @@
+From e7bd08d289e55c9080590c1147df6584ec881523 Mon Sep 17 00:00:00 2001
+From: Anderson Toshiyuki Sasaki
+Date: Thu, 16 Apr 2020 19:26:06 +0200
+Subject: [PATCH] libssh: Use new ECDSA key types to check known hosts
+
+From libssh 0.9.0, ssh_key_type() returns different key types for ECDSA
+keys depending on the curve.
+
+Signed-off-by: Anderson Toshiyuki Sasaki
+Fixes #5252
+Closes #5253
+
+Upstream-commit: 14bf7eb6e526f7ce0c60c1c972b4d935c1c5132d
+Signed-off-by: Kamil Dudka
+---
+ lib/vssh/libssh.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c
+index 08d9f9e0f..54bc5e019 100644
+--- a/lib/vssh/libssh.c
++++ b/lib/vssh/libssh.c
+@@ -403,6 +403,9 @@ static int myssh_is_known(struct connectdata *conn)
+ knownkey.keytype = CURLKHTYPE_RSA1;
+ break;
+ case SSH_KEYTYPE_ECDSA:
++ case SSH_KEYTYPE_ECDSA_P256:
++ case SSH_KEYTYPE_ECDSA_P384:
++ case SSH_KEYTYPE_ECDSA_P521:
+ knownkey.keytype = CURLKHTYPE_ECDSA;
+ break;
+ case SSH_KEYTYPE_ED25519:
+@@ -470,6 +473,11 @@ static int myssh_is_known(struct connectdata *conn)
+ foundkey.keytype = CURLKHTYPE_RSA1;
+ break;
+ case SSH_KEYTYPE_ECDSA:
++#if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,9,0)
++ case SSH_KEYTYPE_ECDSA_P256:
++ case SSH_KEYTYPE_ECDSA_P384:
++ case SSH_KEYTYPE_ECDSA_P521:
++#endif
+ foundkey.keytype = CURLKHTYPE_ECDSA;
+ break;
+ #if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,7,0)
+--
+2.21.1
+
diff --git a/curl.spec b/curl.spec
index e67587c..6b1e006 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,10 +1,13 @@
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
Version: 7.69.1
-Release: 2%{?dist}
+Release: 3%{?dist}
License: MIT
Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+# SSH: use new ECDSA key types to check known hosts (#1824926)
+Patch1: 0001-curl-7.69.1-ssh-ecdsa-keys.patch
+
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
@@ -169,6 +172,7 @@ be installed.
%prep
%setup -q
+%patch1 -p1
# upstream patches
@@ -346,6 +350,9 @@ rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
+* Mon Apr 20 2020 Kamil Dudka - 7.69.1-3
+- SSH: use new ECDSA key types to check known hosts (#1824926)
+
* Fri Apr 17 2020 Tom Stellard