]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
5 years agoCURLOPT_NOBODY.3: clarify what setting to 0 means
Daniel Stenberg [Mon, 27 Jul 2020 09:54:29 +0000 (11:54 +0200)] 
CURLOPT_NOBODY.3: clarify what setting to 0 means

... and mention that HTTP with other methods than HEAD might get a body and
there's no option available to stop that.

Closes #5729

5 years agosetopt: unset NOBODY switches to GET if still HEAD
Daniel Stenberg [Mon, 27 Jul 2020 09:44:01 +0000 (11:44 +0200)] 
setopt: unset NOBODY switches to GET if still HEAD

Unsetting CURLOPT_NOBODY with 0L when doing HTTP has no documented
action but before 7.71.0 that used to switch back to GET and with this
change (assuming the method is still set to HEAD) this behavior is
brought back.

Reported-by: causal-agent on github
Fixes #5725
Closes #5728

5 years agoconfigure: cleanup wolfssl + pkg-config conflicts when cross compiling.
Ehren Bendler [Wed, 15 Jul 2020 02:38:38 +0000 (22:38 -0400)] 
configure: cleanup wolfssl + pkg-config conflicts when cross compiling.

Also choose a different wolfSSL function to test for NTLM support.

Fixes #5605
Closes #5682

5 years agoconfigure: show zstd "no" in summary when built without it
Daniel Stenberg [Mon, 27 Jul 2020 10:07:40 +0000 (12:07 +0200)] 
configure: show zstd "no" in summary when built without it

Reported-by: Marc Hörsken
Fixes #5720
Closes #5730

5 years agoquiche: handle calling disconnect twice
Daniel Stenberg [Mon, 27 Jul 2020 09:17:31 +0000 (11:17 +0200)] 
quiche: handle calling disconnect twice

Reported-by: lilongyan-huawei on github
Fixes #5726
Closes #5727

5 years agogetinfo: reset retry-after value in initinfo
Nicolas Sterchele [Fri, 10 Jul 2020 18:05:21 +0000 (20:05 +0200)] 
getinfo: reset retry-after value in initinfo

- Avoid re-using retry_after value from preceding request
- Add libtest 3010 to verify

Reported-by: joey-l-us on github
Fixes #5661
Closes #5672

5 years agoWIN32: stop forcing narrow-character API
Marcel Raad [Thu, 23 Jul 2020 19:28:14 +0000 (21:28 +0200)] 
WIN32: stop forcing narrow-character API

Except where the results are only used for character output.
getenv is not touched because it's part of the public API, and having
it return UTF-8 instead of ANSI would be a breaking change.

Fixes https://github.com/curl/curl/issues/5658
Fixes https://github.com/curl/curl/issues/5712
Closes https://github.com/curl/curl/pull/5718

5 years agomprintf: Fix stack overflows
Tobias Stoeckmann [Sat, 25 Jul 2020 15:30:12 +0000 (17:30 +0200)] 
mprintf: Fix stack overflows

Stack overflows can occur with precisions for integers and floats.

Proof of concepts:
- curl_mprintf("%d, %.*1$d", 500, 1);
- curl_mprintf("%d, %+0500.*1$f", 500, 1);

Ideally, compile with -fsanitize=address which makes this undefined
behavior a bit more defined for debug purposes.

The format strings are valid. The overflows occur due to invalid
arguments. If these arguments are variables with contents controlled
by an attacker, the function's stack can be corrupted.

Also see CVE-2016-9586 which partially fixed the float aspect.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Closes https://github.com/curl/curl/pull/5722

5 years agomprintf: Fix dollar string handling
Tobias Stoeckmann [Sat, 25 Jul 2020 15:29:38 +0000 (17:29 +0200)] 
mprintf: Fix dollar string handling

Verify that specified parameters are in range. If parameters are too
large, fail early on and avoid out of boundary accesses.

Also do not read behind boundaries of illegal format strings.

These are defensive measures since it is expected that format strings
are well-formed. Format strings should not be modifiable by user
input due to possible generic format string attacks.

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

5 years agontlm: free target_info before (re-)malloc
Daniel Stenberg [Sun, 26 Jul 2020 15:00:48 +0000 (17:00 +0200)] 
ntlm: free target_info before (re-)malloc

OSS-Fuzz found a way this could get called again with the pointer still
pointing to a malloc'ed memory, leading to a leak.

Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24379

Closes #5724

5 years agoCI/macos: set minimum macOS version
Marcel Raad [Wed, 15 Jul 2020 08:03:15 +0000 (10:03 +0200)] 
CI/macos: set minimum macOS version

This enables some deprecation warnings.
Previously, autotools defaulted to 10.8.

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

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sun, 26 Jul 2020 10:24:08 +0000 (12:24 +0200)] 
RELEASE-NOTES: synced

5 years agoCI/macos: enable warnings as errors for CMake builds
Marcel Raad [Sun, 19 Jul 2020 09:50:43 +0000 (11:50 +0200)] 
CI/macos: enable warnings as errors for CMake builds

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

5 years agoCMake: fix test for warning suppressions
Marcel Raad [Wed, 22 Jul 2020 20:51:11 +0000 (22:51 +0200)] 
CMake: fix test for warning suppressions

GCC doesn't warn for unknown `-Wno-` options, except if there are other
warnings or errors [0]. This was problematic with `CURL_WERROR` as that
warning-as-error cannot be suppressed. Notably, this always happened
with `-Wno-pedantic-ms-format` when not targeting Windows. So test for
the positive form of the warning instead, which should always result in
a diagnostic if unknown.

[0] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

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

5 years agocurl.h: update CURLINFO_LASTONE
Jay Satiro [Thu, 23 Jul 2020 06:44:53 +0000 (02:44 -0400)] 
curl.h: update CURLINFO_LASTONE

CURLINFO_LASTONE should have been updated when
CURLINFO_EFFECTIVE_METHOD was added.

Reported-by: xwxbug@users.noreply.github.com
Fixes https://github.com/curl/curl/issues/5711

5 years agoCI/azure: unconditionally enable warnings-as-errors with autotools
Marc Hoersken [Tue, 21 Jul 2020 17:04:42 +0000 (19:04 +0200)] 
CI/azure: unconditionally enable warnings-as-errors with autotools

Reviewed-by: Marcel Raad
Follow up to #5694
Closes #5706

5 years agodoh: remove redundant cast
Marcel Raad [Sun, 19 Jul 2020 13:02:16 +0000 (15:02 +0200)] 
doh: remove redundant cast

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

5 years agoCI/macos: unconditionally enable warnings-as-errors with autotools
Marcel Raad [Wed, 15 Jul 2020 08:48:44 +0000 (10:48 +0200)] 
CI/macos: unconditionally enable warnings-as-errors with autotools

Previously, warnings were only visible in the output for most jobs.

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

5 years agoutil: silence conversion warnings
Marcel Raad [Thu, 16 Jul 2020 16:52:03 +0000 (18:52 +0200)] 
util: silence conversion warnings

timeval::tv_usec might be a 32-bit integer and timespec::tv_nsec might
be a 64-bit integer. This is the case when building for recent macOS
versions, for example. Just treat tv_usec as an int, which should
hopefully always be sufficient on systems with
`HAVE_CLOCK_GETTIME_MONOTONIC`.

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

5 years agomd(4|5): don't use deprecated macOS functions
Marcel Raad [Thu, 16 Jul 2020 14:40:12 +0000 (16:40 +0200)] 
md(4|5): don't use deprecated macOS functions

They are marked as deprecated for -mmacosx-version-min >= 10.15,
which might result in warnings-as-errors.

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

5 years agostrdup: remove the odd strlen check
Daniel Stenberg [Fri, 17 Jul 2020 22:57:05 +0000 (00:57 +0200)] 
strdup: remove the odd strlen check

It confuses code analyzers with its use of -1 for unsigned value. Also,
a check that's not normally used in strdup() code - and not necessary.

Closes #5697

5 years agotravis: update quiche builds for new boringssl layout
Alessandro Ghedini [Thu, 16 Jul 2020 21:31:21 +0000 (22:31 +0100)] 
travis: update quiche builds for new boringssl layout

This is required after https://github.com/cloudflare/quiche/pull/593
moved BoringSSL around slightly.

This also means that Go is not needed to build BoringSSL anymore (the
one provided by quiche anyway).

Closes #5691

5 years agoconfigure: allow disabling warnings
Marcel Raad [Wed, 15 Jul 2020 19:28:00 +0000 (21:28 +0200)] 
configure: allow disabling warnings

When using `--enable-warnings`, it was not possible to disable warnings
via CFLAGS that got explicitly enabled. Now warnings are not enabled
anymore if they are explicitly disabled (or enabled) in CFLAGS. This
works for at least GCC, clang, and TCC as they have corresponding
`-Wno-` options for every warning.

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

5 years agongtcp2: adjust to recent sockaddr updates
Daniel Stenberg [Thu, 16 Jul 2020 19:00:25 +0000 (21:00 +0200)] 
ngtcp2: adjust to recent sockaddr updates

Closes #5690

5 years agopage-header: provide protocol details in the curl.1 man page
Daniel Stenberg [Wed, 15 Jul 2020 15:42:44 +0000 (17:42 +0200)] 
page-header: provide protocol details in the curl.1 man page

Add protocol and version specific information about all protocols curl
supports.

Fixes #5679
Reported-by: tbugfinder on github
Closes #5686

5 years agodocs: Update a few leftover mentions of DarwinSSL
Daniel Gustafsson [Thu, 16 Jul 2020 08:11:10 +0000 (10:11 +0200)] 
docs: Update a few leftover mentions of DarwinSSL

Commit 76a9c3c4be10b3d4d379d5b23ca76806bbae536a renamed DarwinSSL to the
more correct/common name Secure Transport, but a few mentions in the docs
remained.

Closes #5688
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
5 years agofile2memory: use a define instead of -1 unsigned value
Daniel Stenberg [Wed, 15 Jul 2020 12:04:32 +0000 (14:04 +0200)] 
file2memory: use a define instead of -1 unsigned value

... to use the maximum value for 'size_t' when detecting integer overflow.
Changed the limit to max/4 as already that seems unreasonably large.

Codacy didn't like the previous approach.

Closes #5683

5 years agoCURL_PUSH_ERROROUT: allow the push callback to fail the parent stream
Daniel Stenberg [Wed, 15 Jul 2020 22:24:29 +0000 (00:24 +0200)] 
CURL_PUSH_ERROROUT: allow the push callback to fail the parent stream

... by adding support for a new dedicated return code.

Suggested-by: Jonathan Cardoso
Assisted-by: Erik Johansson
URL: https://curl.haxx.se/mail/lib-2020-06/0099.html
Closes #5636

5 years agonss: fix build with disabled proxy support
Baruch Siach [Thu, 9 Jul 2020 05:14:49 +0000 (08:14 +0300)] 
nss: fix build with disabled proxy support

Avoid reference to fields that do not exist when CURL_DISABLE_PROXY is
defined.

Closes #5667

5 years agotest1139: make it display the difference on test failures 5644/head
Daniel Stenberg [Fri, 3 Jul 2020 15:02:33 +0000 (17:02 +0200)] 
test1139: make it display the difference on test failures

5 years agotest1119: verify stdout in the test
Daniel Stenberg [Fri, 3 Jul 2020 09:33:19 +0000 (11:33 +0200)] 
test1119: verify stdout in the test

So that failures will be displayed in the terminal, as it makes test failures
visually displayed easier and faster.

Closes #5644

5 years agocurl: add %{method} to the -w variables
Daniel Stenberg [Mon, 13 Jul 2020 07:58:29 +0000 (09:58 +0200)] 
curl: add %{method} to the -w variables

Gets the CURLINFO_EFFECTIVE_METHOD from libcurl.

Added test 1197 to verify.

5 years agoCURLINFO_EFFECTIVE_METHOD: added
Daniel Stenberg [Mon, 13 Jul 2020 07:58:28 +0000 (09:58 +0200)] 
CURLINFO_EFFECTIVE_METHOD: added

Provide the HTTP method that was used on the latest request, which might
be relevant for users when there was one or more redirects involved.

Closes #5511

5 years agowindows: add unicode to feature list
Viktor Szakats [Tue, 14 Jul 2020 08:30:17 +0000 (08:30 +0000)] 
windows: add unicode to feature list

Reviewed-by: Marcel Raad
Reviewed-by: Marc Hörsken
Closes #5491

5 years agomulti: remove two checks always true
Daniel Stenberg [Sun, 12 Jul 2020 16:26:35 +0000 (18:26 +0200)] 
multi: remove two checks always true

Detected by Codacy
Closes #5676

5 years agoworkflows: limit what branches to run CodeQL on
Marc Hoersken [Sun, 12 Jul 2020 20:07:38 +0000 (22:07 +0200)] 
workflows: limit what branches to run CodeQL on

Align CodeQL action with existing CI actions:
- Update branch filter to avoid duplicate CI runs.
- Shorten workflow name due to informative job name.

Reviewed-by: Daniel Stenberg
Closes #5660

5 years agoappveyor: collect libcurl.dll variants with prefix or suffix
Marc Hoersken [Sun, 12 Jul 2020 20:04:00 +0000 (22:04 +0200)] 
appveyor: collect libcurl.dll variants with prefix or suffix

On some platforms libcurl is build with a platform-specific
prefix and/or a version number suffix.

Assisted-by: Jay Satiro
Closes #5659

5 years agosocks: use size_t for size variable
ihsinme [Sun, 5 Jul 2020 12:19:25 +0000 (15:19 +0300)] 
socks: use size_t for size variable

Use the unsigned type (size_t) in the arithmetic of pointers. In this
context, the signed type (ssize_t) is used unnecessarily.

Authored-by: ihsinme on github
Closes #5654

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sun, 12 Jul 2020 16:16:23 +0000 (18:16 +0200)] 
RELEASE-NOTES: synced

... and bumped to 7.72.0 as the next release version number

5 years agocontent_encoding: add zstd decoding support
Gilles Vollant [Mon, 25 May 2020 15:49:46 +0000 (17:49 +0200)] 
content_encoding: add zstd decoding support

include zstd curl patch for Makefile.m32 from vszakats
and include Add CMake support for zstd from Peter Wu

Helped-by: Viktor Szakats
Helped-by: Peter Wu
Closes #5453

5 years agoasyn.h: remove the Curl_resolver_getsock define
Daniel Stenberg [Fri, 3 Jul 2020 16:21:18 +0000 (18:21 +0200)] 
asyn.h: remove the Curl_resolver_getsock define

 - not used
 - used the wrong number of arguments
 - confused the Codeacy code analyzer

Closes #5647

5 years agoconfigure.ac: Sort features name in summary
Nicolas Sterchele [Mon, 6 Jul 2020 12:15:48 +0000 (14:15 +0200)] 
configure.ac: Sort features name in summary

- Same as protocols

Closes #5656

5 years agocmake: fix windows xp build
Matthias Naegler [Wed, 8 Jul 2020 12:14:53 +0000 (14:14 +0200)] 
cmake: fix windows xp build

Reviewed-by: Marcel Raad
Closes #5662

5 years agongtcp2: update to modified qlog callback prototype
Daniel Stenberg [Sun, 12 Jul 2020 14:32:10 +0000 (16:32 +0200)] 
ngtcp2: update to modified qlog callback prototype

Closes #5675

5 years agotransfer: fix memory-leak with CURLOPT_CURLU in a duped handle
Daniel Stenberg [Sat, 11 Jul 2020 22:45:27 +0000 (00:45 +0200)] 
transfer: fix memory-leak with CURLOPT_CURLU in a duped handle

Added test case 674 to reproduce and verify the bug report.

Fixes #5665
Reported-by: NobodyXu on github
Closes #5673

5 years agobearssl: fix build with disabled proxy support
Baruch Siach [Thu, 9 Jul 2020 05:14:49 +0000 (08:14 +0300)] 
bearssl: fix build with disabled proxy support

Avoid reference to fields that do not exist when CURL_DISABLE_PROXY is
defined.

Reviewed-by: Nicolas Sterchele
Closes #5666

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sat, 11 Jul 2020 21:13:18 +0000 (23:13 +0200)] 
RELEASE-NOTES: synced

5 years agocirrus-ci: upgrade 11-STABLE to 11.4
Carlo Marcelo Arenas Belón [Thu, 9 Jul 2020 07:16:21 +0000 (00:16 -0700)] 
cirrus-ci: upgrade 11-STABLE to 11.4

Meant to be the last of the 11 series and so make sure that all
other references reflect all 11 versions so they can be retired
together later.

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

5 years agoCURLINFO_CERTINFO.3: fix typo
Filip Salomonsson [Sat, 4 Jul 2020 11:56:50 +0000 (13:56 +0200)] 
CURLINFO_CERTINFO.3: fix typo

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

5 years agohttp2: only do the *done() cleanups for HTTP
Daniel Stenberg [Fri, 3 Jul 2020 22:10:04 +0000 (00:10 +0200)] 
http2: only do the *done() cleanups for HTTP

Follow-up to ef86daf4d3

Closes #5650
Fixes #5646

5 years agognutls: repair the build with `CURL_DISABLE_PROXY`
Alex Kiernan [Fri, 26 Jun 2020 09:08:32 +0000 (09:08 +0000)] 
gnutls: repair the build with `CURL_DISABLE_PROXY`

`http_proxy`/`proxy_ssl`/`tunnel_proxy` will not be available in `conn`
if `CURL_DISABLE_PROXY` is enabled.  Repair the build with that
configuration.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Closes #5645

5 years agognutls: Fetch backend when using proxy
Alex Kiernan [Fri, 26 Jun 2020 08:59:24 +0000 (08:59 +0000)] 
gnutls: Fetch backend when using proxy

Fixes: 89865c149 ("gnutls: remove the BACKEND define kludge")
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
5 years agohttp2: close the http2 connection when no more requests may be sent
Laramie Leavitt [Thu, 2 Jul 2020 23:46:22 +0000 (16:46 -0700)] 
http2: close the http2 connection when no more requests may be sent

Well-behaving HTTP2 servers send two GOAWAY messages. The first
message is a warning that indicates that the server is going to
stop accepting streams. The second one actually closes the stream.

nghttp2 reports this state (and the other state of no more stream
identifiers) via the call nghttp2_session_check_request_allowed().
In this state the client should not create more streams on the
session (tcp connection), and in curl this means that the server
has requested that the connection is closed.

It would be also be possible to put the connclose() call into the
on_http2_frame_recv() function that triggers on the GOAWAY message.

This fixes a bug seen when the client sees the following sequence of
frames:

// advisory GOAWAY
HTTP2 GOAWAY [stream-id = 0, promised-stream-id = -1]
... some additional frames

// final GOAWAY
HTTP2 GOAWAY [stream-id = 0, promised-stream-id = N ]

Before this change, curl will attempt to reuse the connection even
after the last stream, will encounter this error:

* Found bundle for host localhost: 0x5595f0a694e0 [can multiplex]
* Re-using existing connection! (#0) with host localhost
* Connected to localhost (::1) port 10443 (#0)
* Using Stream ID: 9 (easy handle 0x5595f0a72e30)
> GET /index.html?5 HTTP/2
> Host: localhost:10443
> user-agent: curl/7.68.0
> accept: */*
>
* stopped the pause stream!
* Connection #0 to host localhost left intact
curl: (16) Error in the HTTP2 framing layer

This error may posion the connection cache, causing future requests
which resolve to the same curl connection to go through the same error
path.

Closes #5643

5 years agoftpserver: don't verify SMTP MAIL FROM names
Daniel Stenberg [Thu, 2 Jul 2020 14:42:55 +0000 (16:42 +0200)] 
ftpserver: don't verify SMTP MAIL FROM names

Rely on tests asking the names to get refused instead - test servers
should be as dumb as possible. Edited test 914, 955 and 959 accordingly.

Closes #5639

5 years agocurl_version_info.3: CURL_VERSION_KERBEROS4 is deprecated
Daniel Stenberg [Thu, 2 Jul 2020 21:46:40 +0000 (23:46 +0200)] 
curl_version_info.3: CURL_VERSION_KERBEROS4 is deprecated

This came up in #5640. It make sense to clarify this in the docs!

Reminded-by: Kamil Dudka
Closes #5642

5 years agotool_getparam: make --krb option work again
Kamil Dudka [Thu, 2 Jul 2020 15:41:37 +0000 (17:41 +0200)] 
tool_getparam: make --krb option work again

It was disabled by mistake in commit curl-7_37_1-23-ge38ba4301.

Bug: https://bugzilla.redhat.com/1833193
Closes #5640

5 years agohttp2: fix nghttp2_strerror -> nghttp2_http2_strerror in debug messages
Jeremy Maitin-Shepard [Thu, 2 Jul 2020 16:47:11 +0000 (09:47 -0700)] 
http2: fix nghttp2_strerror -> nghttp2_http2_strerror in debug messages

Confusingly, nghttp2 has two different error code enums:

- nghttp2_error, to be used with nghttp2_strerror
- nghttp2_error_code, to be used with nghttp2_http2_strerror

Closes #5641

5 years agourl: silence MSVC warning 5638/head
Marcel Raad [Thu, 2 Jul 2020 11:23:31 +0000 (13:23 +0200)] 
url: silence MSVC warning

Since commit f3d501dc678, if proxy support is disabled, MSVC warns:
url.c : warning C4701: potentially uninitialized local variable
'hostaddr' used
url.c : error C4703: potentially uninitialized local pointer variable
'hostaddr' used

That could actually only happen if both `conn->bits.proxy` and
`CURL_DISABLE_PROXY` were enabled.
Initialize it to NULL to silence the warning.

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

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 1 Jul 2020 08:37:20 +0000 (10:37 +0200)] 
RELEASE-NOTES: synced

5 years agoRELEASE-NOTES: curl 7.71.1 curl-7_71_1
Daniel Stenberg [Tue, 30 Jun 2020 10:31:11 +0000 (12:31 +0200)] 
RELEASE-NOTES: curl 7.71.1

5 years agoTHANKS: add contributors to 7.71.1
Daniel Stenberg [Tue, 30 Jun 2020 10:32:02 +0000 (12:32 +0200)] 
THANKS: add contributors to 7.71.1

5 years agoscripts/copyright.pl: skip .dcignore
Daniel Stenberg [Tue, 30 Jun 2020 13:29:52 +0000 (15:29 +0200)] 
scripts/copyright.pl: skip .dcignore

5 years agoRevert "multi: implement wait using winsock events"
Daniel Stenberg [Tue, 30 Jun 2020 08:56:57 +0000 (10:56 +0200)] 
Revert "multi: implement wait using winsock events"

This reverts commit 8bc25c590e530de87595d1bb3577f699eb1309b9.

That commit (from #5397) introduced a regression in 7.71.0.

Reported-by: tmkk on github
Fixes #5631
Closes #5632

5 years agoTODO: Add flag to specify download directory
Daniel Stenberg [Mon, 29 Jun 2020 21:53:27 +0000 (23:53 +0200)] 
TODO: Add flag to specify download directory

5 years agoTODO: return code to CURLMOPT_PUSHFUNCTION to fail connection
Daniel Stenberg [Mon, 29 Jun 2020 21:50:44 +0000 (23:50 +0200)] 
TODO: return code to CURLMOPT_PUSHFUNCTION to fail connection

5 years agocirrus-ci: disable FreeBSD 13 (again)
Daniel Stenberg [Mon, 29 Jun 2020 15:04:59 +0000 (17:04 +0200)] 
cirrus-ci: disable FreeBSD 13 (again)

It has been failing for a good while again. This time we better leave it
disabled until we have more reason to believe it behaves.

Closes #5628

5 years agongtcp2: sync with current master
Daniel Stenberg [Mon, 29 Jun 2020 14:22:05 +0000 (16:22 +0200)] 
ngtcp2: sync with current master

ngtcp2 added two new callbacks

Reported-by: Lucien Zürcher
Fixes #5624
Closes #5627

5 years agoexamples/multithread.c: call curl_global_cleanup()
Daniel Stenberg [Mon, 29 Jun 2020 06:59:34 +0000 (08:59 +0200)] 
examples/multithread.c: call curl_global_cleanup()

Reported-by: qiandu2006 on github
Fixes #5622
Closes #5623

5 years agovtls: compare cert blob when finding a connection to reuse
Daniel Stenberg [Fri, 26 Jun 2020 21:26:01 +0000 (23:26 +0200)] 
vtls: compare cert blob when finding a connection to reuse

Reported-by: Gergely Nagy
Fixes #5617
Closes #5619

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sat, 27 Jun 2020 22:35:52 +0000 (00:35 +0200)] 
RELEASE-NOTES: synced

5 years agoterminology: call them null-terminated strings
Daniel Stenberg [Thu, 25 Jun 2020 09:38:25 +0000 (11:38 +0200)] 
terminology: call them null-terminated strings

Updated terminology in docs, comments and phrases to refer to C strings
as "null-terminated". Done to unify with how most other C oriented docs
refer of them and what users in general seem to prefer (based on a
single highly unscientific poll on twitter).

Reported-by: coinhubs on github
Fixes #5598
Closes #5608

5 years agohttp: fix proxy auth with blank password
Daniel Stenberg [Fri, 26 Jun 2020 12:16:21 +0000 (14:16 +0200)] 
http: fix proxy auth with blank password

Regression in 7.71.0

Added test case 346 to verify.

Reported-by: Kristoffer Gleditsch
Fixes #5613
Closes #5616

5 years ago.dcignore: ignore tests and docs directories
Daniel Stenberg [Fri, 26 Jun 2020 22:07:37 +0000 (00:07 +0200)] 
.dcignore: ignore tests and docs directories

This is a config file for deepcode.ai, a static code analyzer.

5 years agotool_cb_hdr: Fix etag warning output and return code
Jay Satiro [Fri, 26 Jun 2020 06:26:41 +0000 (02:26 -0400)] 
tool_cb_hdr: Fix etag warning output and return code

- Return 'failure' on failure, to follow the existing style.

- Put Warning: and the warning message on the same line.

Ref: https://github.com/curl/curl/issues/5610

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

5 years agoCURLOPT_READFUNCTION.3: provide the upload data size up front
Daniel Stenberg [Thu, 25 Jun 2020 07:54:40 +0000 (09:54 +0200)] 
CURLOPT_READFUNCTION.3: provide the upload data size up front

Assisted-by: Jay Satiro
Closes #5607

5 years agotest1539: do a HTTP 1.0 POST without a set size (fails)
Daniel Stenberg [Tue, 23 Jun 2020 21:17:25 +0000 (23:17 +0200)] 
test1539: do a HTTP 1.0 POST without a set size (fails)

Attempt to reproduce #5593. Test case 1514 is very similar but uses
HTTP/1.1 and thus switches to chunked.

Closes #5595

5 years agombedtls: fix build with disabled proxy support
Baruch Siach [Fri, 26 Jun 2020 09:40:43 +0000 (12:40 +0300)] 
mbedtls: fix build with disabled proxy support

Don't reference fields that do not exist. Fixes build failure:

vtls/mbedtls.c: In function 'mbed_connect_step1':
vtls/mbedtls.c:249:54: error: 'struct connectdata' has no member named 'http_proxy'

Closes #5615

5 years agocodeql-analysis.yml: fix the 'languages' setting
Daniel Stenberg [Fri, 26 Jun 2020 06:49:23 +0000 (08:49 +0200)] 
codeql-analysis.yml: fix the 'languages' setting

It needs a 'with:' in front of it.

5 years agogtihub: codeql-analysis.yml
Daniel Stenberg [Thu, 25 Jun 2020 23:06:05 +0000 (01:06 +0200)] 
gtihub: codeql-analysis.yml

enables code security scanning with github actions

5 years agotests: verify newline in username and password for HTTP
Daniel Stenberg [Fri, 19 Jun 2020 22:04:08 +0000 (00:04 +0200)] 
tests: verify newline in username and password for HTTP

test 1296 is a simply command line test

test 1910 is a libcurl test including a redirect

5 years agourl: allow user + password to contain "control codes" for HTTP(S)
Daniel Stenberg [Tue, 23 Jun 2020 14:23:51 +0000 (16:23 +0200)] 
url: allow user + password to contain "control codes" for HTTP(S)

Reported-by: Jon Johnson Jr
Fixes #5582
Closes #5592

5 years agoescape: make the URL decode able to reject only %00 bytes
Daniel Stenberg [Tue, 23 Jun 2020 14:13:50 +0000 (16:13 +0200)] 
escape: make the URL decode able to reject only %00 bytes

... or all "control codes" or nothing.

Assisted-by: Nicolas Sterchele
5 years agohttp2: set the correct URL in pushed transfers
Daniel Stenberg [Tue, 23 Jun 2020 12:28:34 +0000 (14:28 +0200)] 
http2: set the correct URL in pushed transfers

...previously CURLINFO_EFFECTIVE_URL would report the URL of the
original "mother transfer", not the actually pushed resource.

Reported-by: Jonathan Cardoso Machado
Fixes #5589
Closes #5591

5 years agoopenssl: Fix compilation on Windows when ngtcp2 is enabled
Javier Blazquez [Wed, 24 Jun 2020 20:21:04 +0000 (13:21 -0700)] 
openssl: Fix compilation on Windows when ngtcp2 is enabled

- Include wincrypt before OpenSSL includes so that the latter can
  properly handle any conflicts between the two.

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

5 years agotest543: extended to verify zero length input
Daniel Stenberg [Wed, 24 Jun 2020 13:24:35 +0000 (15:24 +0200)] 
test543: extended to verify zero length input

As was reported in #5601

5 years agoescape: zero length input should return a zero length output
Daniel Stenberg [Wed, 24 Jun 2020 13:23:19 +0000 (15:23 +0200)] 
escape: zero length input should return a zero length output

Regression added in 7.71.0.

Fixes #5601
Reported-by: Kristoffer Gleditsch
Closes #5602

5 years agoCurl_inet_ntop: always check the return code
Daniel Stenberg [Tue, 23 Jun 2020 23:13:04 +0000 (01:13 +0200)] 
Curl_inet_ntop: always check the return code

Reported-by: Siva Sivaraman
Fixes #5412
Closes #5597

5 years agosendf: improve the message on client write errors
Daniel Stenberg [Tue, 23 Jun 2020 22:22:00 +0000 (00:22 +0200)] 
sendf: improve the message on client write errors

Replace "Failed writing body (X != Y)" with
"Failure writing output to destination". Possibly slightly less cryptic.

Reported-by: coinhubs on github
Fixes #5594
Closes #5596

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Wed, 24 Jun 2020 09:44:22 +0000 (11:44 +0200)] 
RELEASE-NOTES: synced

5 years agocurlver: start working on 7.71.1
Daniel Stenberg [Wed, 24 Jun 2020 09:44:10 +0000 (11:44 +0200)] 
curlver: start working on 7.71.1

5 years agoDYNBUF.md: fix a typo: trail => tail
Denis Baručić [Wed, 24 Jun 2020 07:55:20 +0000 (09:55 +0200)] 
DYNBUF.md: fix a typo: trail => tail

Closes #5599

5 years agoRELEASE-NOTES: curl 7.71.0 release curl-7_71_0
Daniel Stenberg [Mon, 22 Jun 2020 09:50:21 +0000 (11:50 +0200)] 
RELEASE-NOTES: curl 7.71.0 release

5 years agoTHANKS: curl 7.71.0 additions
Daniel Stenberg [Mon, 22 Jun 2020 09:53:33 +0000 (11:53 +0200)] 
THANKS: curl 7.71.0 additions

5 years agourl: make sure pushed streams get an allocated download buffer
Daniel Stenberg [Tue, 23 Jun 2020 12:02:54 +0000 (14:02 +0200)] 
url: make sure pushed streams get an allocated download buffer

Follow-up to c4e6968127e876b0

When a new transfer is created, as a resuly of an acknowledged push,
that transfer needs a download buffer allocated.

Closes #5590

5 years agoopenssl: Don't ignore CA paths when using Windows CA store 5585/head
Jay Satiro [Mon, 22 Jun 2020 16:01:32 +0000 (12:01 -0400)] 
openssl: Don't ignore CA paths when using Windows CA store

This commit changes the behavior of CURLSSLOPT_NATIVE_CA so that it does
not override CURLOPT_CAINFO / CURLOPT_CAPATH, or the hardcoded default
locations. Instead the CA store can now be used at the same time.

The change is due to the impending release. The issue is still being
discussed. The behavior of CURLSSLOPT_NATIVE_CA is subject to change and
is now documented as experimental.

Ref: bc052cc (parent commit)
Ref: https://github.com/curl/curl/issues/5585

5 years agotool_operate: Don't use Windows CA store as a fallback
Jay Satiro [Sat, 20 Jun 2020 06:39:37 +0000 (02:39 -0400)] 
tool_operate: Don't use Windows CA store as a fallback

Background:

148534d added CURLSSLOPT_NATIVE_CA to use the Windows OS certificate
store in libcurl w/ OpenSSL on Windows. CURLSSLOPT_NATIVE_CA overrides
CURLOPT_CAINFO if both are set. The curl tool will fall back to
CURLSSLOPT_NATIVE_CA if it could not find a certificate bundle to set
via CURLOPT_CAINFO.

Problem:

libcurl may be built with hardcoded paths to a certificate bundle or
directory, and if CURLSSLOPT_NATIVE_CA is used then those paths are
ignored.

Solution:

A solution is still being discussed but since there's an impending
release this commit removes using CURLSSLOPT_NATIVE_CA in the curl tool.

Ref: https://github.com/curl/curl/issues/5585

5 years agoopenssl: Fix CA fallback logic for OpenSSL 3.0 build
Jay Satiro [Mon, 22 Jun 2020 16:13:55 +0000 (12:13 -0400)] 
openssl: Fix CA fallback logic for OpenSSL 3.0 build

Prior to this change I assume a build error would occur when
CURL_CA_FALLBACK was used.

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

5 years agocopyright: update mismatched copyright years
Daniel Stenberg [Mon, 22 Jun 2020 09:55:03 +0000 (11:55 +0200)] 
copyright: update mismatched copyright years

5 years agotest1460: verify that -Ji is not ok
Daniel Stenberg [Sun, 31 May 2020 21:10:22 +0000 (23:10 +0200)] 
test1460: verify that -Ji is not ok

5 years agotool_getparam: -i is not OK if -J is used
Daniel Stenberg [Sun, 31 May 2020 21:09:59 +0000 (23:09 +0200)] 
tool_getparam: -i is not OK if -J is used

Reported-by: sn on hackerone
Bug: https://curl.haxx.se/docs/CVE-2020-8177.html