]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
4 years agometalink: remove
Daniel Stenberg [Tue, 1 Jun 2021 14:24:00 +0000 (16:24 +0200)] 
metalink: remove

Warning: this will make existing curl command lines that use metalink to
stop working.

Reasons for removal:

1. We've found several security problems and issues involving the
   metalink support in curl. The issues are not detailed here. When
   working on those, it become apparent to the team that several of the
   problems are due to the system design, metalink library API and what
   the metalink RFC says. They are very hard to fix on the curl side
   only.

2. The metalink usage with curl was only very briefly documented and was
   not following the "normal" curl usage pattern in several ways, making
   it surprising and non-intuitive which could lead to further security
   issues.

3. The metalink library was last updated 6 years ago and wasn't so
   active the years before that either. An unmaintained library means
   there's a security problem waiting to happen. This is probably reason
   enough.

4. Metalink requires an XML parsing library, which is complex code (even
   the smaller alternatives) and to this day often gets security
   updates.

5. Metalink is not a widely used curl feature. In the 2020 curl user
   survey, only 1.4% of the responders said that they'd are using it. In
   2021 that number was 1.2%. Searching the web also show very few
   traces of it being used, even with other tools.

6. The torrent format and associated technology clearly won for
   downloading large files from multiple sources in parallel.

Cloes #7176

4 years agodocs/INSTALL: remove mentions of configure --with-darwin-ssl
Daniel Stenberg [Sun, 6 Jun 2021 10:12:01 +0000 (12:12 +0200)] 
docs/INSTALL: remove mentions of configure --with-darwin-ssl

... as it isn't supported since a while back.

Make configure fail with a warning if used.

Reported-by: Vadim Grinshpun
Bug: https://curl.se/mail/lib-2021-06/0008.html
Closes #7200

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sun, 6 Jun 2021 15:10:47 +0000 (17:10 +0200)] 
RELEASE-NOTES: synced

4 years agocmake: Avoid leaking absolute paths into exported config
Gregor Jasny [Mon, 31 May 2021 15:10:45 +0000 (17:10 +0200)] 
cmake: Avoid leaking absolute paths into exported config

The `find_libarary` command resolves the library or framework
into an absolute path. In case of system frameworks which are
located within an Xcode-provided SDK this results in the Xcode
path and SDK version being part of the library path.

Because those library paths end up in the exported CMake config
importing curl will fail once the Xcode location or SDK version
changes:

```cmake
set_target_properties(CURL::libcurl PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  INTERFACE_LINK_LIBRARIES "lber;ldap;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/SystemConfiguration.framework;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB"
)
```

A work-around is to link against system-level frameworks with
`-framework XYZ`. In case of `SystemConfiguration` we might be able
to omit the lookup-check because we could assume the framework is
always present.

Closes #7152

4 years agohttp2_connisdead: handle trailing GOAWAY better
Shikha Sharma [Fri, 4 Jun 2021 11:28:16 +0000 (13:28 +0200)] 
http2_connisdead: handle trailing GOAWAY better

When checking the connection the input processing returns error
immediately, we now consider that a dead connnection.

Bug: https://curl.se/mail/lib-2021-06/0001.html
Closes #7192

4 years agoares: always store IPv6 addresses first
Dmitry Karpov [Thu, 3 Jun 2021 21:56:37 +0000 (23:56 +0200)] 
ares: always store IPv6 addresses first

Trying dual-stack on some embedded platform, I noticed that quite
frequently (20%) libCurl starts from IPv4 regardless the Happy Eyeballs
timeout value.  After debugging this issue, I noticed that this happens
if c-ares resolver response for IPv6 family comes before IPv4 (which was
randomly happening in my tests).

In such cases, because libCurl puts the last resolver response on top of
the address list, when IPv4 resolver response comes after IPv6 one - the
IPv4 family starts the connection phase instead of IPv6 family.

The solution for this issue is to always put IPv6 addresses on top of
the address list, regardless the order of resolver responses.

Bug: https://curl.se/mail/lib-2021-06/0003.html

Closes #7188

4 years agoRevert "Revert "socketpair: fix potential hangs""
Daniel Stenberg [Sat, 5 Jun 2021 10:57:28 +0000 (12:57 +0200)] 
Revert "Revert "socketpair: fix potential hangs""

This reverts commit 3e70c3430a370a31eff2c1d8fea29edaca8f1127.

Thus brings back the change from #7144 as was originally landed in
c769d1eab4de8b

Closes #7144 (again)

4 years agoschannel: move code out of SChannel_connect_step1
Ebe Janchivdorj [Tue, 1 Jun 2021 20:37:08 +0000 (13:37 -0700)] 
schannel: move code out of SChannel_connect_step1

Reviewed-by: Marc Hoersken
Closes #7168

4 years agotests/data/Makefile.inc: error: trailing backslash on last line
Daniel Stenberg [Fri, 4 Jun 2021 14:50:54 +0000 (16:50 +0200)] 
tests/data/Makefile.inc: error: trailing backslash on last line

Follow-up to d8dcb399b8009d

4 years agoTODO: Support rate-limiting for MQTT
Daniel Stenberg [Fri, 4 Jun 2021 13:57:02 +0000 (15:57 +0200)] 
TODO: Support rate-limiting for MQTT

4 years agowarnless: simplify type size handling
dmitrykos [Wed, 2 Jun 2021 20:06:00 +0000 (23:06 +0300)] 
warnless: simplify type size handling

By using sizeof(T), existing defines and relying on the compiler to
define the required signed/unsigned mask.

Closes #7181

4 years ago[Win32] Fix for USE_WATT32
Gisle Vanem [Fri, 4 Jun 2021 10:16:57 +0000 (12:16 +0200)] 
[Win32] Fix for USE_WATT32

My Watt-32 tcp/ip stack works on Windows but it does not have `WSAIoctl()`

4 years agourl: bad CURLOPT_CONNECT_TO syntax now returns error
Alexis Vachette [Thu, 3 Jun 2021 12:49:49 +0000 (14:49 +0200)] 
url: bad CURLOPT_CONNECT_TO syntax now returns error

Added test 3020 to verify

Closes #7183

4 years agogithub: remove the cmake macOS gcc-8 jobs
Daniel Stenberg [Thu, 3 Jun 2021 21:03:35 +0000 (23:03 +0200)] 
github: remove the cmake macOS gcc-8 jobs

They're too similar to the gcc-9 ones to be useful (and seems to not
work anymore).

Closes #7187

4 years agotest269: disable for hyper 7186/head
Daniel Stenberg [Thu, 3 Jun 2021 15:56:36 +0000 (17:56 +0200)] 
test269: disable for hyper

--ignore-content-length / CURLOPT_IGNORE_CONTENT_LENGTH doesn't work
with hyper.

Closes #7184

4 years agoruntests: enable 'hyper mode' only for HTTP tests
Daniel Stenberg [Thu, 3 Jun 2021 16:10:44 +0000 (18:10 +0200)] 
runtests: enable 'hyper mode' only for HTTP tests

The 'hyper mode' makes line-ending checks work in the test suite for
when hyper is used. Now it also requires that HTTP or HTTPS are
mentioned as keywords to be enabled so that it doesn't wrongly adjusts
tests for other protocols.

This makes test 271 (TFTP) work again in hyper enabled builds.

Closes #7185

4 years agohostip: bad CURLOPT_RESOLVE syntax now returns error
Alexis Vachette [Wed, 2 Jun 2021 12:12:10 +0000 (14:12 +0200)] 
hostip: bad CURLOPT_RESOLVE syntax now returns error

Added test 3019
Fixes #7170
Closes #7174

4 years agocookies: fix typo and expand comment
Daniel Gustafsson [Thu, 3 Jun 2021 11:02:09 +0000 (13:02 +0200)] 
cookies: fix typo and expand comment

Fix a typo in the sorting comment, and while in there elaborate slightly
on why creationtime can be used as a tiebreaker.

4 years agocookies: remove unused header
Daniel Gustafsson [Thu, 3 Jun 2021 11:02:07 +0000 (13:02 +0200)] 
cookies: remove unused header

Commit 1c1d9f1affbd3367bcb24062e261d0ea5d185e3a removed the last use
for the inet_pton.h headerfile, this removes the inclusion of the
header.

Closes: #7182
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
4 years agoRevert "socketpair: fix potential hangs"
Daniel Stenberg [Thu, 3 Jun 2021 10:12:13 +0000 (12:12 +0200)] 
Revert "socketpair: fix potential hangs"

This reverts commit c769d1eab4de8b9f1bd84d992c63692fdc43c5be.

See #7144 for details

4 years agosocketpair: fix potential hangs
Paul Groke [Fri, 28 May 2021 11:42:56 +0000 (13:42 +0200)] 
socketpair: fix potential hangs

Fixes potential hang in accept by using select + non-blocking accept.

Fixes potential hang in peer check by replacing the send/recv check with
a getsockname/getpeername check.

Adds length check for returned sockaddr data.

Closes #7144

4 years agoruntests: parse data/Makefile.inc instead of using make 7177/head
Daniel Stenberg [Wed, 2 Jun 2021 14:38:57 +0000 (16:38 +0200)] 
runtests: parse data/Makefile.inc instead of using make

The warning about missing entries in that file then doesn't require that
the Makefile has been regenerated which was confusing.

The scan for the test num is a little more error prone than before
(since now it doesn't actually verify that it is legitimate Makefile
syntax), but I think it is good enough.

Closes #7177

4 years agofilecheck: quietly remove test-place/*~
Harry Sintonen [Wed, 2 Jun 2021 17:27:57 +0000 (20:27 +0300)] 
filecheck: quietly remove test-place/*~

Closes #7179

4 years agoCURLE_SETOPT_OPTION_SYNTAX: new error name for wrong setopt syntax
Daniel Stenberg [Wed, 2 Jun 2021 12:56:07 +0000 (14:56 +0200)] 
CURLE_SETOPT_OPTION_SYNTAX: new error name for wrong setopt syntax

For options that pass in lists or strings that are subsequently parsed
and must be correct. This broadens the scope for the option previously
known as CURLE_TELNET_OPTION_SYNTAX but the old name is of course still
provided as a #define for existing applications.

Closes #7175

4 years agotests: fix Accept-Encoding strips to work with Hyper builds
Daniel Stenberg [Wed, 2 Jun 2021 07:45:40 +0000 (09:45 +0200)] 
tests: fix Accept-Encoding strips to work with Hyper builds

The previous strip also removed the CR which turned problematic.

valgrind.supp: add zstd suppression using hyper

Reported-and-analyzed-by: Kevin Burke
Fixes #7169
Closes #7171

4 years agogithub: timeout jobs on macOS after 90 minutes
Daniel Stenberg [Wed, 2 Jun 2021 11:19:36 +0000 (13:19 +0200)] 
github: timeout jobs on macOS after 90 minutes

Assisted-by: Marc Hoersken
Closes #7173

4 years agomqtt: detect illegal and too large file size
Harry Sintonen [Tue, 1 Jun 2021 15:22:31 +0000 (18:22 +0300)] 
mqtt: detect illegal and too large file size

Add test 3017 and 3018 to verify.
Closes #7166

4 years agocmake: add CURL_DISABLE_NTLM option
theawless [Fri, 7 May 2021 09:44:40 +0000 (15:14 +0530)] 
cmake: add CURL_DISABLE_NTLM option

Closes #7028

4 years agoconfigure: add --disable-ntlm option
theawless [Fri, 7 May 2021 09:45:35 +0000 (15:15 +0530)] 
configure: add --disable-ntlm option

Closes #7028

4 years agodefine: re-add CURL_DISABLE_NTLM and corresponding ifdefs
theawless [Fri, 7 May 2021 07:28:50 +0000 (12:58 +0530)] 
define: re-add CURL_DISABLE_NTLM and corresponding ifdefs

This flag will be further exposed by adding build options.

Reverts #6809
Closes #7028

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 2 Jun 2021 06:18:08 +0000 (08:18 +0200)] 
RELEASE-NOTES: synced

4 years agotravis: delete --enable-hsts option (it is the default now) [ci skip]
Viktor Szakats [Tue, 1 Jun 2021 22:30:11 +0000 (22:30 +0000)] 
travis: delete --enable-hsts option (it is the default now) [ci skip]

Reviewed-by: Daniel Stenberg
Closes #7167

4 years agohostip: fix 3 coverity complaints
Daniel Stenberg [Tue, 1 Jun 2021 08:16:19 +0000 (10:16 +0200)] 
hostip: fix 3 coverity complaints

Follow-up to 1a0ebf6632f889eed

- Check the return code to Curl_inet_pton() in two instances, even
  though we know the input is valid so the functions won't fail.

- Clear the 'struct sockaddr_in' struct before use so that the
  'sin_zero' field isn't left uninitialized.

Detected by Coverity.
Assisted-by: Harry Sintonen
Closes #7163

4 years agoc-hyper: fix NTLM on closed connection tested with test159
Daniel Stenberg [Mon, 31 May 2021 13:11:27 +0000 (15:11 +0200)] 
c-hyper: fix NTLM on closed connection tested with test159

Closes #7154

4 years agoconncache: lowercase the hash key for better match
Daniel Stenberg [Tue, 1 Jun 2021 06:28:29 +0000 (08:28 +0200)] 
conncache: lowercase the hash key for better match

As host names are case insensitive, the use of case sensitive hashing
caused unnecesary cache misses and therefore lost performance. This
lowercases the hash key.

Reported-by: Harry Sintonen
Fixes #7159
Closes #7161

4 years agombedtls: make mbedtls_strerror always work
Daniel Stenberg [Tue, 1 Jun 2021 07:38:42 +0000 (09:38 +0200)] 
mbedtls: make mbedtls_strerror always work

If the function doesn't exist, provide a macro that just clears the
error message. Removes #ifdef uses from the code.

Closes #7162

4 years agovtls: exit addsessionid if no cache is inited
Daniel Stenberg [Tue, 1 Jun 2021 09:17:27 +0000 (11:17 +0200)] 
vtls: exit addsessionid if no cache is inited

Follow-up to b249592d29ae0

Avoids NULL pointer derefs.

Closes #7165

4 years agoCurl_ntlm_core_mk_nt_hash: fix OOM in error path
Harry Sintonen [Tue, 1 Jun 2021 09:31:15 +0000 (11:31 +0200)] 
Curl_ntlm_core_mk_nt_hash: fix OOM in error path

Closes #7164

4 years agossl: read pending close notify alert before closing the connection
Michael Kaufmann [Tue, 18 May 2021 09:34:02 +0000 (11:34 +0200)] 
ssl: read pending close notify alert before closing the connection

This avoids a TCP reset (RST) if the server initiates a connection
shutdown by sending an SSL close notify alert and then closes the TCP
connection.

For SSL connections, usually the server announces that it will close the
connection with an SSL close notify alert. curl should read this alert.
If curl does not read this alert and just closes the connection, some
operating systems close the TCP connection with an RST flag.

See RFC 1122, section 4.2.2.13

If curl reads the close notify alert, the TCP connection is closed
normally with a FIN flag.

The new code is similar to existing code in the "SSL shutdown" function:
try to read an alert (non-blocking), and ignore any read errors.

Closes #7095

4 years agosetopt: fix incorrect comments
Laurent Dufresne [Mon, 31 May 2021 18:55:14 +0000 (20:55 +0200)] 
setopt: fix incorrect comments

Closes #7157

4 years agombedtls: add support for cert and key blob options
Laurent Dufresne [Mon, 31 May 2021 18:52:05 +0000 (20:52 +0200)] 
mbedtls: add support for cert and key blob options

CURLOPT_SSLCERT_BLOB and CURLOPT_SSLKEY_BLOB weren't usable with
mbedtls backend, so the support was added.

Closes #7157

4 years agocmake: try well-known send/recv signature for Apple
Gregor Jasny [Mon, 31 May 2021 19:36:37 +0000 (21:36 +0200)] 
cmake: try well-known send/recv signature for Apple

The CMake `try_compile` command is especially slow for
the Xcode generator. With this patch applied it first tests
for the currently used (and Open Group specified) send/recv
signature. In case this fails testing falls-back to the
permutations.

speed-up:

```
time cmake .. -GNinja -DCMAKE_USE_SECTRANSP=ON -DHTTP_ONLY=ON -DCMAKE_USE_LIBSSH2=OFF
before: 11.64s user 11.09s system 55% cpu 40.754 total
after:   7.84s user 6.57s  system 51% cpu 28.074 total
```

```
time cmake .. -GXcode -DCMAKE_USE_SECTRANSP=ON -DHTTP_ONLY=ON -DCMAKE_USE_LIBSSH2=OFF
before: 217.07s user 104.15s system 60% cpu 8:51.79 total
after:  108.76s user  51.80s system 58% cpu 4:32.58 total
```

Closes #7158

4 years agohttp2: init recvbuf struct for pushed streams
Daniel Stenberg [Mon, 31 May 2021 13:30:31 +0000 (15:30 +0200)] 
http2: init recvbuf struct for pushed streams

Debug builds would warn that these structs were not initialized properly
for pushed streams.

Ref: #7148
Closes #7153

4 years agoCurl_ssl_getsessionid: fail if no session cache exists
Daniel Stenberg [Mon, 31 May 2021 13:29:03 +0000 (15:29 +0200)] 
Curl_ssl_getsessionid: fail if no session cache exists

This function might get called for an easy handle for which the session
cache hasn't been setup. It now just returns a "miss" in that case.

Reported-by: Christoph M. Becker
Fixes #7148
Closes #7153

4 years agoGOVERNANCE: add 'user', 'committer' and 'contributor'
Daniel Stenberg [Mon, 31 May 2021 07:38:12 +0000 (09:38 +0200)] 
GOVERNANCE: add 'user', 'committer' and 'contributor'

As those are commonly used terms in the project.

Closes #7151

4 years agoURL-SYNTAX.md: document the new 'localhost' treatment
Daniel Stenberg [Mon, 31 May 2021 06:33:44 +0000 (08:33 +0200)] 
URL-SYNTAX.md: document the new 'localhost' treatment

4 years agohostip: make 'localhost' return fixed values
Daniel Stenberg [Mon, 31 May 2021 06:33:44 +0000 (08:33 +0200)] 
hostip: make 'localhost' return fixed values

Resolving the case insensitive host name 'localhost' now returns the
addresses 127.0.0.1 and (if IPv6 is enabled) ::1 without using any
resolver.

This removes the risk that users accidentally resolves 'localhost' to
something else. By making sure 'localhost' is always local, we can
assume a "secure context" for such transfers (for cookies etc).

Closes #7039

4 years agodocs: fix typos
Daniel Gustafsson [Mon, 31 May 2021 10:47:15 +0000 (12:47 +0200)] 
docs: fix typos

4 years agohsts: ignore numberical IP address hosts
Daniel Stenberg [Sat, 29 May 2021 21:57:58 +0000 (23:57 +0200)] 
hsts: ignore numberical IP address hosts

Also, use a single function library-wide for detecting if a given hostname is
a numerical IP address.

Reported-by: Harry Sintonen
Fixes #7146
Closes #7149

4 years agotest178: adjust for hyper
Daniel Stenberg [Fri, 28 May 2021 21:46:03 +0000 (23:46 +0200)] 
test178: adjust for hyper

Hyper returns the same error for wrong HTTP version as for negative
content-length. Test 178 verifies that negative content-length is
rejected but the hyper backend will return a different error for it (and
without any helpful message telling why the message was bad). It will
also not return any headers at all for the response, not even the ones
that arrived before the error.

Closes #7147

4 years agoHYPER: remove mentions of deprecated development branch
Daniel Stenberg [Fri, 28 May 2021 21:06:19 +0000 (23:06 +0200)] 
HYPER: remove mentions of deprecated development branch

4 years agoc-hyper: handle NULL from hyper_buf_copy()
Daniel Stenberg [Fri, 28 May 2021 10:31:55 +0000 (12:31 +0200)] 
c-hyper: handle NULL from hyper_buf_copy()

Closes #7143

4 years agoHSTS: not experimental anymore
Daniel Stenberg [Fri, 28 May 2021 10:34:07 +0000 (12:34 +0200)] 
HSTS: not experimental anymore

4 years agoINSTALL: use correct extension for CURL-DISABLE.md
Douglas R. Reno [Thu, 27 May 2021 17:22:42 +0000 (12:22 -0500)] 
INSTALL: use correct extension for CURL-DISABLE.md

In INSTALL.MD, it's currently set to CURL-DISABLE-md instead of
CURL-DISABLE.md. This generates a 404 on the cURL website as well as
when viewing the docs through Github.

Closes #7142

4 years agotravis: run tests 1 - 153 with hyper
Daniel Stenberg [Thu, 27 May 2021 14:54:04 +0000 (16:54 +0200)] 
travis: run tests 1 - 153 with hyper

4 years agoc-hyper: convert HYPERE_INVALID_PEER_MESSAGE to CURLE_UNSUPPORTED_PROTOCOL
Daniel Stenberg [Thu, 27 May 2021 15:04:05 +0000 (17:04 +0200)] 
c-hyper: convert HYPERE_INVALID_PEER_MESSAGE to CURLE_UNSUPPORTED_PROTOCOL

Makes test 129 work (HTTP/1.2 response).

Closes #7141

4 years agohttp_proxy: deal with non-200 CONNECT response with Hyper
Daniel Stenberg [Thu, 27 May 2021 14:50:24 +0000 (16:50 +0200)] 
http_proxy: deal with non-200 CONNECT response with Hyper

Makes test 94 and 95 work

Closes #7141

4 years agoc-hyper: clear NTLM auth buffer when request is issued
Daniel Stenberg [Thu, 27 May 2021 08:19:50 +0000 (10:19 +0200)] 
c-hyper: clear NTLM auth buffer when request is issued

To prevent previous ones to get reused on subsequent requests. Matches
how the built-in HTTP code works. Makes test 90 to 93 work.

Add test 90 to 93 in travis.

Closes #7139

4 years agoschannel: set ALPN length correctly for HTTP/2
Joel Depooter [Thu, 27 May 2021 01:33:34 +0000 (18:33 -0700)] 
schannel: set ALPN length correctly for HTTP/2

In a3268eca792f1 this code was changed to use the ALPN_H2 constant
instead of the NGHTTP2_PROTO_ALPN constant. However, these constants are
not the same. The nghttp2 constant included the length of the string,
like this: "\x2h2". The ALPN_H2 constant is just "h2". Therefore we need
to re-add the length of the string to the ALPN buffer.

Closes #7138

4 years agotravis: run tests 1-89 in the hyper build
Daniel Stenberg [Wed, 26 May 2021 21:27:49 +0000 (23:27 +0200)] 
travis: run tests 1-89 in the hyper build

Closes #7137

4 years agoRevert "c-hyper: handle body on HYPER_TASK_EMPTY"
Daniel Stenberg [Wed, 26 May 2021 21:09:44 +0000 (23:09 +0200)] 
Revert "c-hyper: handle body on HYPER_TASK_EMPTY"

This reverts commit c3eefa95c31f55657f0af422e8268d738f689066.

Reported-by: Kevin Burke
Fixes #7122
Closes #7136

4 years agoccsidcurl: fix the compile errors
jonrumsey [Wed, 26 May 2021 16:03:32 +0000 (17:03 +0100)] 
ccsidcurl: fix the compile errors

Looks like the declaration of cpp shoule be const char ** and return
null if convert_version_info_string fails.

Fixes #7134
Closes #7135

4 years agodocs: use --max-redirs instead of --max-redir
Viktor Szakats [Wed, 26 May 2021 02:55:18 +0000 (02:55 +0000)] 
docs: use --max-redirs instead of --max-redir

For consistency.

Closes #7130

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 26 May 2021 12:47:35 +0000 (14:47 +0200)] 
RELEASE-NOTES: synced

... and bump to 7.77.1

4 years agotravis: add bearssl build
Michael Forney [Wed, 26 May 2021 07:16:19 +0000 (00:16 -0700)] 
travis: add bearssl build

Closes #7133

4 years agobearssl: explicitly initialize all fields of Curl_ssl
Michael Forney [Wed, 26 May 2021 07:43:46 +0000 (00:43 -0700)] 
bearssl: explicitly initialize all fields of Curl_ssl

Also, add comments like the other vtls backends.

Closes #7133

4 years agobearssl: remove incorrect const on variable that is modified
Michael Forney [Wed, 26 May 2021 06:42:07 +0000 (23:42 -0700)] 
bearssl: remove incorrect const on variable that is modified

hostname may be set to NULL later on in this function if it is an
IP address.

Closes #7133

4 years agoRELEASE-NOTES: synced curl-7_77_0
Daniel Stenberg [Mon, 24 May 2021 11:24:37 +0000 (13:24 +0200)] 
RELEASE-NOTES: synced

4 years agoTHANKS: added contributors from 7.77.0 cycle
Daniel Stenberg [Mon, 24 May 2021 11:26:17 +0000 (13:26 +0200)] 
THANKS: added contributors from 7.77.0 cycle

4 years agocopyright: update copyright year ranges to 2021
Daniel Stenberg [Thu, 20 May 2021 21:24:38 +0000 (23:24 +0200)] 
copyright: update copyright year ranges to 2021

4 years agohostip: fix broken macOS/CMake/GCC builds
Radek Zajic [Tue, 25 May 2021 20:19:05 +0000 (22:19 +0200)] 
hostip: fix broken macOS/CMake/GCC builds

Follow-up to 31f631a142d855f06

Fixes #7128
Closes #7129

4 years agoTODO: netrc caching and sharing
Daniel Stenberg [Tue, 25 May 2021 15:45:26 +0000 (17:45 +0200)] 
TODO: netrc caching and sharing

URL: https://curl.se/mail/archive-2021-05/0018.html

4 years agosetopt: streamline ssl option code
Orgad Shaneh [Mon, 24 May 2021 18:57:45 +0000 (21:57 +0300)] 
setopt: streamline ssl option code

Make it use the same style as the code next to it

Closes #7123

4 years agolib/hostip6.c: make NAT64 address synthesis on macOS work
Radek Zajic [Mon, 24 May 2021 14:38:40 +0000 (16:38 +0200)] 
lib/hostip6.c: make NAT64 address synthesis on macOS work

Closes #7121

4 years agosectransp: fix EXC_BAD_ACCESS caused by uninitialized buffer
ejanchivdorj [Tue, 25 May 2021 06:38:17 +0000 (23:38 -0700)] 
sectransp: fix EXC_BAD_ACCESS caused by uninitialized buffer

When the SecCertificateCopyCommonName function fails, it leaves
common_name in a invalid state so CFStringCompare uses the invalid
result, causing EXC_BAD_ACCESS.

The fix is to check the return value of the function before using the
name.

Closes #7126

4 years agoCMake: add CURL_ENABLE_EXPORT_TARGET option
PaweÅ‚ Wegner [Fri, 14 May 2021 10:36:12 +0000 (12:36 +0200)] 
CMake: add CURL_ENABLE_EXPORT_TARGET option

install(EXPORT ...) causes trouble when embedding curl dependencies
which don't provide install(EXPORT ...) targets (e.g libressl and
nghttp2) with cmake's add_subdirectory.

Reviewed-by: Jakub Zakrzewski
Closes #7060

4 years agoquiche: update for network path aware API
Alessandro Ghedini [Mon, 24 May 2021 12:20:36 +0000 (13:20 +0100)] 
quiche: update for network path aware API

Latest version of quiche requires the application to pass the peer
address of received packets, and it provides the address for outgoing
packets back.

Closes #7120

4 years agorustls: switch read_tls and write_tls to callbacks
Jacob Hoffman-Andrews [Sat, 15 May 2021 01:45:49 +0000 (18:45 -0700)] 
rustls: switch read_tls and write_tls to callbacks

And update to 0.6.0, including a rename from session to connection for
many fields.

Closes #7071

4 years agosectransp: fix 7f4a9a9b2a49 commit about missing comma
Koichi Shiraishi [Mon, 24 May 2021 11:26:44 +0000 (20:26 +0900)] 
sectransp: fix 7f4a9a9b2a49 commit about missing comma

Follow-up to 7f4a9a9b2a495

Closes #7119

4 years agoopenssl: associate/detach the transfer from connection
Harry Sintonen [Wed, 5 May 2021 11:42:26 +0000 (13:42 +0200)] 
openssl: associate/detach the transfer from connection

CVE-2021-22901

Bug: https://curl.se/docs/CVE-2021-22901.html

4 years agotelnet: check sscanf() for correct number of matches
Harry Sintonen [Fri, 7 May 2021 11:09:57 +0000 (13:09 +0200)] 
telnet: check sscanf() for correct number of matches

CVE-2021-22898

Bug: https://curl.se/docs/CVE-2021-22898.html

4 years agoschannel: don't use static to store selected ciphers
Daniel Stenberg [Fri, 23 Apr 2021 08:54:10 +0000 (10:54 +0200)] 
schannel: don't use static to store selected ciphers

CVE-2021-22897

Bug: https://curl.se/docs/CVE-2021-22897.html

4 years agodocs/tests: remove freenode references
Daniel Stenberg [Sun, 23 May 2021 22:21:00 +0000 (00:21 +0200)] 
docs/tests: remove freenode references

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sat, 22 May 2021 22:15:53 +0000 (00:15 +0200)] 
RELEASE-NOTES: synced

4 years agoNSS: make colons, commas and spaces valid separators in cipher list
Sergey Markelov [Fri, 21 May 2021 23:44:15 +0000 (16:44 -0700)] 
NSS: make colons, commas and spaces valid separators in cipher list

Fixes #7110
Closes #7115

4 years agocurl: include libmetalink version in --version output
Daniel Stenberg [Fri, 21 May 2021 13:39:30 +0000 (15:39 +0200)] 
curl: include libmetalink version in --version output

Closes #7112

4 years agocmake: Use multithreaded compilation on VS 2008+
Matias N. Goldberg [Thu, 20 May 2021 18:11:57 +0000 (15:11 -0300)] 
cmake: Use multithreaded compilation on VS 2008+

Multithreaded compilation has been supported since at least VS 2005 and
been robustly stable since at least VS 2008

Closes https://github.com/curl/curl/pull/7109

4 years agocmake: fix two invokes result in different curl_config.h
Matias N. Goldberg [Thu, 20 May 2021 00:23:01 +0000 (21:23 -0300)] 
cmake: fix two invokes result in different curl_config.h

Fixes #7100
Closes #7101

Reviewed-by: Jakub Zakrzewski
Signed-off-by: Matias N. Goldberg <dark_sylinc@yahoo.com.ar>
4 years agocmake: detect CURL_SA_FAMILY_T
Peng-Yu Chen [Thu, 20 May 2021 10:11:42 +0000 (11:11 +0100)] 
cmake: detect CURL_SA_FAMILY_T

Fixes #7049
Closes #7065

4 years agoCURLOPT_IPRESOLVE: preventing wrong IP version from being used
Lucas Clemente Vella [Sat, 24 Apr 2021 19:04:53 +0000 (20:04 +0100)] 
CURLOPT_IPRESOLVE: preventing wrong IP version from being used

In some situations, it was possible that a transfer was setup to
use an specific IP version, but due do DNS caching or connection
reuse, it ended up using a different IP version from requested.

This commit changes the effect of CURLOPT_IPRESOLVE from simply
restricting address resolution to preventing the wrong connection
type being used, when choosing a connection from the pool, and
to restricting what addresses could be used when establishing
a new connection.

It is important that all addresses versions are resolved, even if
not used in that transfer in particular, because the result is
cached, and could be useful for a different transfer with a
different CURLOPT_IPRESOLVE setting.

Closes #6853

4 years agoAmigaOS: add functions definitions for SHA256
Oliver Urbann [Thu, 20 May 2021 08:34:43 +0000 (10:34 +0200)] 
AmigaOS: add functions definitions for SHA256

AmiSSL replaces many functions with macros. Curl requires pointer
to some of these functions. Thus, we have to encapsulate these macros:
SHA256_Init, SHA256_Update, SHA256_Final, X509_INFO_free.

Bug: https://github.com/jens-maus/amissl/issues/15
Co-authored-by: Daniel Stenberg <daniel@haxx.se>
Closes #7099

4 years agotest2100: make it run with and require IPv6
Daniel Stenberg [Mon, 17 May 2021 12:29:19 +0000 (14:29 +0200)] 
test2100: make it run with and require IPv6

Closes #7083

4 years agotests/getpart: generate output URL encoded for better diffs
Daniel Stenberg [Wed, 19 May 2021 07:37:01 +0000 (09:37 +0200)] 
tests/getpart: generate output URL encoded for better diffs

Closes #7083

4 years agodocs/TheArtOfHttpScripting: fix markdown links
Ryan Beck-Buysse [Wed, 19 May 2021 00:56:31 +0000 (19:56 -0500)] 
docs/TheArtOfHttpScripting: fix markdown links

extra parens cause the links to be incorrectly formatted
and inconsistent with the rest of the document.

Signed-off-by: Ryan Beck-Buysse <rbuysse@gmail.com>
Closes #7097

4 years agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 18 May 2021 22:50:14 +0000 (00:50 +0200)] 
RELEASE-NOTES: synced

4 years agodocs: replace dots with dashes in markdown enums
Emil Engler [Tue, 18 May 2021 16:55:55 +0000 (18:55 +0200)] 
docs: replace dots with dashes in markdown enums

We use dashes instead of dots nearly everywhere except for those few
cases. This commit addresses this issues and brings more coherency into
it.

Closes #7093

4 years agodocs: improve INTERNALS.md regarding getsock cb
Emil Engler [Tue, 18 May 2021 16:35:23 +0000 (18:35 +0200)] 
docs: improve INTERNALS.md regarding getsock cb

This adds the I/O prefix to indicate that those "actions" are kind-of
related to those found in select(2) or poll(2) (reading/writing).

It also adds a note where the prototypes of those functions can be found
in the source code.

Closes #7092

4 years agodocs: document attach in INTERNALS.md
Emil Engler [Tue, 18 May 2021 16:05:54 +0000 (18:05 +0200)] 
docs: document attach in INTERNALS.md

The new field in the Curl_handler struct still lacks documentation. This
adds it it from the information extracted from lib/urldata.h:797

Closes #7091

4 years agoconfig: remove now-unused macros
Marc Aldorasi [Tue, 18 May 2021 17:35:00 +0000 (13:35 -0400)] 
config: remove now-unused macros

Closes #7094

4 years agohostip.h: remove declaration of unimplemented function
Marc Aldorasi [Tue, 18 May 2021 17:19:08 +0000 (13:19 -0400)] 
hostip.h: remove declaration of unimplemented function

Closes #7094