From 46341a033c7f45c2ce0fa7ae32b0755a57a6607d Mon Sep 17 00:00:00 2001
From: overweight <5324761+overweight@user.noreply.gitee.com>
Date: Mon, 30 Sep 2019 10:36:29 -0400
Subject: [PATCH] Package init
---
0001-curl-7.61.1-test320-gnutls.patch | 63 +++++
0001-fix-double-free-when-multi-perform.patch | 24 ++
0101-curl-7.32.0-multilib.patch | 89 +++++++
0102-curl-7.36.0-debug.patch | 65 +++++
0103-curl-7.59.0-python3.patch | 140 ++++++++++
0104-curl-7.19.7-localhost6.patch | 51 ++++
..._plain_message-fix-too-large-input-c.patch | 29 ++
...-data-multi_easy-on-free-to-avoid-us.patch | 36 +++
...ethmetic-when-outputting-warnings-to.patch | 29 ++
...eck-condition-for-type2-received-dat.patch | 34 +++
...message-size-check-to-avoid-buffer-o.patch | 39 +++
...id-risk-of-buffer-overflow-in-strtol.patch | 47 ++++
CVE-2019-5436.patch | 25 ++
...-always-nul-terminate-returned-strin.patch | 25 ++
...http2_done-fix-memleak-in-error-path.patch | 44 ++++
Curl_retry_request-fix-memory-leak.patch | 36 +++
Curl_saferealloc-Fixed-typo-in-docblock.patch | 26 ++
...ndle-memory-error-in-list-conversion.patch | 50 ++++
...lude-all-libraries-in-ssl-libs-fetch.patch | 61 +++++
curl-7.61.1.tar.xz | Bin 0 -> 2360392 bytes
...mory-leak-reading-writeout-from-file.patch | 30 +++
curl.spec | 248 ++++++++++++++++++
curl_easy_perform-fix-timeout-handling.patch | 120 +++++++++
...ltibyte-fix-a-malloc-overcalculation.patch | 41 +++
darwinssl-Fix-realloc-memleak.patch | 37 +++
...Fix-memory-leaks-from-realloc-errors.patch | 163 ++++++++++++
...emory-Potential-leak-of-memory-point.patch | 30 +++
fix-compiler-warning-on-64-bit-Windows.patch | 52 ++++
fix-gcc8-warning-on-Windows.patch | 29 ++
fix-gcc8-warning.patch | 29 ++
fix-leak-when-writing-cookies-to-file.patch | 30 +++
...ck-on-Curl_shuffle_addr-return-value.patch | 26 ++
http-fix-memleak-in-rewind-error-path.patch | 51 ++++
http2-fix-memory-leaks-on-error-path.patch | 42 +++
krb5-fix-memory-leak-in-krb_auth.patch | 27 ++
...ftp_canonicalize_path-data-correctly.patch | 68 +++++
...release-sessionid-resources-on-error.patch | 44 ++++
memory-add-missing-curl_printf-header.patch | 33 +++
...y-ensure-to-check-allocation-results.patch | 128 +++++++++
...handling-in-the-SENDPROTOCONNECT-sta.patch | 30 +++
multi-avoid-double-free.patch | 68 +++++
...x-location-URL-memleak-in-error-path.patch | 30 +++
...-leak-in-content-encoding-related-er.patch | 42 +++
...rary-strings-if-memory-allocation-fa.patch | 111 ++++++++
nonblock-fix-unused-parameter-warning.patch | 28 ++
...ct-even-if-libnssckbi.so-fails-to-lo.patch | 35 +++
...SSL_get_tlsext_status_ocsp_resp-call.patch | 48 ++++
openvms-fix-OpenSSL-discovery-on-VAX.patch | 30 +++
...ection-close-there-might-not-be-a-tr.patch | 48 ++++
secure-Openwall-URLs.patch | 53 ++++
...t-path-in-request-if-connection-reus.patch | 55 ++++
ssh-free-the-session-on-init-failures.patch | 35 +++
...sh2-error-message-when-ssh-session-s.patch | 36 +++
timediff-fix-math-for-unsigned-time_t.patch | 37 +++
tool_cb_hdr-handle-failure-of-rename.patch | 47 ++++
tool_cb_prg-avoid-integer-overflow.patch | 63 +++++
urlglob-improve-error-message.patch | 71 +++++
wolfssl-Perform-cleanup.patch | 44 ++++
zsh.pl-escape-character.patch | 38 +++
59 files changed, 3090 insertions(+)
create mode 100644 0001-curl-7.61.1-test320-gnutls.patch
create mode 100644 0001-fix-double-free-when-multi-perform.patch
create mode 100644 0101-curl-7.32.0-multilib.patch
create mode 100644 0102-curl-7.36.0-debug.patch
create mode 100644 0103-curl-7.59.0-python3.patch
create mode 100644 0104-curl-7.19.7-localhost6.patch
create mode 100644 CVE-2018-16839-Curl_auth_create_plain_message-fix-too-large-input-c.patch
create mode 100644 CVE-2018-16840-Curl_close-clear-data-multi_easy-on-free-to-avoid-us.patch
create mode 100644 CVE-2018-16842-voutf-fix-bad-arethmetic-when-outputting-warnings-to.patch
create mode 100644 CVE-2018-16890-NTLM-fix-size-check-condition-for-type2-received-dat.patch
create mode 100644 CVE-2019-3822-ntlm-fix-_type3_message-size-check-to-avoid-buffer-o.patch
create mode 100644 CVE-2019-3823-smtp-avoid-risk-of-buffer-overflow-in-strtol.patch
create mode 100644 CVE-2019-5436.patch
create mode 100644 Curl_dedotdotify-always-nul-terminate-returned-strin.patch
create mode 100644 Curl_http2_done-fix-memleak-in-error-path.patch
create mode 100644 Curl_retry_request-fix-memory-leak.patch
create mode 100644 Curl_saferealloc-Fixed-typo-in-docblock.patch
create mode 100644 OS400-handle-memory-error-in-list-conversion.patch
create mode 100644 configure-include-all-libraries-in-ssl-libs-fetch.patch
create mode 100644 curl-7.61.1.tar.xz
create mode 100644 curl-fix-memory-leak-reading-writeout-from-file.patch
create mode 100644 curl.spec
create mode 100644 curl_easy_perform-fix-timeout-handling.patch
create mode 100644 curl_multibyte-fix-a-malloc-overcalculation.patch
create mode 100644 darwinssl-Fix-realloc-memleak.patch
create mode 100644 examples-Fix-memory-leaks-from-realloc-errors.patch
create mode 100644 examples-postinmemory-Potential-leak-of-memory-point.patch
create mode 100644 fix-compiler-warning-on-64-bit-Windows.patch
create mode 100644 fix-gcc8-warning-on-Windows.patch
create mode 100644 fix-gcc8-warning.patch
create mode 100644 fix-leak-when-writing-cookies-to-file.patch
create mode 100644 hostip-fix-check-on-Curl_shuffle_addr-return-value.patch
create mode 100644 http-fix-memleak-in-rewind-error-path.patch
create mode 100644 http2-fix-memory-leaks-on-error-path.patch
create mode 100644 krb5-fix-memory-leak-in-krb_auth.patch
create mode 100644 libssh-free-sftp_canonicalize_path-data-correctly.patch
create mode 100644 mbedtls-release-sessionid-resources-on-error.patch
create mode 100644 memory-add-missing-curl_printf-header.patch
create mode 100644 memory-ensure-to-check-allocation-results.patch
create mode 100644 multi-Fix-error-handling-in-the-SENDPROTOCONNECT-sta.patch
create mode 100644 multi-avoid-double-free.patch
create mode 100644 multi-fix-location-URL-memleak-in-error-path.patch
create mode 100644 multi-fix-memory-leak-in-content-encoding-related-er.patch
create mode 100644 netrc-free-temporary-strings-if-memory-allocation-fa.patch
create mode 100644 nonblock-fix-unused-parameter-warning.patch
create mode 100644 nss-try-to-connect-even-if-libnssckbi.so-fails-to-lo.patch
create mode 100644 openssl-fix-the-SSL_get_tlsext_status_ocsp_resp-call.patch
create mode 100644 openvms-fix-OpenSSL-discovery-on-VAX.patch
create mode 100644 schannel-on-connection-close-there-might-not-be-a-tr.patch
create mode 100644 secure-Openwall-URLs.patch
create mode 100644 smb-fix-incorrect-path-in-request-if-connection-reus.patch
create mode 100644 ssh-free-the-session-on-init-failures.patch
create mode 100644 ssh-log-the-libssh2-error-message-when-ssh-session-s.patch
create mode 100644 timediff-fix-math-for-unsigned-time_t.patch
create mode 100644 tool_cb_hdr-handle-failure-of-rename.patch
create mode 100644 tool_cb_prg-avoid-integer-overflow.patch
create mode 100644 urlglob-improve-error-message.patch
create mode 100644 wolfssl-Perform-cleanup.patch
create mode 100644 zsh.pl-escape-character.patch
diff --git a/0001-curl-7.61.1-test320-gnutls.patch b/0001-curl-7.61.1-test320-gnutls.patch
new file mode 100644
index 0000000..a9cbaac
--- /dev/null
+++ b/0001-curl-7.61.1-test320-gnutls.patch
@@ -0,0 +1,63 @@
+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/0001-fix-double-free-when-multi-perform.patch b/0001-fix-double-free-when-multi-perform.patch
new file mode 100644
index 0000000..ad0d61b
--- /dev/null
+++ b/0001-fix-double-free-when-multi-perform.patch
@@ -0,0 +1,24 @@
+From 8df95297b910daa93627eb3edb89f863e6867b93 Mon Sep 17 00:00:00 2001
+From: wangjia
+Date: Sat, 30 Mar 2019 01:14:21 -0400
+Subject: [PATCH] fix double free when multi perform
+
+---
+ lib/multi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/multi.c b/lib/multi.c
+index 49b8b19..228a3da 100644
+--- a/lib/multi.c
++++ b/lib/multi.c
+@@ -2034,7 +2034,6 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
+ else if(comeback)
+ rc = CURLM_CALL_MULTI_PERFORM;
+
+- free(newurl);
+ break;
+ }
+
+--
+2.19.1
+
diff --git a/0101-curl-7.32.0-multilib.patch b/0101-curl-7.32.0-multilib.patch
new file mode 100644
index 0000000..532980e
--- /dev/null
+++ b/0101-curl-7.32.0-multilib.patch
@@ -0,0 +1,89 @@
+From 2a4754a3a7cf60ecc36d83cbe50b8c337cb87632 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Fri, 12 Apr 2013 12:04:05 +0200
+Subject: [PATCH] prevent multilib conflicts on the curl-config script
+
+---
+ curl-config.in | 21 +++------------------
+ docs/curl-config.1 | 4 +++-
+ libcurl.pc.in | 1 +
+ 3 files changed, 7 insertions(+), 19 deletions(-)
+
+diff --git a/curl-config.in b/curl-config.in
+index 150004d..95d0759 100644
+--- a/curl-config.in
++++ b/curl-config.in
+@@ -76,7 +76,7 @@ while test $# -gt 0; do
+ ;;
+
+ --cc)
+- echo "@CC@"
++ echo "gcc"
+ ;;
+
+ --prefix)
+@@ -143,32 +143,17 @@ while test $# -gt 0; do
+ ;;
+
+ --libs)
+- if test "X@libdir@" != "X/usr/lib" -a "X@libdir@" != "X/usr/lib64"; then
+- CURLLIBDIR="-L@libdir@ "
+- else
+- CURLLIBDIR=""
+- fi
+- if test "X@REQUIRE_LIB_DEPS@" = "Xyes"; then
+- echo ${CURLLIBDIR}-lcurl @LIBCURL_LIBS@
+- else
+- echo ${CURLLIBDIR}-lcurl
+- fi
++ echo -lcurl
+ ;;
+ --ssl-backends)
+ echo "@SSL_BACKENDS@"
+ ;;
+
+ --static-libs)
+- if test "X@ENABLE_STATIC@" != "Xno" ; then
+- echo @libdir@/libcurl.@libext@ @LDFLAGS@ @LIBCURL_LIBS@
+- else
+- echo "curl was built with static libraries disabled" >&2
+- exit 1
+- fi
+ ;;
+
+ --configure)
+- echo @CONFIGURE_OPTIONS@
++ pkg-config libcurl --variable=configure_options | sed 's/^"//;s/"$//'
+ ;;
+
+ *)
+diff --git a/docs/curl-config.1 b/docs/curl-config.1
+index 14a9d2b..ffcc004 100644
+--- a/docs/curl-config.1
++++ b/docs/curl-config.1
+@@ -70,7 +70,9 @@ no, one or several names. If more than one name, they will appear
+ comma-separated. (Added in 7.58.0)
+ .IP "--static-libs"
+ Shows the complete set of libs and other linker options you will need in order
+-to link your application with libcurl statically. (Added in 7.17.1)
++to link your application with libcurl statically. Note that Fedora/RHEL libcurl
++packages do not provide any static libraries, thus cannot be linked statically.
++(Added in 7.17.1)
+ .IP "--version"
+ Outputs version information about the installed libcurl.
+ .IP "--vernum"
+diff --git a/libcurl.pc.in b/libcurl.pc.in
+index 2ba9c39..f8f8b00 100644
+--- a/libcurl.pc.in
++++ b/libcurl.pc.in
+@@ -29,6 +29,7 @@ libdir=@libdir@
+ includedir=@includedir@
+ supported_protocols="@SUPPORT_PROTOCOLS@"
+ supported_features="@SUPPORT_FEATURES@"
++configure_options=@CONFIGURE_OPTIONS@
+
+ Name: libcurl
+ URL: https://curl.haxx.se/
+--
+2.5.0
+
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
new file mode 100644
index 0000000..bbb253f
--- /dev/null
+++ b/0102-curl-7.36.0-debug.patch
@@ -0,0 +1,65 @@
+From 6710648c2b270c9ce68a7d9f1bba1222c7be8b58 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)
+
+---
+ configure | 13 +++----------
+ m4/curl-compilers.m4 | 13 +++----------
+ 2 files changed, 6 insertions(+), 20 deletions(-)
+
+diff --git a/configure b/configure
+index 8f079a3..53b4774 100755
+--- a/configure
++++ b/configure
+@@ -16414,18 +16414,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`
+- 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 -O3 -Os -Og -Ofast"
+- flags_opt_yes="-O2"
++ flags_opt_all=""
++ flags_opt_yes=""
+ flags_opt_off="-O0"
+
+ OLDCPPFLAGS=$CPPFLAGS
+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], [
+ gccvhi=`echo $gccver | cut -d . -f1`
+ gccvlo=`echo $gccver | cut -d . -f2`
+ compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 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 -O3 -Os -Og -Ofast"
+- flags_opt_yes="-O2"
++ flags_opt_all=""
++ flags_opt_yes=""
+ flags_opt_off="-O0"
+ CURL_CHECK_DEF([_WIN32], [], [silent])
+ else
+--
+1.7.1
+
diff --git a/0103-curl-7.59.0-python3.patch b/0103-curl-7.59.0-python3.patch
new file mode 100644
index 0000000..f66b6c0
--- /dev/null
+++ b/0103-curl-7.59.0-python3.patch
@@ -0,0 +1,140 @@
+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
+
+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(-)
+
+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())
+ else:
+ log.debug("Received normal request - echoing back")
+- response_data = data.strip()
++ response_data = data.decode('utf8').strip()
+
+ if response_data:
+ log.debug("Sending %r", response_data)
+- self.request.sendall(response_data)
++ self.request.sendall(response_data.encode('utf8'))
+
+ 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
++++ 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/0104-curl-7.19.7-localhost6.patch b/0104-curl-7.19.7-localhost6.patch
new file mode 100644
index 0000000..4f664d3
--- /dev/null
+++ b/0104-curl-7.19.7-localhost6.patch
@@ -0,0 +1,51 @@
+diff --git a/tests/data/test1083 b/tests/data/test1083
+index e441278..b0958b6 100644
+--- a/tests/data/test1083
++++ b/tests/data/test1083
+@@ -33,13 +33,13 @@ ipv6
+ http-ipv6
+
+
+-HTTP-IPv6 GET with ip6-localhost --interface
++HTTP-IPv6 GET with localhost6 --interface
+
+
+--g "http://%HOST6IP:%HTTP6PORT/1083" --interface ip6-localhost
++-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';}"
+
+
+
+diff --git a/tests/data/test241 b/tests/data/test241
+index 46eae1f..4e1632c 100644
+--- a/tests/data/test241
++++ b/tests/data/test241
+@@ -30,13 +30,13 @@ ipv6
+ http-ipv6
+
+
+-HTTP-IPv6 GET (using ip6-localhost)
++HTTP-IPv6 GET (using localhost6)
+
+
+--g "http://ip6-localhost:%HTTP6PORT/241"
++-g "http://localhost6:%HTTP6PORT/241"
+
+
+-./server/resolve --ipv6 ip6-localhost
++./server/resolve --ipv6 localhost6
+
+
+
+@@ -48,7 +48,7 @@ HTTP-IPv6 GET (using ip6-localhost)
+
+
+ GET /241 HTTP/1.1
+-Host: ip6-localhost:%HTTP6PORT
++Host: localhost6:%HTTP6PORT
+ Accept: */*
+
+
diff --git a/CVE-2018-16839-Curl_auth_create_plain_message-fix-too-large-input-c.patch b/CVE-2018-16839-Curl_auth_create_plain_message-fix-too-large-input-c.patch
new file mode 100644
index 0000000..bdecdc7
--- /dev/null
+++ b/CVE-2018-16839-Curl_auth_create_plain_message-fix-too-large-input-c.patch
@@ -0,0 +1,29 @@
+From f3a24d7916b9173c69a3e0ee790102993833d6c5 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Fri, 28 Sep 2018 16:08:16 +0200
+Subject: [PATCH 225/557] Curl_auth_create_plain_message: fix
+ too-large-input-check
+
+CVE-2018-16839
+Reported-by: Harry Sintonen
+Bug: https://curl.haxx.se/docs/CVE-2018-16839.html
+---
+ lib/vauth/cleartext.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/vauth/cleartext.c b/lib/vauth/cleartext.c
+index a10edbd..be6d611 100644
+--- a/lib/vauth/cleartext.c
++++ b/lib/vauth/cleartext.c
+@@ -74,7 +74,7 @@ CURLcode Curl_auth_create_plain_message(struct Curl_easy *data,
+ plen = strlen(passwdp);
+
+ /* Compute binary message length. Check for overflows. */
+- if((ulen > SIZE_T_MAX/2) || (plen > (SIZE_T_MAX/2 - 2)))
++ if((ulen > SIZE_T_MAX/4) || (plen > (SIZE_T_MAX/2 - 2)))
+ return CURLE_OUT_OF_MEMORY;
+ plainlen = 2 * ulen + plen + 2;
+
+--
+1.8.3.1
+
diff --git a/CVE-2018-16840-Curl_close-clear-data-multi_easy-on-free-to-avoid-us.patch b/CVE-2018-16840-Curl_close-clear-data-multi_easy-on-free-to-avoid-us.patch
new file mode 100644
index 0000000..64ef0f3
--- /dev/null
+++ b/CVE-2018-16840-Curl_close-clear-data-multi_easy-on-free-to-avoid-us.patch
@@ -0,0 +1,36 @@
+From 81d135d67155c5295b1033679c606165d4e28f3f Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Thu, 18 Oct 2018 15:07:15 +0200
+Subject: [PATCH 224/557] Curl_close: clear data->multi_easy on free to avoid
+ use-after-free
+
+Regression from b46cfbc068 (7.59.0)
+CVE-2018-16840
+Reported-by: Brian Carpenter (Geeknik Labs)
+
+Bug: https://curl.haxx.se/docs/CVE-2018-16840.html
+---
+ lib/url.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/lib/url.c b/lib/url.c
+index 723b898..0d5a13f 100644
+--- a/lib/url.c
++++ b/lib/url.c
+@@ -319,10 +319,12 @@ CURLcode Curl_close(struct Curl_easy *data)
+ and detach this handle from there. */
+ curl_multi_remove_handle(data->multi, data);
+
+- if(data->multi_easy)
++ if(data->multi_easy) {
+ /* when curl_easy_perform() is used, it creates its own multi handle to
+ use and this is the one */
+ curl_multi_cleanup(data->multi_easy);
++ data->multi_easy = NULL;
++ }
+
+ /* Destroy the timeout list that is held in the easy handle. It is
+ /normally/ done by curl_multi_remove_handle() but this is "just in
+--
+1.8.3.1
+
diff --git a/CVE-2018-16842-voutf-fix-bad-arethmetic-when-outputting-warnings-to.patch b/CVE-2018-16842-voutf-fix-bad-arethmetic-when-outputting-warnings-to.patch
new file mode 100644
index 0000000..b40e660
--- /dev/null
+++ b/CVE-2018-16842-voutf-fix-bad-arethmetic-when-outputting-warnings-to.patch
@@ -0,0 +1,29 @@
+From d530e92f59ae9bb2d47066c3c460b25d2ffeb211 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Sun, 28 Oct 2018 01:33:23 +0200
+Subject: [PATCH 232/557] voutf: fix bad arethmetic when outputting warnings to
+ stderr
+
+CVE-2018-16842
+Reported-by: Brian Carpenter
+Bug: https://curl.haxx.se/docs/CVE-2018-16842.html
+---
+ src/tool_msgs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/tool_msgs.c b/src/tool_msgs.c
+index 832ed81..f5e1df2 100644
+--- a/src/tool_msgs.c
++++ b/src/tool_msgs.c
+@@ -67,7 +67,7 @@ static void voutf(struct GlobalConfig *config,
+ (void)fwrite(ptr, cut + 1, 1, config->errors);
+ fputs("\n", config->errors);
+ ptr += cut + 1; /* skip the space too */
+- len -= cut;
++ len -= cut + 1;
+ }
+ else {
+ fputs(ptr, config->errors);
+--
+1.8.3.1
+
diff --git a/CVE-2018-16890-NTLM-fix-size-check-condition-for-type2-received-dat.patch b/CVE-2018-16890-NTLM-fix-size-check-condition-for-type2-received-dat.patch
new file mode 100644
index 0000000..a769dca
--- /dev/null
+++ b/CVE-2018-16890-NTLM-fix-size-check-condition-for-type2-received-dat.patch
@@ -0,0 +1,34 @@
+From b780b30d1377adb10bbe774835f49e9b237fb9bb Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Wed, 2 Jan 2019 20:33:08 +0100
+Subject: [PATCH 478/557] NTLM: fix size check condition for type2 received
+ data
+
+Bug: https://curl.haxx.se/docs/CVE-2018-16890.html
+Reported-by: Wenxiang Qian
+CVE-2018-16890
+---
+ lib/vauth/ntlm.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/lib/vauth/ntlm.c b/lib/vauth/ntlm.c
+index c3d55ed..0ad4d97 100644
+--- a/lib/vauth/ntlm.c
++++ b/lib/vauth/ntlm.c
+@@ -182,10 +182,11 @@ static CURLcode ntlm_decode_type2_target(struct Curl_easy *data,
+ target_info_len = Curl_read16_le(&buffer[40]);
+ target_info_offset = Curl_read32_le(&buffer[44]);
+ if(target_info_len > 0) {
+- if(((target_info_offset + target_info_len) > size) ||
++ if((target_info_offset >= size) ||
++ ((target_info_offset + target_info_len) > size) ||
+ (target_info_offset < 48)) {
+ infof(data, "NTLM handshake failure (bad type-2 message). "
+- "Target Info Offset Len is set incorrect by the peer\n");
++ "Target Info Offset Len is set incorrect by the peer\n");
+ return CURLE_BAD_CONTENT_ENCODING;
+ }
+
+--
+1.8.3.1
+
diff --git a/CVE-2019-3822-ntlm-fix-_type3_message-size-check-to-avoid-buffer-o.patch b/CVE-2019-3822-ntlm-fix-_type3_message-size-check-to-avoid-buffer-o.patch
new file mode 100644
index 0000000..9f411ae
--- /dev/null
+++ b/CVE-2019-3822-ntlm-fix-_type3_message-size-check-to-avoid-buffer-o.patch
@@ -0,0 +1,39 @@
+From 50c9484278c63b958655a717844f0721263939cc Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Thu, 3 Jan 2019 12:59:28 +0100
+Subject: [PATCH 479/557] ntlm: fix *_type3_message size check to avoid buffer
+ overflow
+
+Bug: https://curl.haxx.se/docs/CVE-2019-3822.html
+Reported-by: Wenxiang Qian
+CVE-2019-3822
+---
+ lib/vauth/ntlm.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/lib/vauth/ntlm.c b/lib/vauth/ntlm.c
+index 0ad4d97..6a8fc5a 100644
+--- a/lib/vauth/ntlm.c
++++ b/lib/vauth/ntlm.c
+@@ -779,11 +779,14 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,
+ });
+
+ #ifdef USE_NTRESPONSES
+- if(size < (NTLM_BUFSIZE - ntresplen)) {
+- DEBUGASSERT(size == (size_t)ntrespoff);
+- memcpy(&ntlmbuf[size], ptr_ntresp, ntresplen);
+- size += ntresplen;
++ /* ntresplen + size should not be risking an integer overflow here */
++ if(ntresplen + size > sizeof(ntlmbuf)) {
++ failf(data, "incoming NTLM message too big");
++ return CURLE_OUT_OF_MEMORY;
+ }
++ DEBUGASSERT(size == (size_t)ntrespoff);
++ memcpy(&ntlmbuf[size], ptr_ntresp, ntresplen);
++ size += ntresplen;
+
+ DEBUG_OUT({
+ fprintf(stderr, "\n ntresp=");
+--
+1.8.3.1
+
diff --git a/CVE-2019-3823-smtp-avoid-risk-of-buffer-overflow-in-strtol.patch b/CVE-2019-3823-smtp-avoid-risk-of-buffer-overflow-in-strtol.patch
new file mode 100644
index 0000000..f79544a
--- /dev/null
+++ b/CVE-2019-3823-smtp-avoid-risk-of-buffer-overflow-in-strtol.patch
@@ -0,0 +1,47 @@
+From 39df4073e5413fcdbb5a38da0c1ce6f1c0ceb484 Mon Sep 17 00:00:00 2001
+From: Daniel Gustafsson
+Date: Sat, 19 Jan 2019 00:42:47 +0100
+Subject: [PATCH 480/557] smtp: avoid risk of buffer overflow in strtol
+
+If the incoming len 5, but the buffer does not have a termination
+after 5 bytes, the strtol() call may keep reading through the line
+buffer until is exceeds its boundary. Fix by ensuring that we are
+using a bounded read with a temporary buffer on the stack.
+
+Bug: https://curl.haxx.se/docs/CVE-2019-3823.html
+Reported-by: Brian Carpenter (Geeknik Labs)
+CVE-2019-3823
+---
+ lib/smtp.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/lib/smtp.c b/lib/smtp.c
+index 84fc68e..d55647b 100644
+--- a/lib/smtp.c
++++ b/lib/smtp.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
+@@ -207,8 +207,12 @@ static bool smtp_endofresp(struct connectdata *conn, char *line, size_t len,
+ Section 4. Examples of RFC-4954 but some e-mail servers ignore this and
+ only send the response code instead as per Section 4.2. */
+ if(line[3] == ' ' || len == 5) {
++ char tmpline[6];
++
+ result = TRUE;
+- *resp = curlx_sltosi(strtol(line, NULL, 10));
++ memset(tmpline, '\0', sizeof(tmpline));
++ memcpy(tmpline, line, (len == 5 ? 5 : 3));
++ *resp = curlx_sltosi(strtol(tmpline, NULL, 10));
+
+ /* Make sure real server never sends internal value */
+ if(*resp == 1)
+--
+1.8.3.1
+
diff --git a/CVE-2019-5436.patch b/CVE-2019-5436.patch
new file mode 100644
index 0000000..9fdeb30
--- /dev/null
+++ b/CVE-2019-5436.patch
@@ -0,0 +1,25 @@
+From 5c89b6583079cd4cccbdf59929fa14515397430a Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Fri, 3 May 2019 22:20:37 +0200
+Subject: [PATCH] tftp: use the current blksize for recvfrom()
+
+bug: CVE-2019-XXXXX
+Reported-by: l00p3r
+---
+ lib/tftp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: curl-7.64.0/lib/tftp.c
+===================================================================
+--- curl-7.64.0.orig/lib/tftp.c 2019-05-16 08:35:01.353786616 -0400
++++ curl-7.64.0/lib/tftp.c 2019-05-16 08:35:01.353786616 -0400
+@@ -1005,7 +1005,7 @@ static CURLcode tftp_connect(struct conn
+ state->sockfd = state->conn->sock[FIRSTSOCKET];
+ state->state = TFTP_STATE_START;
+ state->error = TFTP_ERR_NONE;
+- state->blksize = TFTP_BLKSIZE_DEFAULT;
++ state->blksize = blksize;
+ state->requested_blksize = blksize;
+
+ ((struct sockaddr *)&state->local_addr)->sa_family =
+
diff --git a/Curl_dedotdotify-always-nul-terminate-returned-strin.patch b/Curl_dedotdotify-always-nul-terminate-returned-strin.patch
new file mode 100644
index 0000000..983d786
--- /dev/null
+++ b/Curl_dedotdotify-always-nul-terminate-returned-strin.patch
@@ -0,0 +1,25 @@
+From c558db3c39db1817f78ac1bd81ec03a99447d423 Mon Sep 17 00:00:00 2001
+From: kangenbo
+Date: Mon, 18 Mar 2019 12:47:43 -0400
+Subject: [PATCH] 0095
+
+---
+ lib/dotdot.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/dotdot.c b/lib/dotdot.c
+index cbb308d..2c6177a 100644
+--- a/lib/dotdot.c
++++ b/lib/dotdot.c
+@@ -62,6 +62,8 @@ char *Curl_dedotdotify(const char *input)
+ if(!out)
+ return NULL; /* out of memory */
+
++ *out = 0; /* zero terminates, for inputs like "./" */
++
+ /* get a cloned copy of the input */
+ clone = strdup(input);
+ if(!clone) {
+--
+1.8.3.1
+
diff --git a/Curl_http2_done-fix-memleak-in-error-path.patch b/Curl_http2_done-fix-memleak-in-error-path.patch
new file mode 100644
index 0000000..4783beb
--- /dev/null
+++ b/Curl_http2_done-fix-memleak-in-error-path.patch
@@ -0,0 +1,44 @@
+From d26605818339acb190572a5c4291945160063ff0 Mon Sep 17 00:00:00 2001
+From: kangenbo
+Date: Mon, 18 Mar 2019 13:41:26 -0400
+Subject: [PATCH] 0101
+
+---
+ lib/http2.c | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/lib/http2.c b/lib/http2.c
+index dfc780e..eb395f9 100644
+--- a/lib/http2.c
++++ b/lib/http2.c
+@@ -1085,12 +1085,8 @@ void Curl_http2_done(struct connectdata *conn, bool premature)
+ struct HTTP *http = data->req.protop;
+ struct http_conn *httpc = &conn->proto.httpc;
+
+- if(!httpc->h2) /* not HTTP/2 ? */
+- return;
+-
+- if(data->state.drain)
+- drained_transfer(data, httpc);
+-
++ /* there might be allocated resources done before this got the 'h2' pointer
++ setup */
+ if(http->header_recvbuf) {
+ Curl_add_buffer_free(http->header_recvbuf);
+ http->header_recvbuf = NULL; /* clear the pointer */
+@@ -1106,6 +1102,12 @@ void Curl_http2_done(struct connectdata *conn, bool premature)
+ }
+ }
+
++ if(!httpc->h2) /* not HTTP/2 ? */
++ return;
++
++ if(data->state.drain)
++ drained_transfer(data, httpc);
++
+ if(premature) {
+ /* RST_STREAM */
+ if(!nghttp2_submit_rst_stream(httpc->h2, NGHTTP2_FLAG_NONE,
+--
+1.8.3.1
+
diff --git a/Curl_retry_request-fix-memory-leak.patch b/Curl_retry_request-fix-memory-leak.patch
new file mode 100644
index 0000000..1111b60
--- /dev/null
+++ b/Curl_retry_request-fix-memory-leak.patch
@@ -0,0 +1,36 @@
+From ef695fc30144c8b92700c0161cdafd141c70ae60 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Mon, 24 Sep 2018 14:05:24 +0200
+Subject: [PATCH 098/557] Curl_retry_request: fix memory leak
+
+Detected by OSS-Fuzz
+
+Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10648
+Closes #3042
+---
+ lib/transfer.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/lib/transfer.c b/lib/transfer.c
+index 6a80bf3..efd9292 100644
+--- a/lib/transfer.c
++++ b/lib/transfer.c
+@@ -1705,8 +1705,13 @@ CURLcode Curl_retry_request(struct connectdata *conn,
+
+ if(conn->handler->protocol&PROTO_FAMILY_HTTP) {
+ struct HTTP *http = data->req.protop;
+- if(http->writebytecount)
+- return Curl_readrewind(conn);
++ if(http->writebytecount) {
++ CURLcode result = Curl_readrewind(conn);
++ if(result) {
++ Curl_safefree(*url);
++ return result;
++ }
++ }
+ }
+ }
+ return CURLE_OK;
+--
+1.8.3.1
+
diff --git a/Curl_saferealloc-Fixed-typo-in-docblock.patch b/Curl_saferealloc-Fixed-typo-in-docblock.patch
new file mode 100644
index 0000000..4857fed
--- /dev/null
+++ b/Curl_saferealloc-Fixed-typo-in-docblock.patch
@@ -0,0 +1,26 @@
+From 39c9140cceaffd98c683e1f426cc451909703554 Mon Sep 17 00:00:00 2001
+From: Erik Minekus
+Date: Fri, 21 Sep 2018 14:20:18 +0200
+Subject: [PATCH 081/557] Curl_saferealloc: Fixed typo in docblock
+
+Closes #3029
+---
+ lib/strdup.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/strdup.c b/lib/strdup.c
+index 19cb044..51e7978 100644
+--- a/lib/strdup.c
++++ b/lib/strdup.c
+@@ -81,7 +81,7 @@ void *Curl_memdup(const void *src, size_t length)
+ * Curl_saferealloc(ptr, size)
+ *
+ * Does a normal realloc(), but will free the data pointer if the realloc
+- * fails. If 'size' is zero, it will free the data and return a failure.
++ * fails. If 'size' is non-zero, it will free the data and return a failure.
+ *
+ * This convenience function is provided and used to help us avoid a common
+ * mistake pattern when we could pass in a zero, catch the NULL return and end
+--
+1.8.3.1
+
diff --git a/OS400-handle-memory-error-in-list-conversion.patch b/OS400-handle-memory-error-in-list-conversion.patch
new file mode 100644
index 0000000..b1e032a
--- /dev/null
+++ b/OS400-handle-memory-error-in-list-conversion.patch
@@ -0,0 +1,50 @@
+From a58b27740fd78fee88b35104fa71b7019280ccff Mon Sep 17 00:00:00 2001
+From: Daniel Gustafsson
+Date: Thu, 13 Dec 2018 10:15:00 +0100
+Subject: [PATCH 363/557] OS400: handle memory error in list conversion
+
+Curl_slist_append_nodup() returns NULL when it fails to create a new
+item for the specified list, and since the coding here reassigned the
+new list on top of the old list it would result in a dangling pointer
+and lost memory. Also, in case we hit an allocation failure at some
+point during the conversion, with allocation succeeding again on the
+subsequent call(s) we will return a truncated list around the malloc
+failure point. Fix by assigning to a temporary list pointer, which can
+be checked (which is the common pattern for slist appending), and free
+all the resources on allocation failure.
+
+Closes #3372
+Reviewed-by: Daniel Stenberg
+---
+ packages/OS400/ccsidcurl.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/packages/OS400/ccsidcurl.c b/packages/OS400/ccsidcurl.c
+index b1d3ba8..ca711d0 100644
+--- a/packages/OS400/ccsidcurl.c
++++ b/packages/OS400/ccsidcurl.c
+@@ -219,13 +219,20 @@ slist_convert(int dccsid, struct curl_slist * from, int sccsid)
+ struct curl_slist * to = (struct curl_slist *) NULL;
+
+ for(; from; from = from->next) {
++ struct curl_slist *nl;
+ char * cp = dynconvert(dccsid, from->data, -1, sccsid);
+
+ if(!cp) {
+ curl_slist_free_all(to);
+ return (struct curl_slist *) NULL;
+ }
+- to = Curl_slist_append_nodup(to, cp);
++ nl = Curl_slist_append_nodup(to, cp);
++ if(!nl) {
++ curl_slist_free_all(to);
++ free(cp);
++ return NULL;
++ }
++ to = nl;
+ }
+ return to;
+ }
+--
+1.8.3.1
+
diff --git a/configure-include-all-libraries-in-ssl-libs-fetch.patch b/configure-include-all-libraries-in-ssl-libs-fetch.patch
new file mode 100644
index 0000000..f44f9ff
--- /dev/null
+++ b/configure-include-all-libraries-in-ssl-libs-fetch.patch
@@ -0,0 +1,61 @@
+From 0fac7a10fd08281f659df82a9d1c779bf61d7401 Mon Sep 17 00:00:00 2001
+From: James Knight
+Date: Tue, 30 Oct 2018 03:17:44 -0400
+Subject: [PATCH 318/557] configure: include all libraries in ssl-libs fetch
+
+When compiling a collection of SSL libraries to link against (SSL_LIBS),
+ensure all libraries are included. The call `--libs-only-l` can produce
+only a subset of found in a `--libs` call (e.x. pthread may be excluded).
+Adding `--libs-only-other` ensures other libraries are also included in
+the list. This corrects select build environments compiling against a
+static version of OpenSSL. Before the change, the following could be
+observed:
+
+ checking for openssl options with pkg-config... found
+ configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -lcrypto -lz -ldl "
+ configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight//staging/usr/lib -L/home/jdknight//staging/usr/lib "
+ configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight//staging/usr/include "
+ checking for HMAC_Update in -lcrypto... no
+ checking for HMAC_Init_ex in -lcrypto... no
+ checking OpenSSL linking with -ldl... no
+ checking OpenSSL linking with -ldl and -lpthread... no
+ configure: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.
+ configure: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.
+ ...
+ SSL support: no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )
+ ...
+
+And include the other libraries when compiling SSL_LIBS succeeds with:
+
+ checking for openssl options with pkg-config... found
+ configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -pthread -lcrypto -lz -ldl -pthread "
+ configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight//staging/usr/lib -L/home/jdknight//staging/usr/lib "
+ configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight//staging/usr/include "
+ checking for HMAC_Update in -lcrypto... yes
+ checking for SSL_connect in -lssl... yes
+ ...
+ SSL support: enabled (OpenSSL)
+ ...
+
+Signed-off-by: James Knight
+Closes #3193
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 80f8ae1..b0bd9a3 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -1623,7 +1623,7 @@ if test -z "$ssl_backends" -o "x$OPT_SSL" != xno &&
+
+ if test "$PKGCONFIG" != "no" ; then
+ SSL_LIBS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
+- $PKGCONFIG --libs-only-l openssl 2>/dev/null`
++ $PKGCONFIG --libs-only-l --libs-only-other openssl 2>/dev/null`
+
+ SSL_LDFLAGS=`CURL_EXPORT_PCDIR([$OPENSSL_PCDIR]) dnl
+ $PKGCONFIG --libs-only-L openssl 2>/dev/null`
+--
+1.8.3.1
+
diff --git a/curl-7.61.1.tar.xz b/curl-7.61.1.tar.xz
new file mode 100644
index 0000000000000000000000000000000000000000..11fe1c1748a3456136986d99235837e0cbb1584a
GIT binary patch
literal 2360392
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