7448 lines
193 KiB
Plaintext
Vendored
7448 lines
193 KiB
Plaintext
Vendored
_ _ ____ _
|
||
___| | | | _ \| |
|
||
/ __| | | | |_) | |
|
||
| (__| |_| | _ <| |___
|
||
\___|\___/|_| \_\_____|
|
||
|
||
Changelog
|
||
|
||
Version 7.75.0 (3 Feb 2021)
|
||
|
||
Daniel Stenberg (3 Feb 2021)
|
||
- RELEASE-NOTES: synced
|
||
|
||
- THANKS: added contributors from 7.75.0
|
||
|
||
- copyright: fix year ranges in need of updates
|
||
|
||
- TODO: remove items for next SONAME bump etc
|
||
|
||
We want to avoid that completely, so we don't plan for things after such
|
||
an event.
|
||
|
||
- [Jay Satiro brought this change]
|
||
|
||
ngtcp2: Fix build error due to change in ngtcp2_settings
|
||
|
||
- Separate ngtcp2_transport_params.
|
||
|
||
ngtcp2/ngtcp2@05d7adc made ngtcp2_transport_params separate from
|
||
ngtcp2_settings.
|
||
|
||
ngtcp2 master is required to build curl with http3 support.
|
||
|
||
Closes #6554
|
||
|
||
- vtls: remove md5sum
|
||
|
||
As it is not used anymore.
|
||
|
||
Reported-by: Jacob Hoffman-Andrews
|
||
Bug: https://curl.se/mail/lib-2021-02/0000.html
|
||
|
||
Closes #6557
|
||
|
||
- [Alessandro Ghedini brought this change]
|
||
|
||
quiche: don't use primary_ip / primary_port
|
||
|
||
Closes #6555
|
||
|
||
Alessandro Ghedini (1 Feb 2021)
|
||
- travis: enable quiche's FFI feature
|
||
|
||
Daniel Stenberg (30 Jan 2021)
|
||
- [Dmitry Wagin brought this change]
|
||
|
||
http: improve AWS HTTP v4 Signature auth
|
||
|
||
- Add support services without region and service prefixes in
|
||
the URL endpoint (ex. Min.IO, GCP, Yandex Cloud, Mail.Ru Cloud Solutions, etc)
|
||
by providing region and service parameters via aws-sigv4 option.
|
||
- Add [:region[:service]] suffix to aws-sigv4 option;
|
||
- Fix memory allocation errors.
|
||
- Refactor memory management.
|
||
- Use Curl_http_method instead() STRING_CUSTOMREQUEST.
|
||
- Refactor canonical headers generating.
|
||
- Remove repeated sha256_to_hex() usage.
|
||
- Add some docs fixes.
|
||
- Add some codestyle fixes.
|
||
- Add overloaded strndup() for debug - curl_dbg_strndup().
|
||
- Update tests.
|
||
|
||
Closes #6524
|
||
|
||
- hyper: fix CONNECT to set 'data' as userdata
|
||
|
||
Follow-up to 14e075d1a7fd
|
||
|
||
- [Layla brought this change]
|
||
|
||
connect: fix compile errors in `Curl_conninfo_local`
|
||
|
||
.. for the `#else` (`!HAVE_GETSOCKNAME`) case
|
||
|
||
Fixes https://github.com/curl/curl/issues/6548
|
||
Closes #6549
|
||
|
||
Signed-off-by: Layla <[email protected]>
|
||
|
||
- [Michał Antoniak brought this change]
|
||
|
||
transfer: fix GCC 10 warning with flag '-Wint-in-bool-context'
|
||
|
||
... and return the error code from the Curl_mime_rewind call.
|
||
|
||
Closes #6537
|
||
|
||
- [Michał Antoniak brought this change]
|
||
|
||
avoid warning: enum constant in boolean context
|
||
|
||
- copyright: fix missing year (range) updates
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- openssl: lowercase the hostname before using it for SNI
|
||
|
||
... because it turns out several servers out there don't actually behave
|
||
correctly otherwise in spite of the fact that the SNI field is
|
||
specifically said to be case insensitive in RFC 6066 section 3.
|
||
|
||
Reported-by: David Earl
|
||
Fixes #6540
|
||
Closes #6543
|
||
|
||
- KNOWN_BUGS: cmake: ExternalProject_Add does not set CURL_CA_PATH
|
||
|
||
Closes #6313
|
||
|
||
- KNOWN_BUGS: Multi perform hangs waiting for threaded resolver
|
||
|
||
Closes #4852
|
||
|
||
- KNOWN_BUGS: "pulseUI VPN client" is known to be buggy
|
||
|
||
First entry in the new section "applications" for known problems in
|
||
libcurl using applications.
|
||
|
||
Closes #6306
|
||
|
||
- tool_writeout: make %{errormsg} blank for no errors
|
||
|
||
Closes #6539
|
||
|
||
Jay Satiro (27 Jan 2021)
|
||
- [Gisle Vanem brought this change]
|
||
|
||
build: fix djgpp builds
|
||
|
||
- Update build instructions in packages/DOS/README
|
||
|
||
- Extend 'VPATH' with 'vquic' and 'vssh'.
|
||
|
||
- Allow 'Makefile.dist' to build both 'lib' and 'src'.
|
||
|
||
- Allow using the Windows hosted djgpp cross compiler to build for MSDOS
|
||
under Windows.
|
||
|
||
- 'USE_SSL' -> 'USE_OPENSSL'
|
||
|
||
- Added a 'link_EXE' macro. Etc, etc.
|
||
|
||
- Linking 'curl.exe' needs '$(CURLX_CFILES)' too.
|
||
|
||
- Do not pick-up '../lib/djgpp/*.o' files. Recompile locally.
|
||
|
||
- Generate a gzipped 'tool_hugehelp.c' if 'USE_ZLIB=1'.
|
||
|
||
- Remove 'djgpp-clean'
|
||
|
||
- Adapt to new C-ares directory structure
|
||
|
||
- Use conditional variable assignments
|
||
|
||
Clarify the 'conditional variable assignment' in 'common.dj'.
|
||
|
||
Closes https://github.com/curl/curl/pull/6382
|
||
|
||
Daniel Stenberg (27 Jan 2021)
|
||
- [Ikko Ashimine brought this change]
|
||
|
||
hyper: fix typo in c-hyper.c
|
||
|
||
settting -> setting
|
||
|
||
Closes #6538
|
||
|
||
- libssh2: fix CURL_LIBSSH2_DEBUG-enabled build
|
||
|
||
Follow-up to 2dcc940959772a
|
||
|
||
Reported-by: Gisle Vanem
|
||
Bug: https://github.com/curl/curl/commit/2dcc940959772a652f6813fb6bd3092095a4877b#commitcomment-46420088
|
||
|
||
Jay Satiro (27 Jan 2021)
|
||
- asyn-thread: fix build for when getaddrinfo missing
|
||
|
||
This is a follow-up to 8315343 which several days ago moved the resolver
|
||
pointer into the async struct but did not update the code that uses it
|
||
when getaddrinfo is not present.
|
||
|
||
Closes https://github.com/curl/curl/pull/6536
|
||
|
||
Daniel Stenberg (27 Jan 2021)
|
||
- urldata: move 'ints' to the end of 'connectdata'
|
||
|
||
To optimize storage slightly.
|
||
|
||
Closes #6534
|
||
|
||
- urldata: store ip version in a single byte
|
||
|
||
Closes #6534
|
||
|
||
- urldata: remove duplicate 'upkeep_interval_ms' from connectdata
|
||
|
||
... and rely only on the value already set in Curl_easy.
|
||
|
||
Closes #6534
|
||
|
||
- urldata: remove 'local_ip' from the connectdata struct
|
||
|
||
As the info is already stored in the transfer handle anyway, there's no
|
||
need to carry around a duplicate buffer for the life-time of the handle.
|
||
|
||
Closes #6534
|
||
|
||
- urldata: remove duplicate port number storage
|
||
|
||
... and use 'int' for ports. We don't use 'unsigned short' since -1 is
|
||
still often used internally to signify "unknown value" and 0 - 65535 are
|
||
all valid port numbers.
|
||
|
||
Closes #6534
|
||
|
||
- urldata: remove the duplicate 'ip_addr_str' field
|
||
|
||
... as the numerical IP address is already stored and kept in 'primary_ip'.
|
||
|
||
Closes #6534
|
||
|
||
- select: convert Curl_select() to private static function
|
||
|
||
The old function should not be used anywhere anymore (the only remaining
|
||
gskit use has to be fixed to instead use Curl_poll or none at all).
|
||
|
||
The static function version is now called our_select() and is only built
|
||
if necessary.
|
||
|
||
Closes #6531
|
||
|
||
- Curl_chunker: shrink the struct
|
||
|
||
... by removing a field, converting the hex index into a byte and
|
||
rearranging the order. Cuts it down from 48 bytes to 32 on x86_64.
|
||
|
||
Closes #6527
|
||
|
||
- curl: include the file name in --xattr/--remote-time error msgs
|
||
|
||
- curl: s/config->global/global/ in single_transfer()
|
||
|
||
- curl: move fprintf outputs to warnf
|
||
|
||
For setting and getting time of the download. To make the outputs
|
||
respect --silent etc.
|
||
|
||
Reported-by: Viktor Szakats
|
||
Fixes #6533
|
||
Closes #6535
|
||
|
||
- [Tatsuhiro Tsujikawa brought this change]
|
||
|
||
ngtcp2: Fix http3 upload stall
|
||
|
||
Closes #6521
|
||
|
||
- [Tatsuhiro Tsujikawa brought this change]
|
||
|
||
ngtcp2: Fix stack buffer overflow
|
||
|
||
Closes #6521
|
||
|
||
- warnless.h: remove the prototype for curlx_ultosi
|
||
|
||
Follow-up to 217552503ff3
|
||
|
||
- warnless: remove curlx_ultosi
|
||
|
||
... not used anywhere
|
||
|
||
Closes #6530
|
||
|
||
- [Patrick Monnerat brought this change]
|
||
|
||
lib: remove conn->data uses
|
||
|
||
Closes #6515
|
||
|
||
- pingpong: remove the 'conn' struct member
|
||
|
||
... as it's superfluous now when Curl_easy is passed in and we can
|
||
derive the connection from that instead and avoid the duplicate copy.
|
||
|
||
Closes #6525
|
||
|
||
- hostip/proxy: remove conn->data use
|
||
|
||
Closes #6513
|
||
|
||
- url: reduce conn->data references
|
||
|
||
... there are a few left but let's keep them to last
|
||
|
||
Closes #6512
|
||
|
||
- scripts/singleuse: add curl_easy_option*
|
||
|
||
Jay Satiro (25 Jan 2021)
|
||
- test410: fix for windows
|
||
|
||
- Pass the very long request header via file instead of command line.
|
||
|
||
Prior to this change the 49k very long request header string was passed
|
||
via command line and on Windows that is too long so it was truncated and
|
||
the test would fail (specifically msys CI).
|
||
|
||
Closes https://github.com/curl/curl/pull/6516
|
||
|
||
Daniel Stenberg (25 Jan 2021)
|
||
- libssh2: move data from connection object to transfer object
|
||
|
||
Readdir data, filenames and attributes are strictly related to the
|
||
transfer and not the connection. This also reduces the total size of the
|
||
fixed connectdata struct.
|
||
|
||
Closes #6519
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Patrick Monnerat brought this change]
|
||
|
||
lib: remove conn->data uses
|
||
|
||
Closes #6499
|
||
|
||
- hyper: remove the conn->data references
|
||
|
||
Closes #6508
|
||
|
||
- travis: build ngtcp2 --with-gnutls
|
||
|
||
... since they disable it by default since a few days back.
|
||
|
||
Closes #6506
|
||
Fixes #6493
|
||
|
||
- hostip: remove conn->data from resolver functions
|
||
|
||
This also moves the 'async' struct from the connectdata struct into the
|
||
Curl_easy struct, which seems like a better home for it.
|
||
|
||
Closes #6497
|
||
|
||
Jay Satiro (22 Jan 2021)
|
||
- strerror: skip errnum >= 0 assertion on windows
|
||
|
||
On Windows an error number may be greater than INT_MAX and negative once
|
||
cast to int.
|
||
|
||
The assertion is checked only in debug builds.
|
||
|
||
Closes https://github.com/curl/curl/pull/6504
|
||
|
||
Daniel Stenberg (21 Jan 2021)
|
||
- doh: make Curl_doh_is_resolved survive a NULL pointer
|
||
|
||
... if Curl_doh() returned a NULL, this function gets called anyway as
|
||
in a asynch procedure. Then the doh struct pointer is NULL and signifies
|
||
an OOM situation.
|
||
|
||
Follow-up to 6246a1d8c6776
|
||
|
||
- wolfssh: remove conn->data references
|
||
|
||
... and repair recent build breakage
|
||
|
||
Closes #6507
|
||
|
||
- http: empty reply connection are not left intact
|
||
|
||
... so mark the connection as closed in this condition to prevent that
|
||
verbose message to wrongly appear.
|
||
|
||
Reported-by: Matt Holt
|
||
Bug: https://twitter.com/mholt6/status/1352130240265375744
|
||
Closes #6503
|
||
|
||
- chunk/encoding: remove conn->data references
|
||
|
||
... by anchoring more functions on Curl_easy instead of connectdata
|
||
|
||
Closes #6498
|
||
|
||
Jay Satiro (20 Jan 2021)
|
||
- [Erik Olsson brought this change]
|
||
|
||
lib: save a bit of space with some structure packing
|
||
|
||
- Reorder some internal struct members so that less padding is used.
|
||
|
||
This is an attempt at saving a bit of space by packing some structs
|
||
(using pahole to find the holes) where it might make sense to do
|
||
so without losing readability.
|
||
|
||
I.e., I tried to avoid separating fields that seem grouped
|
||
together (like the cwd... fields in struct ftp_conn for instance).
|
||
Also abstained from touching fields behind conditional macros as
|
||
that quickly can get complicated.
|
||
|
||
Closes https://github.com/curl/curl/pull/6483
|
||
|
||
Daniel Stenberg (20 Jan 2021)
|
||
- INSTALL.md: fix typo
|
||
|
||
Found-by: Marcel Raad
|
||
|
||
- [Fabian Keil brought this change]
|
||
|
||
http: get CURLOPT_REQUEST_TARGET working with a HTTP proxy
|
||
|
||
Added test 1613 to verify.
|
||
|
||
Closes #6490
|
||
|
||
- Merge branch 'bagder/curl_range-data-conn'
|
||
|
||
- ftp: remove conn->data leftover
|
||
|
||
- curl_range: remove conn->data
|
||
|
||
Closes #6496
|
||
|
||
- INSTALL: now at 85 operating systems
|
||
|
||
- quiche: fix unused parameter ‘conn’
|
||
|
||
Follow-up to 2bdec0b3
|
||
|
||
- transfer: fix ‘conn’ undeclared mistake for iconv build
|
||
|
||
Follow-up to 219d9f8620d
|
||
|
||
- doh: allocate state struct on demand
|
||
|
||
... instead of having it static within the Curl_easy struct. This takes
|
||
away 1176 bytes (18%) from the Curl_easy struct that aren't used very
|
||
often and instead makes the code allocate it when needed.
|
||
|
||
Closes #6492
|
||
|
||
- socks: use the download buffer instead
|
||
|
||
The SOCKS code now uses the generic download buffer for temporary
|
||
storage during the connection procedure, instead of having its own
|
||
private 600 byte buffer that adds to the connectdata struct size. This
|
||
works fine because this point the buffer is allocated but is not use for
|
||
download yet since the connection hasn't completed.
|
||
|
||
This reduces the connection struct size by 22% on a 64bit arch!
|
||
|
||
The SOCKS buffer needs to be at least 600 bytes, and the download buffer
|
||
is guaranteed to never be smaller than 1000 bytes.
|
||
|
||
Closes #6491
|
||
|
||
- urldata: make magic be the first struct field
|
||
|
||
By making the `magic` identifier the same size and at the same place
|
||
within the structs (easy, multi, share), libcurl will be able to more
|
||
reliably detect and safely error out if an application passes in the
|
||
wrong handle to APIs. Easier to detect and less likely to cause crashes
|
||
if done.
|
||
|
||
Such mixups can't be detected at compile-time due to them being
|
||
typedefed void pointers - unless `CURL_STRICTER` is defined.
|
||
|
||
Closes #6484
|
||
|
||
- http_chunks: correct and clarify a comment on hexnumber length
|
||
|
||
... and also rename the define for max length.
|
||
|
||
Closes #6489
|
||
|
||
- curl_path: remove conn->data use
|
||
|
||
Closes #6487
|
||
|
||
- transfer: remove conn->data use
|
||
|
||
Closes #6486
|
||
|
||
- quic: remove conn->data use
|
||
|
||
Closes #6485
|
||
|
||
- [Fabian Keil brought this change]
|
||
|
||
Add test1181: Proxy request with --proxy-header "Connection: Keep-Alive"
|
||
|
||
- [Fabian Keil brought this change]
|
||
|
||
Add test1180: Proxy request with -H "Proxy-Connection: Keep-Alive"
|
||
|
||
At the moment the test fails as curl sends two Proxy-Connection
|
||
headers.
|
||
|
||
- c-hyper: avoid duplicated Proxy-Connection headers
|
||
|
||
- http: make providing Proxy-Connection header not cause duplicated headers
|
||
|
||
Fixes test 1180
|
||
|
||
Bug: https://curl.se/mail/lib-2021-01/0095.html
|
||
Reported-by: Fabian Keil
|
||
Closes #6472
|
||
|
||
- runtests: preprocess DISABLED to allow conditionals
|
||
|
||
... with this function provided, we can disable tests for specific
|
||
environments and setups directly within this file.
|
||
|
||
Closes #6477
|
||
|
||
- runtests: turn preprocessing into a separate function
|
||
|
||
... and remove all other variable substitutions as they're now done once
|
||
and for all in the preprocessor.
|
||
|
||
- lib/Makefile.inc: convert to listing each file on its own line
|
||
|
||
... to make it diff friendlier and easier to read.
|
||
|
||
Closes #6448
|
||
|
||
- ftplistparser: remove use of conn->data
|
||
|
||
Closes #6482
|
||
|
||
- lib: more conn->data cleanups
|
||
|
||
Closes #6479
|
||
|
||
- [Patrick Monnerat brought this change]
|
||
|
||
vtls: reduce conn->data use
|
||
|
||
Closes #6474
|
||
|
||
- hyper: deliver data to application with Curl_client_write
|
||
|
||
... just as the native code path does. Avoids sending too large data
|
||
chunks in the callback and more.
|
||
|
||
Reported-by: Gisle Vanem
|
||
Fixes #6462
|
||
Closes #6473
|
||
|
||
- gopher: remove accidental conn->data leftover
|
||
|
||
- libssh: avoid plain free() of libssh-memory
|
||
|
||
Since curl's own memory debugging system redefines free() calls to track
|
||
and fiddle with memory, it cannot be used on memory allocated by 3rd
|
||
party libraries.
|
||
|
||
Third party libraries SHOULD NOT require free() to release allocated
|
||
resources for this reason - and libs can use separate healp allocators
|
||
on some systems (like Windows) so free() doesn't necessarily work
|
||
anyway.
|
||
|
||
Filed as an issue with libssh: https://bugs.libssh.org/T268
|
||
|
||
Closes #6481
|
||
|
||
- send: assert that Curl_write_plain() has a ->conn when called
|
||
|
||
To help catch bad invokes.
|
||
|
||
Closes #6476
|
||
|
||
- test410: verify HTTPS GET with a 49K request header
|
||
|
||
skip test 410 for mesalink in the CI as it otherwise hangs "forever"
|
||
|
||
- lib: pass in 'struct Curl_easy *' to most functions
|
||
|
||
... in most cases instead of 'struct connectdata *' but in some cases in
|
||
addition to.
|
||
|
||
- We mostly operate on transfers and not connections.
|
||
|
||
- We need the transfer handle to log, store data and more. Everything in
|
||
libcurl is driven by a transfer (the CURL * in the public API).
|
||
|
||
- This work clarifies and separates the transfers from the connections
|
||
better.
|
||
|
||
- We should avoid "conn->data". Since individual connections can be used
|
||
by many transfers when multiplexing, making sure that conn->data
|
||
points to the current and correct transfer at all times is difficult
|
||
and has been notoriously error-prone over the years. The goal is to
|
||
ultimately remove the conn->data pointer for this reason.
|
||
|
||
Closes #6425
|
||
|
||
Emil Engler (17 Jan 2021)
|
||
- docs: fix typos in NEW-PROTOCOL.md
|
||
|
||
This fixes a misspelled "it" and a grammatically wrong "-ing" suffix.
|
||
|
||
Closes #6471
|
||
|
||
Daniel Stenberg (16 Jan 2021)
|
||
- RELEASE-NOTES: synced
|
||
|
||
Jay Satiro (16 Jan 2021)
|
||
- [Razvan Cojocaru brought this change]
|
||
|
||
cmake: expose CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG
|
||
|
||
This does for cmake builds what --disable-openssl-auto-load-config
|
||
does for autoconf builds.
|
||
|
||
Closes https://github.com/curl/curl/pull/6435
|
||
|
||
Daniel Stenberg (15 Jan 2021)
|
||
- test1918: verify curl_easy_option_by_name() and curl_easy_option_by_id()
|
||
|
||
... and as a practical side-effect, make sure that the
|
||
Curl_easyopts_check() function is asserted in debug builds, which we
|
||
want to detect mismatches between the options list in easyoptions.c and
|
||
the options in curl.h
|
||
|
||
Found-by: Gisle Vanem
|
||
Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45991815
|
||
|
||
Closes #6461
|
||
|
||
- [Gisle Vanem brought this change]
|
||
|
||
easyoptions: add the missing AWS_SIGV4
|
||
|
||
Follow-up from AWS_SIGV4
|
||
|
||
- schannel_verify: fix safefree call typo
|
||
|
||
Follow-up from e87ad71d1ba00519
|
||
|
||
Closes #6459
|
||
|
||
- mime: make sure setting MIMEPOST to NULL resets properly
|
||
|
||
... so that a function can first use MIMEPOST and then set it to NULL to
|
||
reset it back to a blank POST.
|
||
|
||
Added test 584 to verify the fix.
|
||
|
||
Reported-by: Christoph M. Becker
|
||
|
||
Fixes #6455
|
||
Closes #6456
|
||
|
||
- multi: set the PRETRANSFER time-stamp when we switch to PERFORM
|
||
|
||
... instead of at end of the DO state. This makes the timer more
|
||
accurate for the protocols that use the DOING state (such as FTP), and
|
||
simplifies how the function (now called init_perform) is called.
|
||
|
||
The timer will then include the entire procedure up to PERFORM -
|
||
including all instructions for getting the transfer started.
|
||
|
||
Closes #6454
|
||
|
||
- CURLINFO_PRETRANSFER_TIME.3: clarify
|
||
|
||
... the timer *does* include the instructions for getting the remote
|
||
file.
|
||
|
||
Ref: #6452
|
||
Closes #6453
|
||
|
||
- [Gisle Vanem brought this change]
|
||
|
||
schannel: plug a memory-leak
|
||
|
||
... when built without -DUNICODE.
|
||
|
||
Closes #6457
|
||
|
||
Jay Satiro (14 Jan 2021)
|
||
- gitattributes: Set batch files to CRLF line endings on checkout
|
||
|
||
If a batch file is run without CRLF line endings (ie LF-only) then
|
||
arbitrary behavior may occur. I consider that a bug in Windows, however
|
||
the effects can be serious enough (eg unintended code executed) that
|
||
we're fixing it in the repo by requiring CRLF line endings for batch
|
||
files on checkout.
|
||
|
||
Prior to this change the checked-out line endings of batch files were
|
||
dependent on a user's git preferences. On Windows it is common for git
|
||
users to have automatic CRLF conversion enabled (core.autocrlf true),
|
||
but those users that don't would run into this behavior.
|
||
|
||
For example a user has reported running the Visual Studio project
|
||
generator batch file (projects/generate.bat) and it looped forever.
|
||
Output showed that the Windows OS interpreter was occasionally jumping
|
||
to arbitrary points in the batch file and executing commands. This
|
||
resulted in unintended files being removed (a removal sequence called)
|
||
and looping forever.
|
||
|
||
Ref: https://serverfault.com/q/429594
|
||
Ref: https://stackoverflow.com/q/232651
|
||
Ref: https://www.dostips.com/forum/viewtopic.php?t=8988
|
||
Ref: https://git-scm.com/docs/gitattributes#_checking_out_and_checking_in
|
||
Ref: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_autocrlf
|
||
|
||
Bug: https://github.com/curl/curl/discussions/6427
|
||
Reported-by: Ganesh Kamath
|
||
|
||
Closes https://github.com/curl/curl/pull/6442
|
||
|
||
Daniel Stenberg (14 Jan 2021)
|
||
- tool_operate: spellfix a comment
|
||
|
||
- ROADMAP: refreshed
|
||
|
||
o removed HSTS - already implemented
|
||
o added HTTPS RR records
|
||
o mention HTTP/3 completion
|
||
|
||
- http_chunks: remove Curl_ prefix from static functions
|
||
|
||
- transfer: remove Curl_ prefix from static functions
|
||
|
||
- tftp: remove Curl_ prefix from static functions
|
||
|
||
- multi: remove Curl_ prefix from static functions
|
||
|
||
- ldap: remove Curl_ prefix from static functions
|
||
|
||
- doh: remove Curl_ prefix from static functions
|
||
|
||
- asyn-ares: remove Curl_ prefix from static functions
|
||
|
||
- vtls: remove Curl_ prefix from static functions
|
||
|
||
- bearssl: remove Curl_ prefix from static functions
|
||
|
||
- mbedtls: remove Curl_ prefix from static functions
|
||
|
||
- wolfssl: remove Curl_ prefix from static functions
|
||
|
||
- nss: remove Curl_ prefix from static functions
|
||
|
||
- gnutls: remove Curl_ prefix from static functions
|
||
|
||
- openssl: remove Curl_ prefix from static functions
|
||
|
||
... as we reserve this prefix to library-wide functions.
|
||
|
||
Closes #6443
|
||
|
||
- nss: get the run-time version instead of build-time
|
||
|
||
Closes #6445
|
||
|
||
Jay Satiro (12 Jan 2021)
|
||
- tool_doswin: Restore original console settings on CTRL signal
|
||
|
||
- Move Windows terminal init code from tool_main to tool_doswin.
|
||
|
||
- Restore the original console settings on CTRL+C and CTRL+BREAK.
|
||
|
||
Background: On Windows the curl tool changes the console settings to
|
||
enable virtual terminal processing (eg color output) if supported
|
||
(ie Win 10). The original settings are restored on exit but prior to
|
||
this change were not restored in the case of the CTRL signals.
|
||
|
||
Windows VT behavior varies depending on console/powershell/terminal;
|
||
refer to the discussion in #6226.
|
||
|
||
Assisted-by: Rich Turner
|
||
|
||
Closes https://github.com/curl/curl/pull/6226
|
||
|
||
Daniel Stenberg (12 Jan 2021)
|
||
- gen.pl: fix perl syntax
|
||
|
||
Follow-up to 324cf1d2e
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
help: update to current codebase
|
||
|
||
This commit bumps the help to the current state of the project.
|
||
|
||
Closes #6437
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
docs: fix line length bug in gen.pl
|
||
|
||
The script warns if the length of $opt and $desc is > 78. However, these
|
||
two variables are on totally separate lines so the check makes no sense.
|
||
Also the $bitmask field is totally forgotten. Currently this leads to
|
||
two warnings within `--resolve` and `--aws-sigv4`.
|
||
|
||
Closes #6438
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
docs: fix wrong documentation in help.d
|
||
|
||
curl does not list all categories when you invoke "--help" without any
|
||
parameters.
|
||
|
||
Closes #6436
|
||
|
||
- aws-sigv4.d: polish the wording
|
||
|
||
Make it shorter and imperative form
|
||
|
||
Closes #6439
|
||
|
||
- [Fabian Keil brought this change]
|
||
|
||
misc: fix typos
|
||
|
||
Bug: https://curl.se/mail/lib-2021-01/0063.html
|
||
Closes #6434
|
||
|
||
- multi_runsingle: bail out early on data->conn == NULL
|
||
|
||
As that's a significant error condition and scan-build warns for NULL
|
||
pointer dereferences if we don't.
|
||
|
||
Closes #6433
|
||
|
||
- multi: skip DONE state if there's no connection left for ftp wildcard
|
||
|
||
... to avoid running in that state with data->conn being NULL.
|
||
|
||
- libssh2: fix "Value stored to 'readdir_len' is never read"
|
||
|
||
Detected by scan-build
|
||
|
||
- connect: mark intentional ignores of setsockopt return values
|
||
|
||
Pointed out by Coverity
|
||
|
||
Closes #6431
|
||
|
||
Jay Satiro (11 Jan 2021)
|
||
- http_proxy: Fix CONNECT chunked encoding race condition
|
||
|
||
- During the end-of-headers response phase do not mark the tunnel
|
||
complete unless the response body was completely parsed/ignored.
|
||
|
||
Prior to this change if the entirety of a CONNECT response with chunked
|
||
encoding was not received by the time the final header was parsed then
|
||
the connection would be marked done prematurely, before all the chunked
|
||
data could be read in and ignored (since this is what we do with any
|
||
CONNECT response body) and the connection could not be used.
|
||
|
||
Bug: https://curl.se/mail/lib-2021-01/0033.html
|
||
Reported-by: Fabian Keil
|
||
|
||
Closes https://github.com/curl/curl/pull/6432
|
||
|
||
Daniel Stenberg (11 Jan 2021)
|
||
- RELEASE-NOTES: synced
|
||
|
||
- url: if IDNA conversion fails, fallback to Transitional
|
||
|
||
This improves IDNA2003 compatiblity.
|
||
|
||
Reported-by: Bubu on github
|
||
Fixes #6423
|
||
Closes #6428
|
||
|
||
- travis: make the Hyper build from its master branch
|
||
|
||
Closes #6430
|
||
|
||
- http: make 'authneg' also work for Hyper
|
||
|
||
When doing a request with a request body expecting a 401/407 back, that
|
||
initial request is sent with a zero content-length. Test 177 and more.
|
||
|
||
Closes #6424
|
||
|
||
Jay Satiro (8 Jan 2021)
|
||
- cmake: Add an option to disable libidn2
|
||
|
||
New option USE_LIBIDN2 defaults to ON for libidn2 detection. Prior to
|
||
this change libidn2 detection could not be turned off in cmake builds.
|
||
|
||
Reported-by: William A Rowe Jr
|
||
|
||
Fixes https://github.com/curl/curl/issues/6361
|
||
Closes https://github.com/curl/curl/pull/6362
|
||
|
||
Daniel Stenberg (8 Jan 2021)
|
||
- HYPER: no longer needs the special branch
|
||
|
||
- test179: use consistent header line endings
|
||
|
||
... to make "Hyper mode" work better.
|
||
|
||
- file: don't provide content-length for directories
|
||
|
||
... as it is misleading.
|
||
|
||
Ref #6379
|
||
Closes #6421
|
||
|
||
- TODO: Directory listing for FILE:
|
||
|
||
Ref #6379
|
||
|
||
- curl.h: add CURLPROTO_GOPHERS as own protocol identifier
|
||
|
||
Follow-up to a1f06f32b860, to make sure it can be handled separately
|
||
from plain gopher.
|
||
|
||
Closes #6418
|
||
|
||
- http: have CURLOPT_FAILONERROR fail after all headers
|
||
|
||
... so that Retry-After and other meta-content can still be used.
|
||
|
||
Added 1634 to verify. Adjusted test 194 and 281 since --fail now also
|
||
includes the header-terminating CRLF in the output before it exits.
|
||
|
||
Fixes #6408
|
||
Closes #6409
|
||
|
||
- global_init: debug builds allocates a byte in init
|
||
|
||
... to make build tools/valgrind warn if no curl_global_cleanup is
|
||
called.
|
||
|
||
This is conditionally only done for debug builds with the env variable
|
||
CURL_GLOBAL_INIT set.
|
||
|
||
Closes #6410
|
||
|
||
- lib/unit tests: add missing curl_global_cleanup() calls
|
||
|
||
- travis: adapt to Hyper build change
|
||
|
||
Closes #6419
|
||
|
||
- pretransfer: setup the User-Agent header here
|
||
|
||
... and not in the connection setup, as for multiplexed transfers the
|
||
connection setup might be skipped and then the transfer would end up
|
||
without the set user-agent!
|
||
|
||
Reported-by: Flameborn on github
|
||
Assisted-by: Andrey Gursky
|
||
Assisted-by: Jay Satiro
|
||
Assisted-by: Mike Gelfand
|
||
Fixes #6312
|
||
Closes #6417
|
||
|
||
- test66: disable with Hyper
|
||
|
||
...as Hyper doesn't support HTTP/0.9
|
||
|
||
- c-hyper: poll the tasks until end correctly
|
||
|
||
... makes test 36 work.
|
||
|
||
Closes #6412
|
||
|
||
- [Gergely Nagy brought this change]
|
||
|
||
mk-ca-bundle.pl: deterministic output when using -t
|
||
|
||
Printing trust purposes are now sorted, making the output deterministic
|
||
when running on the same input certdata.txt.
|
||
|
||
Closes #6413
|
||
|
||
- KNOWN_BUGS: fixed "wolfSSL lacks support for renegotiation"
|
||
|
||
Fixed by #6411
|
||
|
||
- [Himanshu Gupta brought this change]
|
||
|
||
wolfssl: add SECURE_RENEGOTIATION support
|
||
|
||
Closes #6411
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- wolfssl: update copyright year range
|
||
|
||
Follow-up to 7de2e96535e9
|
||
|
||
- c-hyper: make CURLE_GOT_NOTHING work
|
||
|
||
Test 30
|
||
|
||
Closes #6407
|
||
|
||
- http_proxy: make CONNECT work with the Hyper backend
|
||
|
||
Makes test 80 run
|
||
|
||
Closes #6406
|
||
|
||
- TODO: --fail-with-body perchance?
|
||
|
||
Jay Satiro (4 Jan 2021)
|
||
- tool_operate: fix the suppression logic of some error messages
|
||
|
||
- Fix the failed truncation and failed writing body error messages to
|
||
not be shown unless error messages are shown. (ie the user has
|
||
specified -sS, or has not specified -s).
|
||
|
||
- Also prefix same error messages with "curl: ", for example:
|
||
curl: (23) Failed to truncate, exiting
|
||
|
||
Prior to this change the failed truncation error messages would be shown
|
||
if not -s, but did not account for -sS which should show.
|
||
|
||
Prior to this change the failed writing body error messages would be
|
||
shown always.
|
||
|
||
Ref: https://curl.se/docs/manpage.html#-S
|
||
|
||
Bug: https://curl.se/mail/archive-2020-12/0017.html
|
||
Reported-by: Hongyi Zhao
|
||
|
||
Closes https://github.com/curl/curl/pull/6402
|
||
|
||
- wolfssl: Support wolfSSL builds missing TLS 1.1
|
||
|
||
The wolfSSL TLS library defines NO_OLD_TLS in some of their build
|
||
configurations and that causes the library to be built without TLS 1.1.
|
||
For example if MD5 is explicitly disabled when building wolfSSL then
|
||
that defines NO_OLD_TLS and the library is built without TLS 1.1 [1].
|
||
|
||
Prior to this change attempting to build curl with a wolfSSL that was
|
||
built with NO_OLD_TLS would cause a build link error undefined reference
|
||
to wolfTLSv1_client_method.
|
||
|
||
[1]: https://github.com/wolfSSL/wolfssl/blob/v4.5.0-stable/configure.ac#L2366
|
||
|
||
Bug: https://curl.se/mail/lib-2020-12/0121.html
|
||
Reported-by: Julian Montes
|
||
|
||
Closes https://github.com/curl/curl/pull/6388
|
||
|
||
Daniel Stenberg (4 Jan 2021)
|
||
- test1633: set appropriate name
|
||
|
||
"--retry with a 429 response and Retry-After:"
|
||
|
||
- travis: limit the tests with quiche builds to HTTPS and FTPS only
|
||
|
||
... since it runs into the 50 minute time limit too often otherwise.
|
||
|
||
Closes #6403
|
||
|
||
- HISTORY: added dates to early history
|
||
|
||
Mostly thanks to this archived web page for urlget:
|
||
|
||
https://web.archive.org/web/19980216125115/http://www.inf.ufrgs.br/~sagula/urlget.html
|
||
|
||
- httpauth: make multi-request auth work with custom port
|
||
|
||
When doing HTTP authentication and a port number set with CURLOPT_PORT,
|
||
the code would previously have the URL's port number override as if it
|
||
had been a redirect to an absolute URL.
|
||
|
||
Added test 1568 to verify.
|
||
|
||
Reported-by: UrsusArctos on github
|
||
Fixes #6397
|
||
Closes #6400
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
language: s/behaviour/behavior/g
|
||
|
||
We currently use both spellings the british "behaviour" and the american
|
||
"behavior". However "behavior" is more used in the project so I think
|
||
it's worth dropping the british name.
|
||
|
||
Closes #6395
|
||
|
||
- cmdline-opts/retry.d: mention response code 429 as well
|
||
|
||
Reported-by: Cherish98
|
||
Bug: https://curl.se/mail/archive-2020-12/0018.html
|
||
|
||
- docs/HYPER.md: mention outstanding issues
|
||
|
||
To make it more obvious to users what doesn't work (yet)
|
||
|
||
Closes #6389
|
||
|
||
- COPYING/configure: bump copyright year range
|
||
|
||
- c-hyper: add timecondition to the request
|
||
|
||
Test 77-78
|
||
|
||
Closes #6391
|
||
|
||
- c-hyper: make Digest and NTLM work
|
||
|
||
Test 64, 65, 67, 68, 69, 70, 72
|
||
|
||
Closes #6390
|
||
|
||
- examples/curlgtk.c: fix the copyright year range
|
||
|
||
... and make private functions static.
|
||
|
||
- [Olaf Hering brought this change]
|
||
|
||
docs/examples: adjust prototypes for CURLOPT_READFUNCTION
|
||
|
||
The type of the buffer in curl_read_callback is 'char *', not 'void *'.
|
||
|
||
Signed-off-by: Olaf Hering <[email protected]>
|
||
Closes #6392
|
||
|
||
- examples: fix more empty expression statement has no effect
|
||
|
||
Follow-up to 26e46617b9
|
||
|
||
- cleanup: fix two empty expression statement has no effect
|
||
|
||
Follow-up to 26e46617b9
|
||
|
||
- configure: set -Wextra-semi-stmt for clang with --enable-debug
|
||
|
||
To have it properly complain on empty statements with no effect.
|
||
|
||
Ref: #6376
|
||
Closes #6378
|
||
|
||
- tests/unit: fix empty statements with no effect
|
||
|
||
... by making macros use "do {} while(0)"
|
||
|
||
- [Paul Groke brought this change]
|
||
|
||
dns: extend CURLOPT_RESOLVE syntax for adding non-permanent entries
|
||
|
||
Extend the syntax of CURLOPT_RESOLVE strings: allow using a '+' prefix
|
||
(similar to the existing '-' prefix for removing entries) to add
|
||
DNS cache entries that will time out just like entries that are added
|
||
by libcurl itself.
|
||
|
||
Append " (non-permanent)" to info log message in case a non-permanent
|
||
entry is added.
|
||
|
||
Adjust relevant comments to reflect the new behavior.
|
||
|
||
Adjust documentation.
|
||
|
||
Extend unit1607 to test the new functionality.
|
||
|
||
Closes #6294
|
||
|
||
- schannel: fix "empty expression statement has no effect"
|
||
|
||
Bug: https://github.com/curl/curl/commit/8ab78f720ae478d533e30b202baec4b451741579#commitcomment-45445950
|
||
Reported-by: Gisle Vanem
|
||
Closes #6381
|
||
|
||
- [Denis Laxalde brought this change]
|
||
|
||
docs: remove redundant "better" in --fail help
|
||
|
||
Closes #6385
|
||
|
||
- [Kevin Ushey brought this change]
|
||
|
||
curl.1: fix typo microsft -> microsoft
|
||
|
||
Closes #6380
|
||
|
||
- [XhmikosR brought this change]
|
||
|
||
misc: assorted typo fixes
|
||
|
||
Closes #6375
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- tool_operate: avoid NULL dereference of first_arg
|
||
|
||
Follow-up to 6a5e020d4d2b04a
|
||
Identified by OSS-Fuzz
|
||
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28999
|
||
Closes #6377
|
||
|
||
- misc: fix "warning: empty expression statement has no effect"
|
||
|
||
Turned several macros into do-while(0) style to allow their use to work
|
||
find with semicolon.
|
||
|
||
Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45433279
|
||
Follow-up to 08e8455dddc5e4
|
||
Reported-by: Gisle Vanem
|
||
Closes #6376
|
||
|
||
- KNOWN_BUGS: 6.10 curl never completes Negotiate over HTTP
|
||
|
||
Closes #5235
|
||
Closes #6370
|
||
|
||
- writeout: fix NULL dereference for "this url"
|
||
|
||
Detected by torture test 1029
|
||
|
||
Follow-up to 7a90ddf88f5a
|
||
|
||
Closes #6374
|
||
|
||
- failf: remove newline from formatting strings
|
||
|
||
... as failf adds one itself.
|
||
|
||
Also: add an assert() to failf() that triggers on a newline in the
|
||
format string!
|
||
|
||
Closes #6365
|
||
|
||
- [XhmikosR brought this change]
|
||
|
||
CI: fix warning with the latest versions
|
||
|
||
`git checkout HEAD^2` is no longer needed
|
||
|
||
Closes #6369
|
||
|
||
- INSTALL: update the list known OSes and CPU archs curl has run on
|
||
|
||
Closes #6366
|
||
|
||
- [Cherish98 brought this change]
|
||
|
||
curl: fix handling of -q option
|
||
|
||
The match of the "-q" option (short for "--disable") should:
|
||
a) allow concatenation with other single-letters; and
|
||
b) be case-sensitive, lest confusing with "-Q" ("--quote")
|
||
|
||
Closes #6364
|
||
|
||
- tests/badsymbols.pl: ignore stand-alone single hash lines
|
||
|
||
Bug: https://curl.se/mail/lib-2020-12/0084.html
|
||
Reported-by: Dennis Clarke
|
||
Assisted-by: Jay Satiro
|
||
|
||
Closes #6355
|
||
|
||
- curl_easy_pause.3: add multiplexed pause effects
|
||
|
||
and generally refresh and update. Remove details for ancient versions.
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Closes #6360
|
||
|
||
Jay Satiro (22 Dec 2020)
|
||
- curl_easy_pause.3: fix man page reference
|
||
|
||
Follow-up to ac9a724 from earlier today.
|
||
|
||
Ref: https://github.com/curl/curl/pull/6359
|
||
|
||
Daniel Stenberg (22 Dec 2020)
|
||
- EXPERIMENTAL: add the Hyper backend to the list
|
||
|
||
... of current experimental features in curl.
|
||
|
||
- speedcheck: exclude paused transfers
|
||
|
||
Paused transfers should not be stopped due to slow speed even when
|
||
CURLOPT_LOW_SPEED_LIMIT is set. Additionally, the slow speed timer is
|
||
now reset when the transfer is unpaused - as otherwise it would easily
|
||
just trigger immediately after unpausing.
|
||
|
||
Reported-by: Harry Sintonen
|
||
Fixes #6358
|
||
Closes #6359
|
||
|
||
- h2: do not wait for RECV on paused transfers
|
||
|
||
... as the socket might be readable all the time when paused and thus
|
||
causing a busy-loop.
|
||
|
||
Reported-by: Harry Sintonen
|
||
Reviewed-by: Jay Satiro
|
||
Fixes #6356
|
||
Closes #6357
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- cmdline-opts/gen.pl: return hard on errors
|
||
|
||
... as the warnings tend to go unnoticed otherwise!
|
||
|
||
Closes #6354
|
||
|
||
- examples/libtest: add .checksrc to dist
|
||
|
||
... so that (auto)builds from tarballs also get the correct instructions.
|
||
|
||
Fixes #6176
|
||
Closes #6353
|
||
|
||
- test: verify new --write-out variables
|
||
|
||
Extended test 1029 and added 1188
|
||
|
||
- test970: adapted to the new internal order of variables
|
||
|
||
- curl: add variables to --write-out
|
||
|
||
In particular, these ones can help a user to create its own error
|
||
message when one or transfers fail.
|
||
|
||
writeout: add 'onerror', 'url', 'urlnum', 'exitcode', 'errormsg'
|
||
|
||
onerror - lets a user only show the rest on non-zero exit codes
|
||
|
||
url - the input URL used for this transfer
|
||
|
||
urlnum - the numerical URL counter (0 indexed) for this transfer
|
||
|
||
exitcode - the numerical exit code for the transfer
|
||
|
||
errormsg - obvious
|
||
|
||
Reported-by: Earnestly on github
|
||
Fixes #6199
|
||
Closes #6207
|
||
|
||
- [Matthias Gatto brought this change]
|
||
|
||
tests: add very simple AWS HTTP v4 Signature test
|
||
|
||
Signed-off-by: Matthias Gatto <[email protected]>
|
||
|
||
- [Matthias Gatto brought this change]
|
||
|
||
docs: add AWS HTTP v4 Signature
|
||
|
||
- [Matthias Gatto brought this change]
|
||
|
||
tool: add AWS HTTP v4 Signature support
|
||
|
||
Signed-off-by: Matthias Gatto <[email protected]>
|
||
|
||
- [Matthias Gatto brought this change]
|
||
|
||
http: Make the call to v4 signature
|
||
|
||
This patch allow to call the v4 signature introduce in previous commit
|
||
|
||
Signed-off-by: Matthias Gatto <[email protected]>
|
||
|
||
- [Matthias Gatto brought this change]
|
||
|
||
http: introduce AWS HTTP v4 Signature
|
||
|
||
It is a security process for HTTP.
|
||
|
||
It doesn't seems to be standard, but it is used by some cloud providers.
|
||
|
||
Aws:
|
||
https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
|
||
Outscale:
|
||
https://wiki.outscale.net/display/EN/Creating+a+Canonical+Request
|
||
GCP (I didn't test that this code work with GCP though):
|
||
https://cloud.google.com/storage/docs/access-control/signing-urls-manually
|
||
|
||
most of the code is in lib/http_v4_signature.c
|
||
|
||
Information require by the algorithm:
|
||
- The URL
|
||
- Current time
|
||
- some prefix that are append to some of the signature parameters.
|
||
|
||
The data extracted from the URL are: the URI, the region,
|
||
the host and the API type
|
||
|
||
example:
|
||
https://api.eu-west-2.outscale.com/api/latest/ReadNets
|
||
~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
|
||
^ ^ ^
|
||
/ \ URI
|
||
API type region
|
||
|
||
Small description of the algorithm:
|
||
- make canonical header using content type, the host, and the date
|
||
- hash the post data
|
||
- make canonical_request using custom request, the URI,
|
||
the get data, the canonical header, the signed header
|
||
and post data hash
|
||
- hash canonical_request
|
||
- make str_to_sign using one of the prefix pass in parameter,
|
||
the date, the credential scope and the canonical_request hash
|
||
- compute hmac from date, using secret key as key.
|
||
- compute hmac from region, using above hmac as key
|
||
- compute hmac from api_type, using above hmac as key
|
||
- compute hmac from request_type, using above hmac as key
|
||
- compute hmac from str_to_sign using above hmac as key
|
||
- create Authorization header using above hmac, prefix pass in parameter,
|
||
the date, and above hash
|
||
|
||
Signed-off-by: Matthias Gatto <[email protected]>
|
||
|
||
Closes #5703
|
||
|
||
- [Matthias Gatto brought this change]
|
||
|
||
http: add hmac support for sha256
|
||
|
||
It seems current hmac implementation use md5 for the hash,
|
||
V4 signature require sha256, so I've added the needed struct in
|
||
this commit.
|
||
|
||
I've added the functions that do the hmac in v4 signature file
|
||
as a static function ,in the next patch of the serie,
|
||
because it's used only by this file.
|
||
|
||
Signed-off-by: Matthias Gatto <[email protected]>
|
||
|
||
- [Cristian Rodríguez brought this change]
|
||
|
||
connect: on linux, enable reporting of all ICMP errors on UDP sockets
|
||
|
||
The linux kernel does not report all ICMP errors back to userspace due
|
||
to historical reasons.
|
||
|
||
IP*_RECVERR sockopt must be turned on to have the correct behaviour
|
||
which is to pass all ICMP errors to userspace.
|
||
|
||
See https://bugzilla.kernel.org/show_bug.cgi?id=202355
|
||
|
||
Closes #6341
|
||
|
||
- curl: add --create-file-mode [mode]
|
||
|
||
This option sets the (octal) mode to use for the remote file when one is
|
||
created, using the SFTP, SCP or FILE protocols. When not set, the
|
||
default is 0644.
|
||
|
||
Closes #6244
|
||
|
||
- c-hyper: fix compiler warnings
|
||
|
||
Identified by clang on windows.
|
||
|
||
Reported-by: Gisle Vanem
|
||
Bug: 58974d25d8173aec154e593ed9d866da566c9811
|
||
|
||
Closes #6351
|
||
|
||
- KNOWN_BUGS: Remote recursive folder creation with SFTP
|
||
|
||
Closes #5204
|
||
|
||
Jay Satiro (20 Dec 2020)
|
||
- badsymbols.pl: Add verbose mode -v
|
||
|
||
Use -v as the first option to enable verbose mode which will show source
|
||
input, extracted symbol and line info. For example:
|
||
|
||
Source: ./../include/curl/typecheck-gcc.h
|
||
Symbol: curlcheck_socket_info(info)
|
||
Line #423: #define curlcheck_socket_info(info) \
|
||
|
||
Ref: https://curl.se/mail/lib-2020-12/0084.html
|
||
|
||
Closes https://github.com/curl/curl/pull/6349
|
||
|
||
- KNOWN_BUGS: Secure Transport disabling hostname validation also disables SNI
|
||
|
||
That behavior is a limitation of Apple's Secure Transport.
|
||
|
||
Reported-by: Cory Benfield
|
||
Reported-by: Ian Spence
|
||
Confirmed-by: Nick Zitzmann
|
||
|
||
Ref: https://github.com/curl/curl/issues/998
|
||
|
||
Closes https://github.com/curl/curl/issues/6347
|
||
Closes https://github.com/curl/curl/pull/6348
|
||
|
||
Daniel Stenberg (18 Dec 2020)
|
||
- TODO: alt-svc should fallback if alt-svc doesn't work
|
||
|
||
Closes #4908
|
||
|
||
- travis: restrict the openssl3 job to only run https and ftps tests
|
||
|
||
... as it runs too long otherwise and the other tests are verified in
|
||
other builds anyway.
|
||
|
||
Closes #6345
|
||
|
||
- build: repair http disabled but mqtt enabled build
|
||
|
||
... as the mqtt code reuses the "method" originally used for HTTP.
|
||
|
||
Closes #6344
|
||
|
||
- [Jon Wilkes brought this change]
|
||
|
||
cookie: avoid the C1001 internal compiler error with MSVC 14
|
||
|
||
Fixes #6112
|
||
Closes #6135
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- mqtt: handle POST/PUBLISH without a set POSTFIELDSIZE
|
||
|
||
Detected by OSS-Fuzz
|
||
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28735
|
||
|
||
Added test 1916 and 1917 to verify.
|
||
|
||
Closes #6338
|
||
|
||
- travis: add CI job for Hyper build
|
||
|
||
- tests: updated tests for Hyper
|
||
|
||
- lib: introduce c-hyper for using Hyper
|
||
|
||
... as an alternative HTTP backend within libcurl.
|
||
|
||
- tool_setopt: provide helper output in debug builds
|
||
|
||
... for when setopt() returns error.
|
||
|
||
- setopt: adjust to Hyper and disabled HTTP builds
|
||
|
||
- rtsp: disable if Hyper is used
|
||
|
||
- getinfo: build with disabled HTTP support
|
||
|
||
- version: include hyper version
|
||
|
||
- docs: add HYPER.md
|
||
|
||
- configure: add --with-hyper
|
||
|
||
As the first (optional) HTTP backend alternative instead of native
|
||
|
||
Close #6110
|
||
|
||
- test1522: add debug tracing
|
||
|
||
I used this to track down some issues and I figured I could just as well
|
||
keep this extra logging in here for future needs.
|
||
|
||
Closes #6331
|
||
|
||
- http: show the request as headers even when split-sending
|
||
|
||
When the initial request isn't possible to send in its entirety, the
|
||
remainder of request would be delivered to the debug callback as data
|
||
and would wrongly be counted internally as body-bytes sent.
|
||
|
||
Extended test 1295 to verify.
|
||
|
||
Closes #6328
|
||
|
||
- multi: when erroring in TOOFAST state, act as for PERFORM
|
||
|
||
When failing in TOOFAST, the multi_done() wasn't called so the same
|
||
cleanup and handling wasn't done like when it fails in PERFORM, which in
|
||
the case of FTP could mean that the control connection wouldn't be
|
||
marked as "dead" for the CURLE_ABORTED_BY_CALLBACK case. Which caused
|
||
ftp_disconnect() to use it to send "QUIT", which could end up waiting
|
||
for a response a long time before giving up!
|
||
|
||
Reported-by: Tomas Berger
|
||
Fixes #6333
|
||
Closes #6337
|
||
|
||
- cmake: enable gophers correctly in curl-config
|
||
|
||
Closes #6336
|
||
|
||
- test1198/9: add two mqtt publish tests without payload lengths
|
||
|
||
Closes #6335
|
||
|
||
- tests/mqttd: extract the client id from the correct offset
|
||
|
||
Closes #6334
|
||
|
||
- TODO: Prevent terminal injection when writing to terminal
|
||
|
||
Closes #6150
|
||
|
||
- Revert "CI/github: work-around for brew breakage on macOS"
|
||
|
||
This reverts commit 4cbb17a2cbbbe6337142d39479e21c3990b9c22f.
|
||
|
||
... as the work-around now causes failures.
|
||
|
||
Closes #6332
|
||
|
||
- examples: remove superfluous asterisk uses
|
||
|
||
... for function pointers. Breaks in ancient compilers.
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- test1272: fix line ending
|
||
|
||
Follow-up to f24784f9143
|
||
|
||
- URL-SYNTAX: add gophers details
|
||
|
||
- test1272: test gophers
|
||
|
||
- runtests: add support for gophers, gopher over TLS
|
||
|
||
- [parazyd brought this change]
|
||
|
||
gopher: Implement secure gopher protocol.
|
||
|
||
This commit introduces a "gophers" handler inside the gopher protocol if
|
||
USE_SSL is defined. This protocol is no different than the usual gopher
|
||
prococol, with the added TLS encapsulation upon connecting. The protocol
|
||
has been adopted in the gopher community, and many people have enabled
|
||
TLS in their gopher daemons like geomyidae(8), and clients, like clic(1)
|
||
and hurl(1).
|
||
|
||
I have not implemented test units for this protocol because my knowledge
|
||
of Perl is sub-par. However, for someone more knowledgeable it might be
|
||
fairly trivial, because the same test that tests the plain gopher
|
||
protocol can be used for "gophers" just by adding a TLS listener.
|
||
|
||
Signed-off-by: parazyd <[email protected]>
|
||
|
||
Closes #6208
|
||
|
||
- TODO: Package curl for Windows in a signed installer
|
||
|
||
Closes #5424
|
||
|
||
- mqtt: deal with 0 byte reads correctly
|
||
|
||
OSS-Fuzz found it
|
||
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28676
|
||
|
||
Closes #6327
|
||
|
||
- BUG-BOUNTY: minor language update
|
||
|
||
... and remove the wording about entries from before 2019 as the "within
|
||
12 months" is still there and covers that.
|
||
|
||
Closes #6318
|
||
|
||
- tooĺ_writeout: fix the -w time output units
|
||
|
||
Fix regression from commit fc813f80e1bcac (#6248) that changed the unit
|
||
to microseconds instead of seconds with fractions
|
||
|
||
Reported-by: 不确定
|
||
Fixes #6321
|
||
Closes #6322
|
||
|
||
- quiche: remove fprintf() leftover
|
||
|
||
Jay Satiro (14 Dec 2020)
|
||
- KNOWN_BUGS: SHA-256 digest not supported in Windows SSPI builds
|
||
|
||
Closes https://github.com/curl/curl/issues/6302
|
||
|
||
- digest_sspi: Show InitializeSecurityContext errors in verbose mode
|
||
|
||
The error is shown with infof rather than failf so that the user will
|
||
see the extended error message information only in verbose mode, and
|
||
will still see the standard CURLE_AUTH_ERROR message. For example:
|
||
|
||
---
|
||
|
||
* schannel: InitializeSecurityContext failed: SEC_E_QOP_NOT_SUPPORTED
|
||
(0x8009030A) - The per-message Quality of Protection is not supported by
|
||
the security package
|
||
* multi_done
|
||
* Connection #1 to host 127.0.0.1 left intact
|
||
curl: (94) An authentication function returned an error
|
||
|
||
---
|
||
|
||
Ref: https://github.com/curl/curl/issues/6302
|
||
|
||
Closes https://github.com/curl/curl/pull/6315
|
||
|
||
Daniel Stenberg (13 Dec 2020)
|
||
- URL-SYNTAX: add default port numbers and IDNA details
|
||
|
||
Closes #6316
|
||
|
||
- URL-SYNTAX: mention how FILE:// access can access network on windows
|
||
|
||
Closes #6314
|
||
|
||
Jay Satiro (12 Dec 2020)
|
||
- URL-SYNTAX: Document default SMTP port 25
|
||
|
||
Note that ports 25 and 587 are common ports for smtp, the former being
|
||
the default.
|
||
|
||
Closes https://github.com/curl/curl/pull/6310
|
||
|
||
Daniel Stenberg (12 Dec 2020)
|
||
- CURLOPT_URL.3: remove scheme specific details
|
||
|
||
... that are now found in URL-SYNTAX.md
|
||
|
||
Closes #6307
|
||
|
||
Dan Fandrich (12 Dec 2020)
|
||
- docs: Fix some typos
|
||
|
||
[skip ci]
|
||
|
||
Daniel Stenberg (12 Dec 2020)
|
||
- URL-SYNTAX: mention all supported schemes
|
||
|
||
Closes #6311
|
||
|
||
- [Douglas R. Reno brought this change]
|
||
|
||
URL-SYNTAX.md: minor language improvements
|
||
|
||
Closes #6308
|
||
|
||
- docs/URL-SYNTAX: the URL syntax curl accepts and works with
|
||
|
||
Closes #6285
|
||
|
||
- [0xflotus brought this change]
|
||
|
||
docs: enable syntax highlighting in several docs files
|
||
|
||
... for better readability
|
||
|
||
Closes #6286
|
||
|
||
- test1564/1565: require the 'wakeup' feature to run
|
||
|
||
Fixes #6299
|
||
Fixes #6300
|
||
Closes #6301
|
||
|
||
- runtests: add 'wakeup' as a feature
|
||
|
||
- tests/server/disabled: add "wakeup"
|
||
|
||
To allow the test suite to know if wakeup support is disabled in the
|
||
build.
|
||
|
||
- lib1564/5: verify that curl_multi_wakeup returns OK
|
||
|
||
- tests: make --libcurl tests only test FTP options if ftp enabled
|
||
|
||
Adjust six --libcurl tests to only check the FTP option if FTP is
|
||
actually present in the build.
|
||
|
||
Fixes #6303
|
||
Closes #6305
|
||
|
||
- runtests.pl: fix "uninitialized value" warning
|
||
|
||
follow-up to e12825c642a88774
|
||
|
||
- runtests: add support for %if [feature] conditions
|
||
|
||
... to make tests run differently or expect different results depending
|
||
on what features that are present or not in curl.
|
||
|
||
Bonus: initial minor 'Hyper' awareness but nothing is using that yet
|
||
|
||
Closes #6304
|
||
|
||
- [Jon Rumsey brought this change]
|
||
|
||
OS400: update ccsidcurl.c
|
||
|
||
Add 'struct' to cast and declaration of cfcdata to fix compilation
|
||
error.
|
||
|
||
Fixes #6292
|
||
Closes #6297
|
||
|
||
- ngtcp2: make it build it current master again
|
||
|
||
Closes #6296
|
||
|
||
- [Cristian Rodríguez brought this change]
|
||
|
||
connect: defer port selection until connect() time
|
||
|
||
If supported, defer port selection until connect() time
|
||
if --interface is given and source port is 0.
|
||
|
||
Reproducer:
|
||
|
||
* start fast webserver on port 80
|
||
* starve system of ephemeral ports
|
||
$ sysctl net.ipv4.ip_local_port_range="60990 60999"
|
||
|
||
* start a curl/libcurl "crawler"
|
||
$curl --keepalive --parallel --parallel-immediate --head --interface
|
||
127.0.0.2 "http://127.0.0.[1-254]/file[001-002].txt"
|
||
|
||
current result:
|
||
(possible some successful data)
|
||
curl: (45) bind failed with errno 98: Address already in use
|
||
|
||
result after patch:
|
||
(complete success or few connections failing, higlhy depending on load)
|
||
|
||
Fail only when all the possible 4-tuple combinations are exhausted,
|
||
which is impossible to do when port is selected at bind() time becuse
|
||
the kernel does not know if socket will be listen()'ed on or connect'ed
|
||
yet.
|
||
|
||
Closes #6295
|
||
|
||
- [Hans-Christian Noren Egtvedt brought this change]
|
||
|
||
connect: zero variable on stack to silence valgrind complaint
|
||
|
||
Valgrind will complain that ssrem buffer usage if not explicit
|
||
initialized, hence initialize it to zero.
|
||
|
||
This completes the change intially started in commit 2c0d7212151 ('ftp:
|
||
retry getpeername for FTP with TCP_FASTOPEN') where the ssloc buffer has
|
||
a similar memset to zero.
|
||
|
||
Signed-off-by: Hans-Christian Noren Egtvedt <[email protected]>
|
||
Closes #6289
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
start over on the next release cycle
|
||
|
||
Version 7.74.0 (9 Dec 2020)
|
||
|
||
Daniel Stenberg (9 Dec 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
for 7.74.0
|
||
|
||
Jay Satiro (7 Dec 2020)
|
||
- [Jacob Hoffman-Andrews brought this change]
|
||
|
||
urldata: restore comment on ssl_connect_data.use
|
||
|
||
This comment was originally on the `use` field, but was separated from
|
||
its field in 62a2534.
|
||
|
||
Closes https://github.com/curl/curl/pull/6287
|
||
|
||
Daniel Stenberg (7 Dec 2020)
|
||
- VERSIONS: refreshed
|
||
|
||
We always use the patch number these days: all releases are
|
||
"major.minor.patch"
|
||
|
||
- [Jakub Zakrzewski brought this change]
|
||
|
||
cmake: don't use reserved target name 'test'
|
||
|
||
CMake up to 3.10 always reserves this name
|
||
|
||
Fixes #6257
|
||
Closes #6258
|
||
|
||
- openssl: make the OCSP verification verify the certificate id
|
||
|
||
CVE-2020-8286
|
||
|
||
Reported by anonymous
|
||
|
||
Bug: https://curl.se/docs/CVE-2020-8286.html
|
||
|
||
- ftp: make wc_statemach loop instead of recurse
|
||
|
||
CVE-2020-8285
|
||
|
||
Fixes #6255
|
||
Bug: https://curl.se/docs/CVE-2020-8285.html
|
||
Reported-by: xnynx on github
|
||
|
||
- ftp: CURLOPT_FTP_SKIP_PASV_IP by default
|
||
|
||
The command line tool also independently sets --ftp-skip-pasv-ip by
|
||
default.
|
||
|
||
Ten test cases updated to adapt the modified --libcurl output.
|
||
|
||
Bug: https://curl.se/docs/CVE-2020-8284.html
|
||
CVE-2020-8284
|
||
|
||
Reported-by: Varnavas Papaioannou
|
||
|
||
- urlapi: don't accept blank port number field without scheme
|
||
|
||
... as it makes the URL parser accept "very-long-hostname://" as a valid
|
||
host name and we don't want that. The parser now only accepts a blank
|
||
(no digits) after the colon if the URL starts with a scheme.
|
||
|
||
Reported-by: d4d on hackerone
|
||
|
||
Closes #6283
|
||
|
||
- Revert "multi: implement wait using winsock events"
|
||
|
||
This reverts commit d2a7d7c185f98df8f3e585e5620cbc0482e45fac.
|
||
|
||
This commit also reverts the subsequent follow-ups to that commit, which
|
||
were all done within windows #ifdefs that are removed in this
|
||
change. Marc helped me verify this.
|
||
|
||
Fixes #6146
|
||
Closes #6281
|
||
|
||
- [Klaus Crusius brought this change]
|
||
|
||
ftp: retry getpeername for FTP with TCP_FASTOPEN
|
||
|
||
In the case of TFO, the remote host name is not resolved at the
|
||
connetion time.
|
||
|
||
For FTP that has lead to missing hostname for the secondary connection.
|
||
Therefore the name resolution is done at the time, when FTP requires it.
|
||
|
||
Fixes #6252
|
||
Closes #6265
|
||
Closes #6282
|
||
|
||
- [Thomas Danielsson brought this change]
|
||
|
||
scripts/completion.pl: parse all opts
|
||
|
||
For tab-completion it may be preferable to include all the
|
||
available options.
|
||
|
||
Closes #6280
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- openssl: use OPENSSL_init_ssl() with >= 1.1.0
|
||
|
||
Reported-by: Kovalkov Dmitrii and Per Nilsson
|
||
Fixes #6254
|
||
Fixes #6256
|
||
Closes #6260
|
||
|
||
- SECURITY-PROCESS: disclose on hackerone
|
||
|
||
Once a vulnerability has been published, the hackerone issue should be
|
||
disclosed. For tranparency.
|
||
|
||
Closes #6275
|
||
|
||
Marc Hoersken (3 Dec 2020)
|
||
- tests/util.py: fix compatibility with Python 2
|
||
|
||
Backporting the Python 3 implementation of setStream
|
||
to ClosingFileHandler as a fallback within Python 2.
|
||
|
||
Reported-by: Jay Satiro
|
||
|
||
Fixes #6259
|
||
Closes #6270
|
||
|
||
Daniel Gustafsson (3 Dec 2020)
|
||
- docs: fix typos and markup in ETag manpage sections
|
||
|
||
Reported-by: emanruse on github
|
||
Fixes #6273
|
||
|
||
Daniel Stenberg (2 Dec 2020)
|
||
- quiche: close the connection
|
||
|
||
Reported-by: Junho Choi
|
||
Fixes #6213
|
||
Closes #6217
|
||
|
||
Jay Satiro (2 Dec 2020)
|
||
- ngtcp2: Fix build error due to symbol name change
|
||
|
||
- NGTCP2_CRYPTO_LEVEL_APP -> NGTCP2_CRYPTO_LEVEL_APPLICATION
|
||
|
||
ngtcp2/ngtcp2@76232e9 changed the name.
|
||
|
||
ngtcp2 master is required to build curl with http3 support.
|
||
|
||
Closes https://github.com/curl/curl/pull/6271
|
||
|
||
Daniel Stenberg (1 Dec 2020)
|
||
- [Klaus Crusius brought this change]
|
||
|
||
cmake: check for linux/tcp.h
|
||
|
||
The HAVE_LINUX_TCP_H define was not set by cmake.
|
||
|
||
Closes #6252
|
||
|
||
- NEW-PROTOCOL: document what needs to be done to add one
|
||
|
||
Closes #6263
|
||
|
||
- splay: rename Curl_splayremovebyaddr to Curl_splayremove
|
||
|
||
... and remove the old unused proto for the old Curl_splayremove
|
||
version.
|
||
|
||
Closes #6269
|
||
|
||
- openssl: free mem_buf in error path
|
||
|
||
To fix a memory-leak.
|
||
|
||
Closes #6267
|
||
|
||
- openssl: remove #if 0 leftover
|
||
|
||
Follow-up to 4c9768565ec3a9 (from Sep 2008)
|
||
|
||
Closes #6268
|
||
|
||
- ntlm: avoid malloc(0) on zero length user and domain
|
||
|
||
... and simplify the too-long checks somewhat.
|
||
|
||
Detected by OSS-Fuzz
|
||
|
||
Closes #6264
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
Marc Hoersken (28 Nov 2020)
|
||
- tests/server/tftpd.c: close upload file in case of abort
|
||
|
||
Commit c353207 removed the closing right after do_tftp
|
||
which covered the case of abort. This handles that case.
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Follow up to #6209
|
||
Closes #6234
|
||
|
||
Daniel Stenberg (26 Nov 2020)
|
||
- [Daiki Ueno brought this change]
|
||
|
||
ngtcp2: use the minimal version of QUIC supported by ngtcp2
|
||
|
||
Closes #6250
|
||
|
||
- [Daiki Ueno brought this change]
|
||
|
||
ngtcp2: advertise h3 ALPN unconditionally
|
||
|
||
Closes #6250
|
||
|
||
- [Daiki Ueno brought this change]
|
||
|
||
vquic/ngtcp2.h: define local_addr as sockaddr_storage
|
||
|
||
This field needs to be wide enough to hold sockaddr_in6 when
|
||
connecting via IPv6. Otherwise, ngtcp2_conn_read_pkt will drop the
|
||
packets because of the address mismatch:
|
||
I00000022 [...] con ignore packet from unknown path
|
||
|
||
We can safely assume that struct sockaddr_storage is available, as it
|
||
is used in the public interface of ngtcp2.
|
||
|
||
Closes #6250
|
||
|
||
- socks: check for DNS entries with the right port number
|
||
|
||
The resolve call is done with the right port number, but the subsequent
|
||
check used the wrong one, which then could find a previous resolve which
|
||
would return and leave the fresh resolve "incomplete" and leaking
|
||
memory.
|
||
|
||
Fixes #6247
|
||
Closes #6253
|
||
|
||
- curl_setup: USE_RESOLVE_ON_IPS is for Apple native resolver use
|
||
|
||
... so don't define it when instructed to use c-ares!
|
||
|
||
- test506: make it not run in c-ares builds
|
||
|
||
As the asynch nature of it may trigger events in another order. A c-ares
|
||
upgrade made it break.
|
||
|
||
Reported-by: Marc Hörsken
|
||
Fixes #6247
|
||
|
||
- runtests: make 'c-ares' a "feature" to depend on
|
||
|
||
... also added to the docs.
|
||
|
||
- tool_writeout: use off_t getinfo-types instead of doubles
|
||
|
||
Commit 3b80d3ca46b12e52342 (June 2017) introduced getinfo replacement
|
||
variables that use curl_off_t instead of doubles. Switch the --write-out
|
||
function over to use them.
|
||
|
||
Closes #6248
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
file: avoid duplicated code sequence
|
||
|
||
file_disconnect() is identical with file_do() except the function header
|
||
but as the arguments are unused anyway so why not just return file_do()
|
||
directly!
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Closes #6249
|
||
|
||
- [Rikard Falkeborn brought this change]
|
||
|
||
infof/failf calls: fix format specifiers
|
||
|
||
Update a few format specifiers to match what is being printed.
|
||
|
||
Closes #6241
|
||
|
||
- docs/INTERNALS: remove reference to Curl_sendf()
|
||
|
||
The function has been removed from common usage. Also removed comment in
|
||
gopher.c that still referenced it.
|
||
|
||
Reported-by: Rikard Falkeborn
|
||
Fixes #6242
|
||
Closes #6243
|
||
|
||
- [Rikard Falkeborn brought this change]
|
||
|
||
examples: update .gitignore
|
||
|
||
Add files that are generated by 'make examples' and remove some that
|
||
have been renamed.
|
||
|
||
The commits that renamed the programs are e9625c5bc6c046a (imap.c and
|
||
simplesmtp.c were renamed to imap-fetch.c and smtp-send.c) and
|
||
ad39e7ec01e7 (pop3slist.c and pop3s.c were renamed to pop3-list.c and
|
||
pop3-ssl.c).
|
||
|
||
Closes #6240
|
||
|
||
- asyn: use 'struct thread_data *' instead of 'void *'
|
||
|
||
To reduce use of types that can't be checked at compile time. Also
|
||
removes several typecasts.
|
||
|
||
... and rename the struct field from 'os_specific' to 'tdata'.
|
||
|
||
Closes #6239
|
||
Reviewed-by: Jay Satiro
|
||
|
||
Viktor Szakats (23 Nov 2020)
|
||
- Makefile.m32: add support for UNICODE builds
|
||
|
||
It requires the linker to support the `-municode` option.
|
||
This is available in more recent mingw-w64 releases.
|
||
|
||
Ref: https://gcc.gnu.org/onlinedocs/gcc/x86-Windows-Options.html
|
||
Ref: https://stackoverflow.com/questions/3571250/wwinmain-unicode-and-mingw/11706847#11706847
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Marcel Raad
|
||
|
||
Closes #6228
|
||
|
||
Daniel Stenberg (23 Nov 2020)
|
||
- urldata: remove 'void *protop' and create the union 'p'
|
||
|
||
... to avoid the use of 'void *' for the protocol specific structs done
|
||
per transfer.
|
||
|
||
Closes #6238
|
||
|
||
- winbuild: remove docs from Makefiles and refer to README.md
|
||
|
||
Reduce risk for conflicting docs and makes it to a single place to fix
|
||
and polish.
|
||
|
||
add these missing options to the readme:
|
||
|
||
ENABLE_OPENSSL_AUTO_LOAD_CONFIG and ENABLE_UNICODE
|
||
|
||
clarify ENABLE_SCHANNEL default varies
|
||
|
||
Fixes #6216
|
||
Closes #6227
|
||
Co-Authored-by: Jay Satiro
|
||
|
||
- [Daiki Ueno brought this change]
|
||
|
||
http3: use the master branch of GnuTLS for testing
|
||
|
||
Closes #6235
|
||
|
||
- KNOWN_BUGS: curl with wolfSSL lacks support for renegotiation
|
||
|
||
Closes #5839
|
||
|
||
- KNOWN_BUGS: wakeup socket disconnect causes havoc
|
||
|
||
Closes #6132
|
||
Closes #6133
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Oliver Urbann brought this change]
|
||
|
||
curl: add compatibility for Amiga and GCC 6.5
|
||
|
||
Changes are mainly reordering and adding of includes required
|
||
to compile with a more recent version of GCC.
|
||
|
||
Closes #6220
|
||
|
||
Marc Hoersken (20 Nov 2020)
|
||
- tests/server/tftpd.c: close upload file right after transfer
|
||
|
||
Make sure uploaded file is no longer locked after the
|
||
transfer while waiting for the final ACK to be handled.
|
||
|
||
Assisted-by: Daniel Stenberg
|
||
|
||
Bug: #6058
|
||
Closes #6209
|
||
|
||
- CI/cirrus: simplify logic for disabled tests
|
||
|
||
The OpenSSH server instance for the testsuite cannot
|
||
be started on FreeBSD, therefore the SFTP and SCP
|
||
tests are disabled right away from the beginning.
|
||
|
||
The previous OS version specific logic for SKIP_TESTS
|
||
is no longer needed/used and can therefore be removed.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Follow up to #6211
|
||
Closes #6229
|
||
|
||
Daniel Gustafsson (20 Nov 2020)
|
||
- mailmap: Daniel Hwang
|
||
|
||
Add Daniel Hwang to the mailmap to cover the alternative spelling
|
||
Daniel Lee Hwang which was used in one commit.
|
||
|
||
Closes #6230
|
||
Reviewed-by: Daniel Stenberg <[email protected]>
|
||
|
||
- openssl: guard against OOM on context creation
|
||
|
||
EVP_MD_CTX_create will allocate memory for the context and returns
|
||
NULL in case the allocation fails. Make sure to catch any allocation
|
||
failures and exit early if so.
|
||
|
||
In passing, also move to EVP_DigestInit rather than EVP_DigestInit_ex
|
||
as the latter is intended for ENGINE selection which we don't do.
|
||
|
||
Closes #6224
|
||
Reviewed-by: Daniel Stenberg <[email protected]>
|
||
Reviewed-by: Emil Engler <[email protected]>
|
||
|
||
Daniel Stenberg (19 Nov 2020)
|
||
- [Vincent Torri brought this change]
|
||
|
||
cmake: use libcurl.rc in all Windows builds
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Closes #6215
|
||
|
||
- [Cristian Morales Vega brought this change]
|
||
|
||
cmake: make CURL_ZLIB a tri-state variable
|
||
|
||
By differentiating between ON and AUTO it can make a missing zlib
|
||
library a hard error when CURL_ZLIB=ON is used.
|
||
|
||
Reviewed-by: Jakub Zakrzewski
|
||
Closes #6221
|
||
Fixes #6173
|
||
|
||
- quiche: remove 'static' from local buffer
|
||
|
||
For thread-safety
|
||
|
||
Closes #6223
|
||
|
||
- KNOWN_BUGS: cmake: libspsl is not supported
|
||
|
||
Closes #6214
|
||
|
||
- KNOWN_BUGS: cmake autodetects cert paths when cross-compiling
|
||
|
||
Closes #6178
|
||
|
||
- KNOWN_BUGS: cmake build doesn't fail if zlib not found
|
||
|
||
Closes #6173
|
||
|
||
- KNOWN_BUGS: cmake libcurl.pc uses absolute library paths
|
||
|
||
Closes #6169
|
||
|
||
- KNOWN_BUGS: cmake: generated .pc file contains strange entries
|
||
|
||
Closes #6167
|
||
|
||
- KNOWN_BUGS: cmake uses -lpthread instead of Threads::Threads
|
||
|
||
Closes #6166
|
||
|
||
- KNOWN_BUGS: cmake build in Linux links libcurl to libdl
|
||
|
||
Closes #6165
|
||
|
||
- KNOWN_BUGS: make a new section for cmake topics
|
||
|
||
Closes #6219
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
cirrus: build with FreeBSD 12.2 in CirrusCI
|
||
|
||
Closes #6211
|
||
|
||
Marc Hoersken (14 Nov 2020)
|
||
- tests/*server.py: close log file after each log line
|
||
|
||
Make sure the log file is not locked once a test has
|
||
finished and align with the behavior of our logmsg.
|
||
|
||
Rename curl_test_data.py to be a general util.py.
|
||
Format and sort Python imports with isort/VSCode.
|
||
|
||
Bug: #6058
|
||
Closes #6206
|
||
|
||
Daniel Stenberg (13 Nov 2020)
|
||
- CURLOPT_HSTS.3: document the file format
|
||
|
||
Closes #6205
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- release-notes.pl: detect #[number] better for Ref: etc
|
||
|
||
- curl: only warn not fail, if not finding the home dir
|
||
|
||
... as there's no good reason to error out completely.
|
||
|
||
Reported-by: Andreas Fischer
|
||
Fixes #6200
|
||
Closes #6201
|
||
|
||
- httpput-postfields.c: new example doing PUT with POSTFIELDS
|
||
|
||
Proposed-by: Jeroen Ooms
|
||
Ref: #6186
|
||
Closes #6188
|
||
|
||
- [Tobias Hieta brought this change]
|
||
|
||
cmake: correctly handle linker flags for static libs
|
||
|
||
curl CMake was setting the the EXE flags for static libraries which made
|
||
the /manifest:no flag ended up when linking the static library, which is
|
||
not a valid flag for lib.exe or llvm-lib.exe and caused llvm-lib to exit
|
||
with an error.
|
||
|
||
The better way to handle this is to make sure that we pass the correct
|
||
linker flags to CMAKE_STATIC_LINKER_FLAGS instead.
|
||
|
||
Reviewed-by: Jakub Zakrzewski
|
||
Closes #6195
|
||
|
||
- [Tobias Hieta brought this change]
|
||
|
||
cmake: don't pass -fvisibility=hidden to clang-cl on Windows
|
||
|
||
When using clang-cl on windows -fvisibility=hidden is not an known
|
||
argument. Instead it behaves exactly like MSVC in this case. So let's
|
||
make sure we take that path.
|
||
|
||
In CMake clang-cl sets both CMAKE_C_COMPILER_ID=clang and MSVC get's
|
||
defined since clang-cl is basically a MSVC emulator. So guarding like we
|
||
do in this patch seems logical.
|
||
|
||
Reviewed-by: Jakub Zakrzewski
|
||
Closes #6194
|
||
|
||
- http_proxy: use enum with state names for 'keepon'
|
||
|
||
To make the code clearer, change the 'keepon' from an int to an enum
|
||
with better state names.
|
||
|
||
Reported-by: Niranjan Hasabnis
|
||
Bug: https://curl.se/mail/lib-2020-11/0026.html
|
||
Closes #6193
|
||
|
||
- curl_easy_escape: limit output string length to 3 * max input
|
||
|
||
... instead of the limiting it to just the max input size. As every
|
||
input byte can be expanded to 3 output bytes, this could limit the input
|
||
string to 2.66 MB instead of the intended 8 MB.
|
||
|
||
Reported-by: Marc Schlatter
|
||
Closes #6192
|
||
|
||
- docs: document the 8MB input string limit
|
||
|
||
for curl_easy_escape and curl_easy_setopt()
|
||
|
||
The limit is there to catch mistakes and abuse. It is meant to be large
|
||
enough to allow virtually all "fine" use cases.
|
||
|
||
Reported-by: Marc Schlatter
|
||
Fixes #6190
|
||
Closes #6191
|
||
|
||
- mqttd: fclose test file when done
|
||
|
||
Reported-by: Marc Hörsken
|
||
Reviewed-by: Jay Satiro
|
||
Bug: #6058
|
||
Closes #6189
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- THANKS-filter: ignore autobuild links
|
||
|
||
- Revert "libcurl.pc: make it relocatable"
|
||
|
||
This reverts commit 3862c37b6373a55ca704171d45ba5ee91dec2c9f.
|
||
|
||
That fix should either be done differently or with an option.
|
||
|
||
Reported-by: asavah on github
|
||
Fixes #6157
|
||
Closes #6183
|
||
|
||
- examples/httpput: remove use of CURLOPT_PUT
|
||
|
||
It is deprecated and unnecessary since it already sets CURLOPT_UPLOAD.
|
||
|
||
Reported-by: Jeroen Ooms
|
||
Fixes #6186
|
||
Closes #6187
|
||
|
||
- Curl_pgrsStartNow: init speed limit time stamps at start
|
||
|
||
By setting the speed limit time stamps unconditionally at transfer
|
||
start, we can start off a transfer without speed limits and yet allow
|
||
them to get set during transfer and have an effect.
|
||
|
||
Reported-by: Kael1117 on github
|
||
Fixes #6162
|
||
Closes #6184
|
||
|
||
- ngtcp2: adapt to recent nghttp3 updates
|
||
|
||
'reset_stream' was added to the nghttp3_conn_callbacks struct
|
||
|
||
Closes #6185
|
||
|
||
- configure: pass -pthread to Libs.private for pkg-config
|
||
|
||
Reported-by: Cristian Morales Vega
|
||
Fixes #6168
|
||
Closes #6181
|
||
|
||
- altsvc: minimize variable scope and avoid "DEAD_STORE"
|
||
|
||
Closes #6182
|
||
|
||
- FAQ: remove "Why is there a HTTP/1.1 in my HTTP/2 request?"
|
||
|
||
This hasn't been the case for a while now, remove.
|
||
|
||
- FAQ: refresh "Why do I get "certificate verify failed"
|
||
|
||
Add more details, remove references to ancient curl version.
|
||
|
||
- test493: verify --hsts upgrade and that %{url_effective} reflects that
|
||
|
||
Closes #6175
|
||
|
||
- url: make sure an HSTS upgrade updates URL and scheme correctly
|
||
|
||
Closes #6175
|
||
|
||
- tool_operate: set HSTS with CURLOPT_HSTS to pass on filename
|
||
|
||
Closes #6175
|
||
|
||
- hsts: remove debug code leftovers
|
||
|
||
Closes #6175
|
||
|
||
- FAQ: refreshed
|
||
|
||
- remove a few ancient questions
|
||
- add configure with static libs question
|
||
- updated wording in several places
|
||
- lowercased curl
|
||
|
||
Closes #6177
|
||
|
||
Daniel Gustafsson (5 Nov 2020)
|
||
- examples: fix comment syntax
|
||
|
||
Commit ac0a88fd2 accidentally added a stray character outside of the
|
||
comment which broke compilation. Fix by removing.
|
||
|
||
Reported-by: autobuild https://curl.se/dev/log.cgi?id=20201105084306-12742
|
||
|
||
- hsts: Remove pointless call to free in errorpath
|
||
|
||
The line variable will always be NULL in the error path, so remove
|
||
the free call since it's pointless.
|
||
|
||
Closes #6170
|
||
Reviewed-by: Daniel Stenberg <[email protected]>
|
||
|
||
- docs: Fix various typos in documentation
|
||
|
||
Closes #6171
|
||
Reviewed-by: Daniel Stenberg <[email protected]>
|
||
|
||
Daniel Stenberg (5 Nov 2020)
|
||
- copyright: fix year ranges
|
||
|
||
Follow-up from 4d2f8006777
|
||
|
||
- HISTORY: the new domain
|
||
|
||
- curl.se: new home
|
||
|
||
Closes #6172
|
||
|
||
- KNOWN_BUGS: FTPS with Schannel times out file list operation
|
||
|
||
Reported-by: bobmitchell1956 on github
|
||
Closes #5284
|
||
|
||
- KNOWN_BUGS: SMB tests fail with Python 2
|
||
|
||
Reported-by: Jay Satiro
|
||
Closes #5983
|
||
|
||
- KNOWN_BUGS: LDAPS with NSS is slow
|
||
|
||
Reported-by: nosajsnikta on github
|
||
Closes #5874
|
||
|
||
Sergei Nikulov (4 Nov 2020)
|
||
- travis: use ninja-build for CMake builds
|
||
|
||
Added package ninja-build to environment
|
||
Use ninja to speed up CMake builds
|
||
|
||
Closes #6077
|
||
|
||
Daniel Stenberg (4 Nov 2020)
|
||
- [Harry Sintonen brought this change]
|
||
|
||
rtsp: error out on empty Session ID, unified the code
|
||
|
||
- [Harry Sintonen brought this change]
|
||
|
||
rtsp: fixed the RTST Session ID mismatch in test 570
|
||
|
||
Closes #6161
|
||
|
||
- [Harry Sintonen brought this change]
|
||
|
||
rtsp: fixed Session ID comparison to refuse prefix
|
||
|
||
Closes #6161
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
(forgot to update the list of contributors)
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- curlver: bumped to 7.74.0
|
||
|
||
- hsts: add read/write callbacks
|
||
|
||
- read/write callback options
|
||
- man pages for the 4 new setopts
|
||
- test 1915 verifies the callbacks
|
||
|
||
Closes #5896
|
||
|
||
- hsts: add support for Strict-Transport-Security
|
||
|
||
- enable in the build (configure)
|
||
- header parsing
|
||
- host name lookup
|
||
- unit tests for the above
|
||
- CI build
|
||
- CURL_VERSION_HSTS bit
|
||
- curl_version_info support
|
||
- curl -V output
|
||
- curl-config --features
|
||
- CURLOPT_HSTS_CTRL
|
||
- man page for CURLOPT_HSTS_CTRL
|
||
- curl --hsts (sets CURLOPT_HSTS_CTRL and works with --libcurl)
|
||
- man page for --hsts
|
||
- save cache to disk
|
||
- load cache from disk
|
||
- CURLOPT_HSTS
|
||
- man page for CURLOPT_HSTS
|
||
- added docs/HSTS.md
|
||
- fixed --version docs
|
||
- adjusted curl_easy_duphandle
|
||
|
||
Closes #5896
|
||
|
||
- [Sergei Nikulov brought this change]
|
||
|
||
CI/tests: enable test target on TravisCI for CMake builds
|
||
|
||
Added test-nonflaky target to CMake builds
|
||
|
||
Disabled test 1139 because the cmake build doesn't create docs/curl.1
|
||
|
||
Closes #6074
|
||
|
||
- tool_debug_cb: do not assume zero-terminated data
|
||
|
||
Follow-up to d70a5b5a0f5e3
|
||
|
||
- sendf: move the verbose-check into Curl_debug
|
||
|
||
Saves us from having the same check done everywhere.
|
||
|
||
Closes #6159
|
||
|
||
- travis: use valgrind when running tests for debug builds
|
||
|
||
Except the non-x86 and sanitizer builds
|
||
|
||
Closes #6154
|
||
|
||
- header.d: fix syntax mistake
|
||
|
||
follow-up from 1144886f38fd0
|
||
|
||
- [Harry Sintonen brought this change]
|
||
|
||
gnutls: fix memory leaks (certfields memory wasn't released)
|
||
|
||
Closes #6153
|
||
|
||
- tests: add missing global_init/cleanup calls
|
||
|
||
Without the cleanup call in these test files, the mbedTLS backend leaks
|
||
memory.
|
||
|
||
Closes #6156
|
||
|
||
- tool_operate: --retry for HTTP 408 responses too
|
||
|
||
This was inadvertently dropped from the code when the parallel support
|
||
was added.
|
||
|
||
Regression since b88940850 (7.66.0)
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Closes #6155
|
||
|
||
- http: pass correct header size to debug callback for chunked post
|
||
|
||
... when the chunked framing was added, the size of the "body part" of
|
||
the data was calculated wrongly so the debug callback would get told a
|
||
header chunk a few bytes too big that would also contain the first few
|
||
bytes of the request body.
|
||
|
||
Reported-by: Dirk Wetter
|
||
Ref: #6144
|
||
Closes #6147
|
||
|
||
- header.d: mention the "Transfer-Encoding: chunked" handling
|
||
|
||
Ref: #6144
|
||
Closes #6148
|
||
|
||
- acinclude: detect manually set minimum macos/ipod version
|
||
|
||
... even if set in the CC or IPHONEOS/MACOSX_DEPLOYMENT_TARGET
|
||
variables.
|
||
|
||
Reported-by: hamstergene on github
|
||
Fixes #6138
|
||
Closes #6140
|
||
|
||
Jay Satiro (29 Oct 2020)
|
||
- tests: fix some http/2 tests for older versions of nghttpx
|
||
|
||
- Add regex that strips http/2 server header name to those http/2 tests
|
||
that don't already have it.
|
||
|
||
- Improve that regex in all http/2 tests.
|
||
|
||
Tests 358 and 359 were failing for me before this change on a system
|
||
that uses an older version of nghttpx which includes its version number
|
||
in the server header.
|
||
|
||
Closes https://github.com/curl/curl/pull/6139
|
||
|
||
Daniel Stenberg (30 Oct 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Cristian Morales Vega brought this change]
|
||
|
||
configure: use pkgconfig to find openSSL when cross-compiling
|
||
|
||
This reverts 736a40fec (November 2004), which doesn't explain why it was
|
||
done.
|
||
|
||
Closes #6145
|
||
|
||
- tool_operate: bail out proper on errors for parallel setup
|
||
|
||
... otherwise for example trying to upload a missing file just causes a
|
||
loop.
|
||
|
||
Reported-by: BrumBrum on hackerone
|
||
Closes #6141
|
||
|
||
- [Sergei Nikulov brought this change]
|
||
|
||
CMake: make BUILD_TESTING dependent option
|
||
|
||
CMake will now handle BUILD_TESTING depending on PERL_FOUND and
|
||
CURL_DISABLE_TESTING
|
||
|
||
Ref: #6036
|
||
Closes #6072
|
||
|
||
- libssh2: fix transport over HTTPS proxy
|
||
|
||
The fix in #6021 was not enough. This fix makes sure SCP/SFTP content
|
||
can also be transfered over a HTTPS proxy.
|
||
|
||
Fixes #6113
|
||
Closes #6128
|
||
|
||
- curl.1: add an "OUTPUT" section at the top of the manpage
|
||
|
||
Explain the basic concepts behind curl output.
|
||
|
||
Inspired by #6124
|
||
|
||
Closes #6134
|
||
|
||
- mailmap: set Viktor Szakats's email
|
||
|
||
- runtests: show keywords when no tests ran
|
||
|
||
To help out future debugging, runtests now outputs the list of keywords
|
||
when it fails because no tests ran.
|
||
|
||
Ref: #6120
|
||
Closes #6126
|
||
|
||
Jay Satiro (26 Oct 2020)
|
||
- CURLOPT_DNS_USE_GLOBAL_CACHE.3: fix typo
|
||
|
||
Reported-by: Rui LIU
|
||
|
||
Closes https://github.com/curl/curl/issues/6131
|
||
|
||
- range.d: fix typo
|
||
|
||
Follow-up to 15ae039 from earlier today.
|
||
|
||
Daniel Stenberg (26 Oct 2020)
|
||
- CI/github: work-around for brew breakage on macOS
|
||
|
||
... and make it use OpenSSL 1.1 properly
|
||
|
||
Fixes #6130
|
||
Closes #6129
|
||
|
||
- [José Joaquín Atria brought this change]
|
||
|
||
range.d: clarify that curl will not parse multipart responses
|
||
|
||
Closes #6127
|
||
Fixes #6124
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Baruch Siach brought this change]
|
||
|
||
libssh2: fix build with disabled proxy support
|
||
|
||
Build breaks because the http_proxy field is missing:
|
||
|
||
vssh/libssh2.c:3119:10: error: 'struct connectdata' has no member named 'http_proxy'
|
||
|
||
Regression from #6021, shipped in curl 7.73.0
|
||
|
||
Closes #6125
|
||
|
||
- alt-svc: enable by default
|
||
|
||
Remove CURLALTSVC_IMMEDIATELY, which was never implemented/supported.
|
||
|
||
alt-svc support in curl is no longer considered experimental
|
||
|
||
Closes #5868
|
||
|
||
- CI/appveyor: remove (unused) runtests.pl -b option
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
tool_help: make "output" description less confusing
|
||
|
||
Currently the description of "output" is misleading when comparing it
|
||
"verbose".
|
||
|
||
Closes #6118
|
||
|
||
- CI/appveyor: disable test 571 in two cmake builds
|
||
|
||
... they're simply too flaky there.
|
||
|
||
Closes #6119
|
||
|
||
- cmake: set the unicode feature in curl-config on Windows
|
||
|
||
... if built that way. To make it match curl -V output.
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Closes #6117
|
||
|
||
- libssh2: require version 1.0 or later
|
||
|
||
... and simplify the code accordingly. libssh2 version 1.0 was released
|
||
in April 2009.
|
||
|
||
Closes #6116
|
||
|
||
- KNOWN_BUGS: mention the individual cmake issues
|
||
|
||
... to make them easier to refer to and address separately and
|
||
one-by-one.
|
||
|
||
- CMake: store IDN2 information in curl_config.h
|
||
|
||
This allows the build to enable IDN properly and it makes test 1014
|
||
happier.
|
||
|
||
Ref: #6074
|
||
Closes #6108
|
||
|
||
- CMake: call the feature unixsockets without dash
|
||
|
||
... so that curl-config gets correct and makes test 1014 happy!
|
||
|
||
Ref: #6074
|
||
Closes #6108
|
||
|
||
- CI/travis: add brotli and zstd to the libssh2 build
|
||
|
||
... to make sure such tests are run with valgrind. Suppress the zstd
|
||
valgrind warnings we get with version 1.3.3 on Ubuntu 18.04 (for debug
|
||
and non-debug builds).
|
||
|
||
Closes #6105
|
||
|
||
- runtests: revert the mistaken edit of $CURL
|
||
|
||
Regression from c4693adc62
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- curl_url_set.3: fix typo in the RETURN VALUE section
|
||
|
||
Reported-by: Basuke Suzuki
|
||
Fixes #6102
|
||
|
||
Jay Satiro (17 Oct 2020)
|
||
- [Daniel Stenberg brought this change]
|
||
|
||
packages/OS400: make the source code-style compliant
|
||
|
||
... and make sure 'make checksrc' in the root dir also verifies the
|
||
packages/OS400 sources.
|
||
|
||
Closes https://github.com/curl/curl/pull/6085
|
||
|
||
- os400: Sync libcurl API options
|
||
|
||
This fixes the OS400 build and also an incorrect entry for
|
||
CURLINFO_APPCONNECT_TIME_T where it was treated as
|
||
CURLINFO_STARTTRANSFER_TIME_T.
|
||
|
||
Reported-by: Jon Rumsey
|
||
|
||
Fixes https://github.com/curl/curl/issues/6083
|
||
Closes https://github.com/curl/curl/pull/6084
|
||
|
||
Daniel Stenberg (16 Oct 2020)
|
||
- CURLOPT_NOBODY.3: fix typo
|
||
|
||
Reported-by: Basuke Suzuki
|
||
Fixes #6097
|
||
|
||
Marc Hoersken (16 Oct 2020)
|
||
- CI/azure: improve on flakiness by avoiding libtool wrappers
|
||
|
||
Install curl binaries into MinGW bin folder and use that
|
||
for the tests in order to avoid libtool wrapper binaries.
|
||
|
||
The libtool wrapper binaries (not scripts) on Windows seem
|
||
to be one of the possible causes for the following issues:
|
||
|
||
1. Process output can be lost in the wrapper process chain.
|
||
2. Killing the wrapper process does not kill the actual one.
|
||
|
||
Derived from #5904
|
||
Closes #6049
|
||
|
||
Daniel Stenberg (16 Oct 2020)
|
||
- CURLOPT_URL.3: clarify SCP/SFTP URLs are for uploads as well
|
||
|
||
- [Zenju brought this change]
|
||
|
||
CURLOPT_TCP_NODELAY.3: fix comment in example code
|
||
|
||
Closes #6096
|
||
|
||
- openssl: acknowledge SRP disabling in configure properly
|
||
|
||
Follow-up to 68a513247409
|
||
|
||
Use a new separate define that is the combination of both
|
||
HAVE_OPENSSL_SRP and USE_TLS_SRP: USE_OPENSSL_SRP
|
||
|
||
Bug: https://curl.haxx.se/mail/lib-2020-10/0037.html
|
||
|
||
Closes #6094
|
||
|
||
Viktor Szakats (16 Oct 2020)
|
||
- http3: fix two build errors, silence warnings
|
||
|
||
* fix two build errors due to mismatch between function
|
||
declarations and their definitions
|
||
* silence two mismatched signs warnings via casts
|
||
|
||
Approved-by: Daniel Stenberg
|
||
Closes #6093
|
||
|
||
- Makefile.m32: add support for HTTP/3 via ngtcp2+nghttp3
|
||
|
||
Approved-by: Daniel Stenberg
|
||
Closes #6092
|
||
|
||
Daniel Stenberg (16 Oct 2020)
|
||
- tool_operate: fix compiler warning when --libcurl is disabled
|
||
|
||
Closes #6095
|
||
|
||
- checksrc: warn on empty line before open brace
|
||
|
||
... and fix a few occurances
|
||
|
||
Closes #6088
|
||
|
||
- urlapi: URL encode a '+' in the query part
|
||
|
||
... when asked to with CURLU_URLENCODE.
|
||
|
||
Extended test 1560 to verify.
|
||
Reported-by: Dietmar Hauser
|
||
Fixes #6086
|
||
Closes #6087
|
||
|
||
- [Cristian Morales Vega brought this change]
|
||
|
||
libcurl.pc: make it relocatable
|
||
|
||
It supposes when people specify the libdir/includedir they do it to
|
||
change where under prefix/exec_prefix it should be, not to make it
|
||
independent of prefix/exec_prefix.
|
||
|
||
Closes #6061
|
||
|
||
- runtests: return error if no tests ran
|
||
|
||
... and make TESTFAIL stand out a little better by adding newlines
|
||
before and after.
|
||
|
||
Reported-by: Marc Hörsken
|
||
Issue: #6052
|
||
Closes #6053
|
||
|
||
- docs/FEATURE: convert to markdown
|
||
|
||
... and clean it up a bit.
|
||
|
||
Closes #6067
|
||
|
||
- [Philipp Klaus Krause brought this change]
|
||
|
||
strerror: use 'const' as the string should never be modified
|
||
|
||
Closes #6068
|
||
|
||
- [Jay Satiro brought this change]
|
||
|
||
connect: repair build without ipv6 availability
|
||
|
||
Assisted-by: Daniel Stenberg
|
||
Reported-by: Tom G. Christensen
|
||
|
||
Fixes https://github.com/curl/curl/issues/6069
|
||
Closes https://github.com/curl/curl/pull/6071
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
Started over for the journey to next release.
|
||
|
||
- src/tool_filetime: disable -Wformat on mingw for this file
|
||
|
||
With gcc 10 on mingw we otherwise get this warning:
|
||
|
||
error: ISO C does not support the 'I' printf flag [-Werror=format=]
|
||
|
||
Fixes #6079
|
||
Closes #6082
|
||
|
||
- test122[12]: remove these two tests
|
||
|
||
... and remove the objnames scripts they tested. They're not used for
|
||
anything anymore so testing them serves no purpose!
|
||
|
||
Reported-by: Marc Hörsken
|
||
Fixes #6080
|
||
Closes #6081
|
||
|
||
Version 7.73.0 (14 Oct 2020)
|
||
|
||
Daniel Stenberg (14 Oct 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
for 7.73.0
|
||
|
||
- THANKS: from 7.73.0 and .mailmap fixes
|
||
|
||
- mailmap: fixups of some contributors
|
||
|
||
- projects/build-wolfssl.bat: fix the copyright year range
|
||
|
||
Marc Hoersken (14 Oct 2020)
|
||
- [Sergei Nikulov brought this change]
|
||
|
||
CI/tests: fix invocation of tests for CMake builds
|
||
|
||
Update appveyor.yml to set env variable TFLAGS and run tests
|
||
Remove curly braces due to CMake error (${TFLAGS} -> $TFLAGS)
|
||
Move testdeps build to build step (per review comments)
|
||
|
||
Reviewed-by: Marc Hörsken
|
||
|
||
Closes #6066
|
||
Fixes #6052
|
||
|
||
- tests/server/util.c: fix support for Windows Unicode builds
|
||
|
||
Detected via #6066
|
||
Closes #6070
|
||
|
||
Daniel Stenberg (13 Oct 2020)
|
||
- [Jay Satiro brought this change]
|
||
|
||
strerror: Revert to local codepage for Windows error string
|
||
|
||
- Change get_winapi_error() to return the error string in the local
|
||
codepage instead of UTF-8 encoding.
|
||
|
||
Two weeks ago bed5f84 fixed get_winapi_error() to work on xbox, but it
|
||
also changed the error string's encoding from local codepage to UTF-8.
|
||
|
||
We return the local codepage version of the error string because if it
|
||
is output to the user's terminal it will likely be with functions which
|
||
expect the local codepage (eg fprintf, failf, infof).
|
||
|
||
This is essentially a partial revert of bed5f84. The support for xbox
|
||
remains but the error string is reverted back to local codepage.
|
||
|
||
Ref: https://github.com/curl/curl/pull/6005
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Closes #6065
|
||
|
||
Marc Hoersken (13 Oct 2020)
|
||
- CI/tests: use verification curl for test reporting APIs
|
||
|
||
Avoid using our own, potentially installed, curl for
|
||
the test reporting APIs in case it is broken.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Preparation for #6049
|
||
Closes #6063
|
||
|
||
Viktor Szakats (12 Oct 2020)
|
||
- windows: fix comparison of mismatched types warning
|
||
|
||
clang 10, mingw-w64:
|
||
```
|
||
vtls/openssl.c:2917:33: warning: comparison of integers of different signs: 'DWORD' (aka 'unsigned long') and 'HRESULT' (aka 'long')
|
||
[-Wsign-compare]
|
||
if(GetLastError() != CRYPT_E_NOT_FOUND)
|
||
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
|
||
```
|
||
|
||
Approved-by: Daniel Stenberg
|
||
Closes #6062
|
||
|
||
Daniel Stenberg (11 Oct 2020)
|
||
- [Viktor Szakats brought this change]
|
||
|
||
src/Makefile.m32: fix undefined curlx_dyn_* errors
|
||
|
||
by linking `lib/dynbuf.c` when building a static curl binary.
|
||
Previously this source file was only included when building
|
||
a dynamic curl binary. This was likely possibly because no
|
||
functions from the `src/Makefile.inc` / `CURLX_CFILES` sources
|
||
were actually required for a curl tool build. This has
|
||
recently changed with the introduction of `curlx_dyn_*()`
|
||
memory functions and their use by the tool sources.
|
||
|
||
Closes #6060
|
||
|
||
- HISTORY: curl verifies SSL certs by default since version 7.10
|
||
|
||
Marc Hoersken (8 Oct 2020)
|
||
- runtests.pl: use $LIBDIR variable instead of hardcoded path
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Closes #6051
|
||
|
||
Daniel Stenberg (7 Oct 2020)
|
||
- checksrc: detect // comments on column 0
|
||
|
||
Spotted while working on #6045
|
||
|
||
Closes #6048
|
||
|
||
- [Frederik Wedel-Heinen brought this change]
|
||
|
||
mbedtls: add missing header when defining MBEDTLS_DEBUG
|
||
|
||
Closes #6045
|
||
|
||
- curl: make sure setopt CURLOPT_IPRESOLVE passes on a long
|
||
|
||
Previously, it would pass on a define (int) which could make libcurl
|
||
read junk as a value - which prevented the CURLOPT_IPRESOLVE option to
|
||
"take". This could then make test 2100 do two DoH requests instead of
|
||
one!
|
||
|
||
Fixes #6042
|
||
Closes #6043
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- scripts/release-notes.pl: don't "embed" $ in format string for printf()
|
||
|
||
... since they might contain %-codes that mess up the output!
|
||
|
||
Jay Satiro (5 Oct 2020)
|
||
- [M.R.T brought this change]
|
||
|
||
build-wolfssl: fix build with Visual Studio 2019
|
||
|
||
Closes https://github.com/curl/curl/pull/6033
|
||
|
||
Daniel Stenberg (4 Oct 2020)
|
||
- runtests: add %repeat[]% for test files
|
||
|
||
... and use this new keywords in all the test files larger than 50K to reduce
|
||
their sizes and make them a lot easier to read and understand.
|
||
|
||
Closes #6040
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
--help: move two options from the misc category
|
||
|
||
The cmdline opts delegation and suppress-connect-headers
|
||
fit better into auth and proxy rather than misc.
|
||
|
||
Follow-up to aa8777f63febc
|
||
Closes #6038
|
||
|
||
- [Samanta Navarro brought this change]
|
||
|
||
docs/opts: fix typos in two manual pages
|
||
|
||
Closes #6039
|
||
|
||
- ldap: reduce the amount of #ifdefs needed
|
||
|
||
Closes #6035
|
||
|
||
- runtests: provide curl's version string as %VERSION for tests
|
||
|
||
... so that we can check HTTP requests for User-Agent: curl/%VERSION
|
||
|
||
Update 600+ test cases accordingly.
|
||
|
||
Closes #6037
|
||
|
||
- checksrc: warn on space after exclamation mark
|
||
|
||
Closes #6034
|
||
|
||
- test1465: verify --libcurl with binary POST data
|
||
|
||
- runtests: allow generating a binary sequence from hex
|
||
|
||
- tool_setopt: escape binary data to hex, not octal
|
||
|
||
- curl: make --libcurl show binary posts correctly
|
||
|
||
Reported-by: Stephan Mühlstrasser
|
||
Fixes #6031
|
||
Closes #6032
|
||
|
||
Jay Satiro (1 Oct 2020)
|
||
- strerror: fix null deref on winapi out-of-memory
|
||
|
||
Follow-up to bed5f84 from several days ago.
|
||
|
||
Ref: https://github.com/curl/curl/pull/6005
|
||
|
||
Daniel Stenberg (1 Oct 2020)
|
||
- [Kamil Dudka brought this change]
|
||
|
||
vtls: deduplicate some DISABLE_PROXY ifdefs
|
||
|
||
... in the code of gtls, nss, and openssl
|
||
|
||
Closes #5735
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
TODO: Add OpenBSD libtool notice
|
||
|
||
See #5862
|
||
Closes #6030
|
||
|
||
- tests/unit/README: convert to markdown
|
||
|
||
... and add to dist!
|
||
|
||
Closes #6028
|
||
|
||
- tests/README: convert to markdown
|
||
|
||
Closes #6028
|
||
|
||
- include/README: convert to markdown
|
||
|
||
Closes #6028
|
||
|
||
- examples/README: convert to markdown
|
||
|
||
Closes #6028
|
||
|
||
- configure: don't say HTTPS-proxy is enabled when disabled!
|
||
|
||
Reported-by: Kamil Dudka
|
||
Reviewed-by: Kamil Dudka
|
||
Bug: https://github.com/curl/curl/pull/5735#issuecomment-701376388
|
||
Closes #6029
|
||
|
||
Daniel Gustafsson (30 Sep 2020)
|
||
- src: Consistently spell whitespace without whitespace
|
||
|
||
Whitespace is spelled without a space between white and space, so
|
||
make sure to consistently spell it that way across the codebase.
|
||
|
||
Closes #6023
|
||
Reviewed-by: Daniel Stenberg <[email protected]>
|
||
Reviewed-by: Emil Engler <[email protected]>
|
||
|
||
- MANUAL: update examples to resolve without redirects
|
||
|
||
www.netscape.com is redirecting to a cookie consent form on Aol, and
|
||
cool.haxx.se isn't responding to FTP anymore. Replace with examples
|
||
that resolves in case users try out the commands when reading the
|
||
manual.
|
||
|
||
Closes #6024
|
||
Reviewed-by: Daniel Stenberg <[email protected]>
|
||
Reviewed-by: Emil Engler <[email protected]>
|
||
|
||
Daniel Stenberg (30 Sep 2020)
|
||
- HISTORY: add some 2020 events
|
||
|
||
- sectransp: make it build with --disable-proxy
|
||
|
||
Follow-up from #5466 and f3d501dc678d80
|
||
Reported-by: Javier Navarro
|
||
Fixes #6025
|
||
Closes #6026
|
||
|
||
- ECH: renamed from ESNI in docs and configure
|
||
|
||
Encrypted Client Hello (ECH) is the current name.
|
||
|
||
Closes #6022
|
||
|
||
- configure: use "no" instead of "disabled" for the end summary
|
||
|
||
... for consistency but also to make them more distinctly stand out next
|
||
to the "enabled" lines.
|
||
|
||
- TODO: SSH over HTTPS proxy with more backends
|
||
|
||
... as right now only the libssh2 backend supports it.
|
||
|
||
- libssh2: handle the SSH protocols done over HTTPS proxy
|
||
|
||
Reported-by: Robin Douine
|
||
Fixes #4295
|
||
Closes #6021
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
memdebug: remove 9 year old unused debug function
|
||
|
||
There used to be a way to have memdebug fill allocated memory. 9 years
|
||
later this has no value there (valgrind and ASAN etc are way better). If
|
||
people need to know about it they can have a look at VCS logs.
|
||
|
||
Closes #5973
|
||
|
||
- sendf: move Curl_sendf to dict.c and make it static
|
||
|
||
... as the only remaining user of that function. Also fix gopher.c to
|
||
instead use Curl_write()
|
||
|
||
Closes #6020
|
||
|
||
- ROADMAP: updates and cleanups
|
||
|
||
Fix the HSTS PR
|
||
|
||
Remove DoT, thread-safe init and hard-coded localhost. I feel very
|
||
little interest for these with users so I downgrade them to plain "TODO"
|
||
entries again.
|
||
|
||
- schannel: return CURLE_PEER_FAILED_VERIFICATION for untrusted root
|
||
|
||
This matches what is returned in other TLS backends in the same
|
||
situation.
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Emil Engler
|
||
Follow-up to 5a3efb1
|
||
Reported-by: iammrtau on github
|
||
Fixes #6003
|
||
Closes #6018
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- ftp: make a 552 response return CURLE_REMOTE_DISK_FULL
|
||
|
||
Added test 348 to verify. Added a 'STOR' command to the test FTP
|
||
server to enable test 348. Documented the command in FILEFORMAT.md
|
||
|
||
Reported-by: Duncan Wilcox
|
||
Fixes #6016
|
||
Closes #6017
|
||
|
||
- pause: only trigger a reread if the unpause sticks
|
||
|
||
As an unpause might itself get paused again and then triggering another
|
||
reread doesn't help.
|
||
|
||
Follow-up from e040146f22608fd9 (shipped since 7.69.1)
|
||
|
||
Bug: https://curl.haxx.se/mail/lib-2020-09/0081.html
|
||
Patch-by: Kunal Chandarana
|
||
Fixes #5988
|
||
Closes #6013
|
||
|
||
- test163[12]: require http to be built-in to run
|
||
|
||
... as speaking over an HTTPS proxy implies http!
|
||
|
||
Closes #6014
|
||
|
||
- ngtcp2: adapt to new NGTCP2_PROTO_VER_MAX define
|
||
|
||
Closes #6012
|
||
|
||
- [Javier Blazquez brought this change]
|
||
|
||
strerror: honor Unicode API choice on Windows
|
||
|
||
Closes #6005
|
||
|
||
- imap: make imap_send use dynbuf for the send buffer management
|
||
|
||
Reuses the buffer and thereby reduces number of mallocs over a transfer.
|
||
|
||
Closes #6010
|
||
|
||
- Curl_send: return error when pre_receive_plain can't malloc
|
||
|
||
... will probably trigger some false DEAD CODE positives on non-windows
|
||
code analyzers for the conditional code.
|
||
|
||
Closes #6011
|
||
|
||
- ftp: separate FTPS from FTP over "HTTPS proxy"
|
||
|
||
When using HTTPS proxy, SSL is used but not in the view of the FTP
|
||
protocol handler itself so separate the connection's use of SSL from the
|
||
FTP control connection's sue.
|
||
|
||
Reported-by: Mingtao Yang
|
||
Fixes #5523
|
||
Closes #6006
|
||
|
||
Dan Fandrich (23 Sep 2020)
|
||
- tests/data: Fix some mismatched XML tags in test cases
|
||
|
||
This allows these test files to pass xmllint.
|
||
|
||
Daniel Stenberg (23 Sep 2020)
|
||
- pingpong: use a dynbuf for the *_pp_sendf() function
|
||
|
||
... reuses the same dynamic buffer instead of doing repeated malloc/free
|
||
cycles.
|
||
|
||
Test case 100 (FTP dir list PASV) does 7 fewer memory allocation calls
|
||
after this change in my test setup (132 => 125), curl 7.72.0 needed 140
|
||
calls for this.
|
||
|
||
Test case 103 makes 9 less allocations now (130). Down from 149 in
|
||
7.72.0.
|
||
|
||
Closes #6004
|
||
|
||
- dynbuf: add Curl_dyn_vaddf
|
||
|
||
Closes #6004
|
||
|
||
- dynbuf: make *addf() not require extra mallocs
|
||
|
||
... by introducing a printf() function that appends directly into a
|
||
dynbuf: Curl_dyn_vprintf(). This avoids the mandatory extra malloc so if
|
||
the buffer is already big enough it can just printf directly into it.
|
||
|
||
Since this less-malloc version requires tthe use of a library internal
|
||
printf function, we only provide this version when building libcurl and
|
||
not for the dynbuf code that is used when building the curl tool.
|
||
|
||
Closes #5998
|
||
|
||
- KNOWN_BUGS: Unable to use PKCS12 certificate with Secure Transport
|
||
|
||
Closes #5403
|
||
|
||
- pingpong: remove a malloc per Curl_pp_vsendf call
|
||
|
||
This typically makes 7-9 fewer mallocs per FTP transfer.
|
||
|
||
Closes #5997
|
||
|
||
- symbian: drop support
|
||
|
||
The OS is deprecated. I see no traces of anyone having actually built
|
||
curl for Symbian after 2012.
|
||
|
||
The public headers are unmodified.
|
||
|
||
Closes #5989
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- curl_krb5.h: rename from krb5.h
|
||
|
||
Follow-up from f4873ebd0be32cf
|
||
|
||
Turns out some older openssl installations go bananas otherwise.
|
||
Reported-by: Tom van der Woerdt
|
||
Fixes #5995
|
||
Closes #5996
|
||
|
||
- test1297: verify GOT_NOTHING with http proxy tunnel
|
||
|
||
- http_proxy: do not count proxy headers in the header bytecount
|
||
|
||
... as that counter is subsequently used to detect if nothing was
|
||
returned from the peer. This made curl return CURLE_OK when it should
|
||
have returned CURLE_GOT_NOTHING.
|
||
|
||
Fixes #5992
|
||
Reported-by: Tom van der Woerdt
|
||
Closes #5994
|
||
|
||
- setopt: return CURLE_BAD_FUNCTION_ARGUMENT on bad argument
|
||
|
||
Fixed two return code mixups. CURLE_UNKNOWN_OPTION is saved for when the
|
||
option is, yeah, not known. Clarified this in the setopt man page too.
|
||
|
||
Closes #5993
|
||
|
||
- krb5: merged security.c and krb specific FTP functions in here
|
||
|
||
These two files were always tightly connected and it was hard to
|
||
understand what went into which. This also allows us to make the
|
||
ftpsend() function static (moved from ftp.c).
|
||
|
||
Removed security.c
|
||
Renamed curl_sec.h to krb5.h
|
||
|
||
Closes #5987
|
||
|
||
- Curl_handler: add 'family' to each protocol
|
||
|
||
Makes get_protocol_family() faster and it moves the knowledge about the
|
||
"families" to each protocol handler, where it belongs.
|
||
|
||
Closes #5986
|
||
|
||
- parsedate: tune the date to epoch conversion
|
||
|
||
By avoiding an unnecessary error check and the temp use of the tm
|
||
struct, the time2epoch conversion function gets a little bit faster.
|
||
When repeating test 517, the updated version is perhaps 1% faster (on
|
||
one particular build on one particular architecture).
|
||
|
||
Closes #5985
|
||
|
||
- cmake: remove scary warning
|
||
|
||
Remove the text saying
|
||
|
||
"the curl cmake build system is poorly maintained. Be aware"
|
||
|
||
... not because anything changed just now, but to encourage users to use
|
||
it and subsequently improve it.
|
||
|
||
Closes #5984
|
||
|
||
- docs/MQTT: remove outdated paaragraphs
|
||
|
||
- docs/MQTT: not experimental anymore
|
||
|
||
Follow-up to e37e4468688d8f
|
||
|
||
- docs/RESOURCES: remove
|
||
|
||
This document is not maintained and rather than trying to refresh it,
|
||
let's kill it. A more up-to-date document with relevant RFCs is this
|
||
page on the curl website: https://curl.haxx.se/rfc/
|
||
|
||
Closes #5980
|
||
|
||
- docs/TheArtOfHttpScripting: convert to markdown
|
||
|
||
Makes it easier to browse on github etc. Offers (better) links.
|
||
|
||
It should be noted that this document is already mostly outdated and
|
||
"Everything curl" at https://ec.haxx.se/ is a better resource and
|
||
tutorial.
|
||
|
||
Closes #5981
|
||
|
||
- BUGS: convert document to markdown
|
||
|
||
Closes #5979
|
||
|
||
- --help: strdup the category
|
||
|
||
... since it is converted and the original pointer is freed on Windows
|
||
unicode handling.
|
||
|
||
Follow-up to aa8777f63febc
|
||
Fixes #5977
|
||
Closes #5978
|
||
Reported-by: xwxbug on github
|
||
|
||
- CHECKSRC: document two missing warnings
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- ftp: avoid risk of reading uninitialized integers
|
||
|
||
If the received PASV response doesn't match the expected pattern, we
|
||
could end up reading uninitialized integers for IP address and port
|
||
number.
|
||
|
||
Issue pointed out by muse.dev
|
||
Closes #5972
|
||
|
||
- [Quentin Balland brought this change]
|
||
|
||
easy_reset: clear retry counter
|
||
|
||
Closes #5975
|
||
Fixes #5974
|
||
|
||
- ftp: get rid of the PPSENDF macro
|
||
|
||
The use of such a macro hides some of what's actually going on to the
|
||
reader and is generally disapproved of in the project.
|
||
|
||
Closes #5971
|
||
|
||
- man pages: switch to https://example.com URLs
|
||
|
||
Since HTTPS is "the new normal", this update changes a lot of man page
|
||
examples to use https://example.com instead of the previous "http://..."
|
||
|
||
Closes #5969
|
||
|
||
- github: remove the duplicate "Security vulnerability" entry
|
||
|
||
... since github adds an entry automatically by itself.
|
||
|
||
Closes #5970
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
github: use new issue template feature
|
||
|
||
This helps us to avoid getting feature requests as well as security
|
||
bugs reported into the issue tracker.
|
||
|
||
Closes #5936
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
urlapi: use more Curl_safefree
|
||
|
||
Closes #5968
|
||
|
||
Marc Hoersken (17 Sep 2020)
|
||
- multi: align WinSock mask variables in Curl_multi_wait
|
||
|
||
Also skip pre-checking sockets to set timeout_ms to 0
|
||
after the first socket has been detected to be ready.
|
||
|
||
Reviewed-by: rcombs on github
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Follow up to #5886
|
||
|
||
- multi: reuse WinSock events variable in Curl_multi_wait
|
||
|
||
Since the struct is quite large (1 long and 10 ints) we
|
||
declare it once at the beginning of the function instead
|
||
of multiple times inside loops to avoid stack movements.
|
||
|
||
Reviewed-by: Viktor Szakats
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Closes #5886
|
||
|
||
Daniel Stenberg (16 Sep 2020)
|
||
- TODO: dynamically decide to use socketpair
|
||
|
||
Suggested-by: Anders Bakken
|
||
|
||
Closes #4829
|
||
|
||
- TODO: add PR reference for native IDN support on macOS
|
||
|
||
As there was work started on this that never got completed.
|
||
|
||
Closes #5371
|
||
|
||
- tool_help.h: update copyright year range
|
||
|
||
Follow-up from aa8777f63febca
|
||
|
||
- CI/azure: disable test 571 in the msys2 builds
|
||
|
||
It's just too flaky there
|
||
|
||
Reviewed-by: Marc Hoersken
|
||
Closes #5954
|
||
|
||
- tool_writeout: protect fputs() from NULL
|
||
|
||
When the code was changed to do fputs() instead of fprintf() it got
|
||
sensitive for NULL pointers; add checks for that.
|
||
|
||
Follow-up from 0c1e767e83ec66
|
||
|
||
Closes #5963
|
||
|
||
- test3015: verify stdout "as text"
|
||
|
||
Follow-up from 0c1e767e83e to please win32 tests
|
||
|
||
Closes #5962
|
||
|
||
- travis: use libressl v3.1.4 instead of master
|
||
|
||
... as their git master seems too fragile to use (and 3.2.1 which is the
|
||
latest has a build failure).
|
||
|
||
Closes #5964
|
||
|
||
- tests/FILEFORMAT: document type=shell for <command>
|
||
|
||
- tests/FILEFORMAT: document nonewline support for <file>
|
||
|
||
The one in <client>, that creates files.
|
||
|
||
Follow-up from b83947c8df7
|
||
|
||
- [anio brought this change]
|
||
|
||
tool_writeout: add new writeout variable, %{num_headers}
|
||
|
||
This variable gives the number of headers.
|
||
|
||
Closes #5947
|
||
|
||
- tool_urlglob: fix compiler warning "unreachable code"
|
||
|
||
(On Windows builds.)
|
||
|
||
Follow-up to 70a3b003d9
|
||
|
||
- [Gergely Nagy brought this change]
|
||
|
||
vtls: deduplicate client certificates in ssl_config_data
|
||
|
||
Closes #5629
|
||
|
||
- ftp: a 550 response to SIZE returns CURLE_REMOTE_FILE_NOT_FOUND
|
||
|
||
This is primarily interesting for cases where CURLOPT_NOBODY is set as
|
||
previously curl would not return an error for this case.
|
||
|
||
MDTM getting 550 now also returns this error (it returned
|
||
CURLE_FTP_COULDNT_RETR_FILE before) in order to unify return codes for
|
||
missing files across protocols and specific FTP commands.
|
||
|
||
libcurl already returns error on a 550 as a MDTM response (when
|
||
CURLOPT_FILETIME is set). If CURLOPT_NOBODY is not set, an error would
|
||
happen subsequently anyway since the RETR command would fail.
|
||
|
||
Add test 1913 and 1914 to verify. Updated several tests accordingly due
|
||
to the updated SIZE behavior.
|
||
|
||
Reported-by: Tomas Berger
|
||
Fixes #5953
|
||
Closes #5957
|
||
|
||
- curl: make checkpasswd use dynbuf
|
||
|
||
Closes #5952
|
||
|
||
- curl: make glob_match_url use dynbuf
|
||
|
||
Closes #5952
|
||
|
||
- curl: make file2memory use dynbuf
|
||
|
||
Closes #5952
|
||
|
||
- curl: make file2string use dynbuf
|
||
|
||
Closes #5952
|
||
|
||
- [Antarpreet Singh brought this change]
|
||
|
||
imap: set cselect_bits to CURL_CSELECT_IN initially
|
||
|
||
... when continuing a transfer from a FETCH response.
|
||
|
||
When the size of the file was small enough that the entirety of the
|
||
transfer happens in a single go and schannel buffers holds the entire
|
||
data. However, it wasn't completely read in Curl_pp_readresp since a
|
||
line break was found before that could happen. So, by the time we are in
|
||
imap_state_fetch_resp - there's data in buffers that needs to be read
|
||
via Curl_read but nothing to read from the socket. After we setup a
|
||
transfer (Curl_setup_transfer), curl just waits on the socket state to
|
||
change - which doesn't happen since no new data ever comes.
|
||
|
||
Closes #5961
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- test434: test -K use in a single line without newline
|
||
|
||
Closes #5946
|
||
|
||
- runtests: allow creating files without newlines
|
||
|
||
Closes #5946
|
||
|
||
- curl: use curlx_dynbuf for realloc when loading config files
|
||
|
||
... fixes an integer overflow at the same time.
|
||
|
||
Reported-by: ihsinme on github
|
||
Assisted-by: Jay Satiro
|
||
|
||
Closes #5946
|
||
|
||
- dynbuf: provide curlx_ names for reuse by the curl tool
|
||
|
||
Closes #5946
|
||
|
||
- dynbuf: make sure Curl_dyn_tail() zero terminates
|
||
|
||
Closes #5959
|
||
|
||
- tests: add test1912 to the dist
|
||
|
||
Follow-up to 70984ce1be4cab6c
|
||
|
||
- docs/LICENSE-MIXING: remove
|
||
|
||
This document is not maintained and I feel that it doesn't provide much
|
||
value to users anymore (if it ever did).
|
||
|
||
Closes #5955
|
||
|
||
- [Laramie Leavitt brought this change]
|
||
|
||
http: consolidate nghttp2_session_mem_recv() call paths
|
||
|
||
Previously there were several locations that called
|
||
nghttp2_session_mem_recv and handled responses slightly differently.
|
||
Those have been converted to call the existing
|
||
h2_process_pending_input() function.
|
||
|
||
Moved the end-of-session check to h2_process_pending_input() since the
|
||
only place the end-of-session state can change is after nghttp2
|
||
processes additional input frames.
|
||
|
||
This will likely fix the fuzzing error. While I don't have a root cause
|
||
the out-of-bounds read seems like a use after free, so moving the
|
||
nghttp2_session_check_request_allowed() call to a location with a
|
||
guaranteed nghttp2 session seems reasonable.
|
||
|
||
Also updated a few nghttp2 callsites to include error messages and added
|
||
a few additional error checks.
|
||
|
||
Closes #5648
|
||
|
||
- HISTORY: mention alt-svc added in 2019
|
||
|
||
... and make 1996 the first year subtitle
|
||
|
||
- base64: also build for pop3 and imap
|
||
|
||
Follow-up to the fix in 20417a13fb8f83
|
||
|
||
Reported-by: Michael Olbrich
|
||
Fixes #5937
|
||
Closes #5948
|
||
|
||
- base64: enable in build with SMTP
|
||
|
||
The oauth2 support is used with SMTP and it uses base64 functions.
|
||
|
||
Reported-by: Michael Olbrich
|
||
Fixes #5937
|
||
Closes #5938
|
||
|
||
- curl_mime_headers.3: fix the example's use of curl_slist_append
|
||
|
||
Reported-by: sofaboss on github
|
||
Fixes #5942
|
||
Closes #5943
|
||
|
||
- lib583: fix enum mixup
|
||
|
||
grrr the previous follow-up to 17fcdf6a31 was wrong
|
||
|
||
- libtest: fix build errors
|
||
|
||
Follow-up from 17fcdf6a310d4c8076
|
||
|
||
- lib: fix -Wassign-enum warnings
|
||
|
||
configure --enable-debug now enables -Wassign-enum with clang,
|
||
identifying several enum "abuses" also fixed.
|
||
|
||
Reported-by: Gisle Vanem
|
||
Bug: https://github.com/curl/curl/commit/879007f8118771f4896334731aaca5850a154675#commitcomment-42087553
|
||
|
||
Closes #5929
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Diven Qi brought this change]
|
||
|
||
url: use blank credentials when using proxy w/o username and password
|
||
|
||
Fixes proxy regression brought in commit ad829b21ae (7.71.0)
|
||
|
||
Fixed #5911
|
||
Closes #5914
|
||
|
||
- travis: add a build using libressl (from git master)
|
||
|
||
The v3.2.1 tag (latest release atm) results in a broken build.
|
||
|
||
Closes #5932
|
||
|
||
- configure: let --enable-debug set -Wenum-conversion with gcc >= 10
|
||
|
||
Unfortunately, this option is not detecting the same issues as clang's
|
||
-Wassign-enum flag, but should still be useful to detect future
|
||
mistakes.
|
||
|
||
Closes #5930
|
||
|
||
- openssl: consider ALERT_CERTIFICATE_EXPIRED a failed verification
|
||
|
||
If the error reason from the lib is
|
||
SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED, libcurl will return
|
||
CURLE_PEER_FAILED_VERIFICATION and not CURLE_SSL_CONNECT_ERROR.
|
||
|
||
This unifies the libcurl return code and makes libressl run test 313
|
||
(CRL testing) fine.
|
||
|
||
Closes #5934
|
||
|
||
- FAQ: refreshed some very old language
|
||
|
||
- cmake: make HTTP_ONLY also disable MQTT
|
||
|
||
... and alphasort the order of disabling protocols to make it easier to
|
||
browse.
|
||
|
||
Closes #5931
|
||
|
||
- libtest: remove lib1541 leftovers
|
||
|
||
Caused automake errors.
|
||
|
||
Follow-up to 8ca54a03ea08a
|
||
|
||
- tests/libtests: remove test 1900 and 2033
|
||
|
||
We already remove the test files, now remove the libtest codes as well.
|
||
|
||
Follow-up to e50a877df74
|
||
|
||
Marc Hoersken (7 Sep 2020)
|
||
- CI/azure: add test number to title for display in analytics
|
||
|
||
To ease identification of tests the test number is added to
|
||
the test case title in order to have it on the Azure DevOps
|
||
Analytics pages and reports which currently do not show it.
|
||
|
||
Bump test case revision to make Azure DevOps update titles.
|
||
|
||
Closes #5927
|
||
|
||
Daniel Stenberg (6 Sep 2020)
|
||
- altsvc: clone setting in curl_easy_duphandle
|
||
|
||
The cache content is not duplicated, like other caches, but the setting
|
||
and specified file name are.
|
||
|
||
Test 1908 is extended to verify this somewhat. Since the duplicated
|
||
handle gets the same file name, the test unfortunately overwrites the
|
||
same file twice (with different contents) which makes it hard to check
|
||
automatically.
|
||
|
||
Closes #5923
|
||
|
||
- test1541: remove since it is a known bug
|
||
|
||
A shared connection cache is not thread-safe is a known issue. Stop
|
||
testing this until we believe this issue is addressed. Reduces
|
||
occasional test failures we don't care about.
|
||
|
||
The test code in lib1541.c is left in git to allow us to restore it when
|
||
we get to fix this.
|
||
|
||
Closes #5922
|
||
|
||
- tests: remove pipelining tests
|
||
|
||
Remove the tests 530, 584, 1900, 1901, 1902, 1903 and 2033. They were
|
||
previously disabled.
|
||
|
||
The Pipelining code was removed from curl in commit 2f44e94efb3df8e,
|
||
April 2019.
|
||
|
||
Closes #5921
|
||
|
||
- curl: retry delays in parallel mode no longer sleeps blocking
|
||
|
||
The previous sleep for retries would block all other concurrent
|
||
transfers. Starting now, the retry will instead be properly marked to
|
||
not get restarted until after the delay time but other transfers can
|
||
still continue in the mean time.
|
||
|
||
Closes #5917
|
||
|
||
- curl:parallel_transfers: make sure retry readds the transfer
|
||
|
||
Reported-by: htasta on github
|
||
Fixes #5905
|
||
Closes #5917
|
||
|
||
- build: drop support for building with Watcom
|
||
|
||
These files are not maintained, they seem to have no users, Watcom
|
||
compilers look like not having users nor releases anymore.
|
||
|
||
Closes #5918
|
||
|
||
- winbuild/rundebug.cmd: remove
|
||
|
||
Seems to have been added by mistake? Not included in dists.
|
||
|
||
Closes #5919
|
||
|
||
- curl: in retry output don't call all problems "transient"
|
||
|
||
... because when --retry-all-errors is used, the error isn't necessarily
|
||
transient at all.
|
||
|
||
Closes #5916
|
||
|
||
- easygetopt: pass a valid enum to avoid compiler warning
|
||
|
||
"integer constant not in range of enumerated type 'CURLoption'"
|
||
|
||
Reported-by: Gisle Vanem
|
||
Bug: https://github.com/curl/curl/commit/6ebe63fac23f38df911edc348e8ccc72280f9434#commitcomment-42042843
|
||
|
||
Closes #5915
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
tests: Add tests for new --help
|
||
|
||
This commit is a part of "--help me if you can"
|
||
|
||
Closes #5680
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
tool: update --help with categories
|
||
|
||
This commit is a part of "--help me if you can"
|
||
|
||
Closes #5680
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
docs: add categories to all cmdline opts
|
||
|
||
Adapted gen.pl with 'listcats'
|
||
|
||
This commit is a part of "--help me if you can"
|
||
|
||
Closes #5680
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [ihsinme brought this change]
|
||
|
||
connect.c: remove superfluous 'else' in Curl_getconnectinfo
|
||
|
||
Closes #5912
|
||
|
||
- [Samuel Marks brought this change]
|
||
|
||
CMake: remove explicit `CMAKE_ANSI_CFLAGS`
|
||
|
||
This variable was removed from cmake in commit
|
||
https://gitlab.kitware.com/cmake/cmake/commit/5a834b0bb0bc288. A later
|
||
CMake commit removes the variable from the tests, claiming that it was
|
||
removed in CMake 2.6
|
||
|
||
Reviewed-By: Peter Wu
|
||
Closes #5439
|
||
|
||
- [cbe brought this change]
|
||
|
||
libssh2: pass on the error from ssh_force_knownhost_key_type
|
||
|
||
Closes #5909
|
||
|
||
- scripts/delta: add diffstat summary
|
||
|
||
... and make output more table-like
|
||
|
||
- [Martin Bašti brought this change]
|
||
|
||
http_proxy: do not crash with HTTPS_PROXY and NO_PROXY set
|
||
|
||
... in case NO_PROXY takes an effect
|
||
|
||
Without this patch, the following command crashes:
|
||
|
||
$ GIT_CURL_VERBOSE=1 NO_PROXY=github.com HTTPS_PROXY=https://example.com \
|
||
git clone https://github.com/curl/curl.git
|
||
|
||
Minimal libcurl-based reproducer:
|
||
|
||
#include <curl/curl.h>
|
||
|
||
int main() {
|
||
CURL *curl = curl_easy_init();
|
||
if(curl) {
|
||
CURLcode ret;
|
||
curl_easy_setopt(curl, CURLOPT_URL, "https://github.com/");
|
||
curl_easy_setopt(curl, CURLOPT_PROXY, "example.com");
|
||
/* set the proxy type */
|
||
curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS);
|
||
curl_easy_setopt(curl, CURLOPT_NOPROXY, "github.com");
|
||
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
||
ret = curl_easy_perform(curl);
|
||
curl_easy_cleanup(curl);
|
||
return ret;
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
Assisted-by: Kamil Dudka
|
||
Bug: https://bugzilla.redhat.com/1873327
|
||
Closes #5902
|
||
|
||
- travis: add a CI job with openssl3 (from git master)
|
||
|
||
Closes #5908
|
||
|
||
- openssl: avoid error conditions when importing native CA
|
||
|
||
The code section that is OpenSSL 3+ specific now uses the same logic as
|
||
is used in the version < 3 section. It caused a compiler error without
|
||
it.
|
||
|
||
Closes #5907
|
||
|
||
- setopt: avoid curl_ on local variable
|
||
|
||
Closes #5906
|
||
|
||
- mqtt.c: avoid curl_ prefix on local variable
|
||
|
||
Closes #5906
|
||
|
||
- wildcard: strip "curl_" prefix from private symbols
|
||
|
||
Closes #5906
|
||
|
||
- vtls: make it 'struct Curl_ssl_session'
|
||
|
||
Use uppercase C for internal symbols.
|
||
|
||
Closes #5906
|
||
|
||
- curl_threads: make it 'struct Curl_actual_call'
|
||
|
||
Internal names should not be prefixed "curl_"
|
||
|
||
Closes #5906
|
||
|
||
- schannel: make it 'struct Curl_schannel*'
|
||
|
||
As internal global names should use captical C.
|
||
|
||
Closes #5906
|
||
|
||
- hash: make it 'struct Curl_hash'
|
||
|
||
As internal global names should use captical C.
|
||
|
||
Closes #5906
|
||
|
||
- llist: make it "struct Curl_llist"
|
||
|
||
As internal global names should use captical C.
|
||
|
||
Closes #5906
|
||
|
||
Marc Hoersken (2 Sep 2020)
|
||
- telnet.c: depend on static requirement of WinSock version 2
|
||
|
||
Drop dynamic loading of ws2_32.dll and instead rely on the
|
||
imported version which is now required to be at least 2.2.
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Daniel Stenberg
|
||
Reviewed-by: Viktor Szakats
|
||
|
||
Closes #5854
|
||
|
||
- win32: drop support for WinSock version 1, require version 2
|
||
|
||
IPv6, telnet and now also the multi API require WinSock
|
||
version 2 which is available starting with Windows 95.
|
||
|
||
Therefore we think it is time to drop support for version 1.
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Daniel Stenberg
|
||
Reviewed-by: Viktor Szakats
|
||
|
||
Follow up to #5634
|
||
Closes #5854
|
||
|
||
- select: align poll emulation to return all relevant events
|
||
|
||
The poll emulation via select already consumes POLLRDNORM,
|
||
POLLWRNORM and POLLRDBAND as input events. Therefore it
|
||
should also return them as output events if signaled.
|
||
|
||
Also fix indentation in input event handling block.
|
||
|
||
Assisted-by: Jay Satiro
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Replaces #5852
|
||
Closes #5883
|
||
|
||
- CI/azure: MQTT is now enabled by default
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Follow up to #5858
|
||
Closes #5903
|
||
|
||
Daniel Stenberg (2 Sep 2020)
|
||
- copyright.pl: ignore buildconf
|
||
|
||
- test971: show test mismatches "inline"
|
||
|
||
- lib/Makefile.am: bump VERSIONINFO due to new functions
|
||
|
||
... we're generally bad at this, but we are adding new functions for
|
||
this release.
|
||
|
||
Closes #5899
|
||
|
||
- optiontable: use DEBUGBUILD
|
||
|
||
Follow-up to commit 6e18568ba38 (#5877)
|
||
|
||
- cmdline-opts/gen.pl: generate nicer "See Also" in curl.1
|
||
|
||
If there are more than two items in the list, use commas for all but the
|
||
last separator which is set to 'and'. Reads better.
|
||
|
||
Closes #5898
|
||
|
||
- curl.1: add see also no-progress-meter on two spots
|
||
|
||
Ref: #5894
|
||
|
||
Closes #5897
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- mqtt: enable by default
|
||
|
||
No longer considered experimental.
|
||
|
||
Closes #5858
|
||
|
||
- [Michael Baentsch brought this change]
|
||
|
||
tls: add CURLOPT_SSL_EC_CURVES and --curves
|
||
|
||
Closes #5892
|
||
|
||
- url: remove funny embedded comments in Curl_disonnect calls
|
||
|
||
- [Chris Paulson-Ellis brought this change]
|
||
|
||
conn: check for connection being dead before reuse
|
||
|
||
Prevents incorrect reuse of an HTTP connection that has been prematurely
|
||
shutdown() by the server.
|
||
|
||
Partial revert of 755083d00deb16
|
||
|
||
Fixes #5884
|
||
Closes #5893
|
||
|
||
Marc Hoersken (29 Aug 2020)
|
||
- buildconf: exec autoreconf to avoid additional process
|
||
|
||
Also make buildconf exit with the return code of autoreconf.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Follow up to #5853
|
||
Closes #5890
|
||
|
||
- CI/azure: no longer ignore results of test 1013
|
||
|
||
Follow up to #5771
|
||
Closes #5889
|
||
|
||
- docs: add description about CI platforms to CONTRIBUTE.md
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Reviewed-by: Marcel Raad
|
||
Reviewed-by: Jay Satiro
|
||
|
||
Closes #5882
|
||
|
||
Daniel Stenberg (29 Aug 2020)
|
||
- tests/getpart: use MIME::Base64 instead of home-cooked
|
||
|
||
Since we already use the base64 package since a while back, we can just
|
||
as well switch to that here too.
|
||
|
||
It also happens to use the exact same function name, which otherwise
|
||
causes a run-time warning.
|
||
|
||
Reported-by: Marc Hörsken
|
||
Fixes #5885
|
||
Closes #5887
|
||
|
||
Marcel Raad (29 Aug 2020)
|
||
- ntlm: fix condition for curl_ntlm_core usage
|
||
|
||
`USE_WINDOWS_SSPI` without `USE_WIN32_CRYPTO` but with any other DES
|
||
backend is fine, but was excluded before.
|
||
|
||
This also fixes test 1013 as the condition for SMB support in
|
||
configure.ac didn't match the condition in the source code. Now it
|
||
does.
|
||
|
||
Fixes https://github.com/curl/curl/issues/1262
|
||
Closes https://github.com/curl/curl/pull/5771
|
||
|
||
- AppVeyor: switch 64-bit Schannel Debug CMake builds to Unicode
|
||
|
||
The Schannel builds are the most useful to verify as they make the most
|
||
use of the Windows API. Classic MinGW doesn't support Unicode at all,
|
||
only MinGW-w64 and MSVC do.
|
||
|
||
Closes https://github.com/curl/curl/pull/5843
|
||
|
||
- CMake: add option to enable Unicode on Windows
|
||
|
||
As already existing for winbuild.
|
||
|
||
Closes https://github.com/curl/curl/pull/5843
|
||
|
||
Marc Hoersken (29 Aug 2020)
|
||
- select: simplify return code handling for poll and select
|
||
|
||
poll and select already return -1 on error according to POSIX,
|
||
so there is no need to perform a <0 to -1 conversion in code.
|
||
|
||
Also we can just use one check with <= 0 on the return code.
|
||
|
||
Assisted-by: Daniel Stenberg
|
||
Reviewed-by: Jay Satiro
|
||
|
||
Replaces #5852
|
||
Closes #5880
|
||
|
||
Daniel Stenberg (28 Aug 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Jeroen Ooms brought this change]
|
||
|
||
tests: add test1912 with typechecks
|
||
|
||
Validates that gcc-typecheck macros match the new option type API.
|
||
|
||
Closes #5873
|
||
|
||
- easyoptions: provide debug function when DEBUGBUILD
|
||
|
||
... not CURLDEBUG as they're not always set in conjunction.
|
||
|
||
Follow-up to 6ebe63fac23f38df
|
||
|
||
Fixes #5877
|
||
Closes #5878
|
||
|
||
Marc Hoersken (28 Aug 2020)
|
||
- sockfilt: handle FD_CLOSE winsock event on write socket
|
||
|
||
Learn from the way Cygwin handles and maps the WinSock events
|
||
to simulate correct and complete poll and select behaviour
|
||
according to Richard W. Stevens Network Programming book.
|
||
|
||
Follow up to #5867
|
||
Closes #5879
|
||
|
||
- multi: handle connection state winsock events
|
||
|
||
Learn from the way Cygwin handles and maps the WinSock events
|
||
to simulate correct and complete poll and select behaviour
|
||
according to Richard W. Stevens Network Programming book.
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Marcel Raad
|
||
|
||
Follow up to #5634
|
||
Closes #5867
|
||
|
||
Daniel Stenberg (28 Aug 2020)
|
||
- Curl_pgrsTime - return new time to avoid timeout integer overflow
|
||
|
||
Setting a timeout to INT_MAX could cause an immediate error to get
|
||
returned as timeout because of an overflow when different values of
|
||
'now' were used.
|
||
|
||
This is primarily fixed by having Curl_pgrsTime() return the "now" when
|
||
TIMER_STARTSINGLE is set so that the parent function will continue using
|
||
that time.
|
||
|
||
Reported-by: Ionuț-Francisc Oancea
|
||
Fixes #5583
|
||
Closes #5847
|
||
|
||
- TLS: fix SRP detection by using the proper #ifdefs
|
||
|
||
USE_TLS_SRP will be true if *any* selected TLS backend can use SRP
|
||
|
||
HAVE_OPENSSL_SRP is defined when OpenSSL can use it
|
||
|
||
HAVE_GNUTLS_SRP is defined when GnuTLS can use it
|
||
|
||
Clarify in the curl_verison_info docs that CURL_VERSION_TLSAUTH_SRP is
|
||
set if at least one of the supported backends offers SRP.
|
||
|
||
Reported-by: Stefan Strogin
|
||
Fixes #5865
|
||
Closes #5870
|
||
|
||
- [Dan Kenigsberg brought this change]
|
||
|
||
docs: SSLCERTS: fix English syntax
|
||
|
||
Signed-off-by: Dan Kenigsberg <[email protected]>
|
||
|
||
Closes #5876
|
||
|
||
- [Alessandro Ghedini brought this change]
|
||
|
||
docs: non-existing macros in man pages
|
||
|
||
As reported by man(1) when invoked as:
|
||
|
||
man --warnings -E UTF-8 -l -Tutf8 -Z <file> >/dev/null
|
||
|
||
Closes #5846
|
||
|
||
- [Alessandro Ghedini brought this change]
|
||
|
||
curl.1: fix typo invokved -> invoked
|
||
|
||
Closes #5846
|
||
|
||
- buildconf: invoke 'autoreconf -fi' instead
|
||
|
||
The custom script isn't necessary anymore - but remains for simplicity
|
||
and just invokes autoreconf.
|
||
|
||
Closes #5853
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
lib: make Curl_gethostname accept a const pointer
|
||
|
||
The address of that variable never gets changed, only the data in it so
|
||
why not make it a "char * const"?
|
||
|
||
Closes #5866
|
||
|
||
- docs/libcurl: update "Added in" version for curl_easy_option*
|
||
|
||
Follow-up to 6ebe63fac23f38
|
||
|
||
- scripts: improve the "get latest curl release tag" logic
|
||
|
||
... by insiting on it matching "^curl-".
|
||
|
||
- configure: added --disable-get-easy-options
|
||
|
||
To allow disabling of the curl_easy_option APIs in a build.
|
||
|
||
Closes #5365
|
||
|
||
- options: API for meta-data about easy options
|
||
|
||
const struct curl_easyoption *curl_easy_option_by_name(const char *name);
|
||
|
||
const struct curl_easyoption *curl_easy_option_by_id (CURLoption id);
|
||
|
||
const struct curl_easyoption *
|
||
curl_easy_option_next(const struct curl_easyoption *prev);
|
||
|
||
The purpose is to provide detailed enough information to allow for
|
||
example libcurl bindings to get option information at run-time about
|
||
what easy options that exist and what arguments they expect.
|
||
|
||
Assisted-by: Jeroen Ooms
|
||
Closes #5365
|
||
|
||
- [Eric Curtin brought this change]
|
||
|
||
HTTP/3: update to OpenSSL_1_1_1g-quic-draft-29
|
||
|
||
Closes #5871
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
Jay Satiro (26 Aug 2020)
|
||
- openssl: Fix wincrypt symbols conflict with BoringSSL
|
||
|
||
OpenSSL undefines the conflicting symbols but BoringSSL does not so we
|
||
must do it ourselves.
|
||
|
||
Reported-by: Samuel Tranchet
|
||
Assisted-by: Javier Blazquez
|
||
|
||
Ref: https://bugs.chromium.org/p/boringssl/issues/detail?id=371
|
||
Ref: https://github.com/openssl/openssl/blob/OpenSSL_1_1_1g/include/openssl/ossl_typ.h#L66-L73
|
||
|
||
Fixes https://github.com/curl/curl/issues/5669
|
||
Closes https://github.com/curl/curl/pull/5857
|
||
|
||
Daniel Stenberg (26 Aug 2020)
|
||
- socketpair: allow CURL_DISABLE_SOCKETPAIR
|
||
|
||
... to completely disable the use of socketpair
|
||
|
||
Closes #5850
|
||
|
||
- curl_get_line: build only if cookies or alt-svc are enabled
|
||
|
||
Closes #5851
|
||
|
||
- [fullincome brought this change]
|
||
|
||
schannel: fix memory leak when using get_cert_location
|
||
|
||
The get_cert_location function allocates memory only on success.
|
||
Previously get_cert_location was able to allocate memory and return
|
||
error. It wasn't obvious and in this case the memory wasn't
|
||
released.
|
||
|
||
Fixes #5855
|
||
Closes #5860
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
git: ignore libtests in 3XXX area
|
||
|
||
Currently the file tests/libtest/lib3010 is not getting
|
||
ignored by git. This fixes it by adding the 3XXX area to
|
||
the according .gitignore file.
|
||
|
||
Closes #5859
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
doh: add error message for DOH_DNS_NAME_TOO_LONG
|
||
|
||
When this error code was introduced in b6a53fff6c1d07e8a9, it was
|
||
forgotten to be added in the errors array and doh_strerror function.
|
||
|
||
Closes #5863
|
||
|
||
- ngtcp2: adapt to the new pkt_info arguments
|
||
|
||
Guidance-by: Tatsuhiro Tsujikawa
|
||
|
||
Closes #5864
|
||
|
||
- winbuild/README.md: make <options> visible
|
||
|
||
Follow-up to be753add31c2d8c
|
||
|
||
- winbuild: convert the instruction text to README.md
|
||
|
||
Closes #5861
|
||
|
||
- lib1560: verify "redirect" to double-slash leading URL
|
||
|
||
Closes #5849
|
||
|
||
Marc Hoersken (25 Aug 2020)
|
||
- multi: expand pre-check for socket readiness
|
||
|
||
Check readiness of all sockets before waiting on them
|
||
to avoid locking in case the one-time event FD_WRITE
|
||
was already consumed by a previous wait operation.
|
||
|
||
More information about WinSock network events:
|
||
https://docs.microsoft.com/en-us/windows/win32/api/
|
||
winsock2/nf-winsock2-wsaeventselect#return-value
|
||
|
||
Closes #5634
|
||
|
||
- [rcombs brought this change]
|
||
|
||
multi: implement wait using winsock events
|
||
|
||
This avoids using a pair of TCP ports to provide wakeup functionality
|
||
for every multi instance on Windows, where socketpair() is emulated
|
||
using a TCP socket on loopback which could in turn lead to socket
|
||
resource exhaustion.
|
||
|
||
A previous version of this patch failed to account for how in WinSock,
|
||
FD_WRITE is set only once when writing becomes possible and not again
|
||
until after a send has failed due to the buffer filling. This contrasts
|
||
to how FD_READ and FD_OOB continue to be set until the conditions they
|
||
refer to no longer apply. This meant that if a user wrote some data to
|
||
a socket, but not enough data to completely fill its send buffer, then
|
||
waited on that socket to become writable, we'd erroneously stall until
|
||
their configured timeout rather than returning immediately.
|
||
|
||
This version of the patch addresses that issue by checking each socket
|
||
we're waiting on to become writable with select() before the wait, and
|
||
zeroing the timeout if it's already writable.
|
||
|
||
Assisted-by: Marc Hörsken
|
||
Reviewed-by: Marcel Raad
|
||
Reviewed-by: Daniel Stenberg
|
||
Tested-by: Gergely Nagy
|
||
Tested-by: Rasmus Melchior Jacobsen
|
||
Tested-by: Tomas Berger
|
||
|
||
Replaces #5397
|
||
Reverts #5632
|
||
Closes #5634
|
||
|
||
- select: reduce duplication of Curl_poll in Curl_socket_check
|
||
|
||
Change Curl_socket_check to use select-fallback in Curl_poll
|
||
instead of implementing it in Curl_socket_check and Curl_poll.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Reviewed-by: Jay Satiro
|
||
|
||
Replaces #5262 and #5492
|
||
Closes #5707
|
||
|
||
- select: fix poll-based check not detecting connect failure
|
||
|
||
This commit changes Curl_socket_check to use POLLPRI to
|
||
check for connect failure on the write socket, because
|
||
POLLPRI maps to fds_err. This is in line with select(2).
|
||
|
||
The select-based socket check correctly checks for connect
|
||
failures by adding the write socket also to fds_err.
|
||
|
||
The poll-based implementation (which internally can itself
|
||
fallback to select again) did not previously check for
|
||
connect failure by using POLLPRI with the write socket.
|
||
|
||
See the follow up commit to this for more information.
|
||
|
||
This commit makes sure connect failures can be detected
|
||
and handled if HAVE_POLL_FINE is defined, eg. on msys2-devel.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Reviewed-by: Jay Satiro
|
||
|
||
Replaces #5509
|
||
Prepares #5707
|
||
|
||
- select.h: make socket validation macros test for INVALID_SOCKET
|
||
|
||
With Winsock the valid range is [0..INVALID_SOCKET-1] according to
|
||
https://docs.microsoft.com/en-us/windows/win32/winsock/socket-data-type-2
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Marcel Raad
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Closes #5760
|
||
|
||
Daniel Stenberg (24 Aug 2020)
|
||
- docs: --output-dir is added in 7.73.0, nothing else
|
||
|
||
Follow-up to 5620d2cc78c0
|
||
|
||
- curl: add --output-dir
|
||
|
||
Works with --create-dirs and with -J
|
||
|
||
Add test 3008, 3009, 3011, 3012 and 3013 to verify.
|
||
|
||
Closes #5637
|
||
|
||
- configure: fix pkg-config detecting wolfssl
|
||
|
||
When amending the include path with "/wolfssl", this now properly strips
|
||
off all whitespace from the path variable! Previously this would lead to
|
||
pkg-config builds creating bad command lines.
|
||
|
||
Closes #5848
|
||
|
||
- [Michael Musset brought this change]
|
||
|
||
sftp: add the option CURLKHSTAT_FINE_REPLACE
|
||
|
||
Replace the old fingerprint of the host with a new.
|
||
|
||
Closes #5685
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
The next release is now to become 7.73.0
|
||
|
||
- checksrc: verify do-while and spaces between the braces
|
||
|
||
Updated mprintf.c to comply
|
||
|
||
Closes #5845
|
||
|
||
- curl: support XDG_CONFIG_HOME to find .curlrc
|
||
|
||
Added test433 to verify. Updated documentation.
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Suggested-by: Eli Schwartz
|
||
Fixes #5829
|
||
Closes #5837
|
||
|
||
- etag: save and use the full received contents
|
||
|
||
... which makes it support weak tags and non-standard etags too!
|
||
|
||
Added test case 347 to verify blank incoming ETag:
|
||
|
||
Fixes #5610
|
||
Closes #5833
|
||
|
||
- setopt: if the buffer exists, refuse the new BUFFERSIZE
|
||
|
||
The buffer only exists during transfer and then we shouldn't change the
|
||
size (the setopt is not documented to work then).
|
||
|
||
Reported-by: Harry Sintonen
|
||
Closes #5842
|
||
|
||
- [COFFEETALES brought this change]
|
||
|
||
sftp: add new quote commands 'atime' and 'mtime'
|
||
|
||
Closes #5810
|
||
|
||
- CURLE_PROXY: new error code
|
||
|
||
Failures clearly returned from a (SOCKS) proxy now causes this return
|
||
code. Previously the situation was not very clear as what would be
|
||
returned and when.
|
||
|
||
In addition: when this error code is returned, an application can use
|
||
CURLINFO_PROXY_ERROR to query libcurl for the detailed error, which then
|
||
returns a value from the new 'CURLproxycode' enum.
|
||
|
||
Closes #5770
|
||
|
||
- runtests: make cleardir() erase dot files too
|
||
|
||
Because test cases might use dot files.
|
||
|
||
Closes #5838
|
||
|
||
- KNOWN_BUGS: 'no_proxy' string-matches IPv6 numerical addreses
|
||
|
||
Also: the current behavior is now documented in the curl.1 and
|
||
CURLOPT_NOPROXY.3 man pages.
|
||
|
||
Reported-by: Andrew Barnes
|
||
Closes #5745
|
||
Closes #5841
|
||
|
||
Viktor Szakats (22 Aug 2020)
|
||
- Makefile.m32: add ability to override zstd libs [ci skip]
|
||
|
||
Similarly to brotli, where this was already possible.
|
||
E.g. it allows to link zstd statically to libcurl.dll.
|
||
|
||
Ref: https://github.com/curl/curl-for-win/issues/12
|
||
Ref: https://github.com/curl/curl-for-win/commit/d9b266afd2e5d3f5604483010ef62340b5918c89
|
||
|
||
Closes https://github.com/curl/curl/pull/5840
|
||
|
||
Daniel Stenberg (21 Aug 2020)
|
||
- runtests: avoid 'fail to start' repeated messages in attempt loops
|
||
|
||
Closes #5834
|
||
|
||
- runtests: clear pid variables when failing to start a server
|
||
|
||
... as otherwise the parent doesn't detect the failure and believe it
|
||
actually worked to start.
|
||
|
||
Reported-by: Christian Weisgerber
|
||
Bug: https://curl.haxx.se/mail/lib-2020-08/0018.html
|
||
Closes #5834
|
||
|
||
- TODO: Virtual external sockets
|
||
|
||
Closes #5835
|
||
|
||
- [Don J Olmstead brought this change]
|
||
|
||
dist: add missing CMake Find modules to the distribution
|
||
|
||
Closes #5836
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
... and version bumped to 7.72.1
|
||
|
||
- tls: provide the CApath verbose log on its own line
|
||
|
||
... not newline separated from the previous line. This makes it output
|
||
asterisk prefixed properly like other verbose putput!
|
||
|
||
Reported-by: jmdavitt on github
|
||
Fixes #5826
|
||
Closes #5827
|
||
|
||
Version 7.72.0 (19 Aug 2020)
|
||
|
||
Daniel Stenberg (19 Aug 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
The curl 7.72.0 release
|
||
|
||
- THANKS: add names from curl 7.72.0 release
|
||
|
||
Jay Satiro (18 Aug 2020)
|
||
- KNOWN_BUGS: Schannel TLS 1.2 handshake bug in old Windows versions
|
||
|
||
Reported-by: [email protected]
|
||
|
||
Closes https://github.com/curl/curl/issues/5488
|
||
|
||
Daniel Stenberg (17 Aug 2020)
|
||
- Curl_easy: remember last connection by id, not by pointer
|
||
|
||
CVE-2020-8231
|
||
|
||
Bug: https://curl.haxx.se/docs/CVE-2020-8231.html
|
||
|
||
Reported-by: Marc Aldorasi
|
||
Closes #5824
|
||
|
||
- examples/rtsp.c: correct the copyright year
|
||
|
||
- RELEASE-PROCEDURE.md: add more future release dates
|
||
|
||
- [H3RSKO brought this change]
|
||
|
||
docs: change "web site" to "website"
|
||
|
||
According to wikipedia:
|
||
|
||
While "web site" was the original spelling, this variant has become
|
||
rarely used, and "website" has become the standard spelling
|
||
|
||
Closes #5822
|
||
|
||
- [Bevan Weiss brought this change]
|
||
|
||
CMake: don't complain about missing nroff
|
||
|
||
The curl_nroff_check() was always being called, and complaining if
|
||
*NROFF wasn't found, even when not making the manual.
|
||
|
||
Only check for nroff (and complain) if actually making the manual
|
||
|
||
Closes #5817
|
||
|
||
- [Brian Inglis brought this change]
|
||
|
||
libtest/Makefile.am: add -no-undefined for libstubgss for Cygwin
|
||
|
||
copy the LDFLAGS approach for adding same option with `libhostname` in
|
||
`libtest/Makefile.am`:
|
||
|
||
- init `libstubgss_la_LDFLAGS_EXTRA` variable,
|
||
- add option to variable inside conditional,
|
||
- use variable in `libstubgss_la_LDFLAGS`
|
||
|
||
Fixes #5819
|
||
Closes #5820
|
||
|
||
- docs: clarify MAX_SEND/RECV_SPEED functionality
|
||
|
||
... in particular what happens if the maximum speed limit is set to a
|
||
value that's smaller than the transfer buffer size in use.
|
||
|
||
Reported-by: Tomas Berger
|
||
Fixes #5788
|
||
Closes #5813
|
||
|
||
- test1140: compare stdout
|
||
|
||
To make problems more immediately obvious when tests fail.
|
||
|
||
Closes #5814
|
||
|
||
- asyn-ares: correct some bad comments
|
||
|
||
Closes #5812
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
docs: Add video link to docs/CONTRIBUTE.md
|
||
|
||
Closes #5811
|
||
|
||
- curl-config: ignore REQUIRE_LIB_DEPS in --libs output
|
||
|
||
Fixes a curl-config issue on cygwin by making sure REQUIRE_LIB_DEPS is
|
||
not considered for the --libs output.
|
||
|
||
Reported-by: ramsay-jones on github
|
||
Assisted-by: Brian Inglis and Ken Brown
|
||
Fixes #5793
|
||
Closes #5808
|
||
|
||
- copyright: update/correct the year range on a few files
|
||
|
||
- scripts/copyright.pl: ignore .muse files
|
||
|
||
- [Emil Engler brought this change]
|
||
|
||
multi: Remove 10-year old out-commented code
|
||
|
||
The code hasn't been touched since 2010-08-18
|
||
|
||
Closes #5805
|
||
|
||
- KNOWN_BUGS: A shared connection cache is not thread-safe
|
||
|
||
Closes #4915
|
||
Closes #5802
|
||
|
||
- CONTRIBUTE: extend git commit message description
|
||
|
||
In particular how the first line works.
|
||
|
||
Closes #5803
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Stefan Yohansson brought this change]
|
||
|
||
transfer: move retrycount from connect struct to easy handle
|
||
|
||
This flag was applied to the connection struct that is released on
|
||
retry. These changes move the retry counter into Curl_easy struct that
|
||
lives across retries and retains the new connection.
|
||
|
||
Reported-by: Cherish98 on github
|
||
Fixes #5794
|
||
Closes #5800
|
||
|
||
- libssh2: s/ssherr/sftperr/
|
||
|
||
The debug output used ssherr instead of sftperr which not only outputs
|
||
the wrong error code but also casues a warning on Windows.
|
||
|
||
Follow-up to 7370b4e39f1
|
||
|
||
Reported-by: Gisle Vanem
|
||
Bug: https://github.com/curl/curl/commit/7370b4e39f1390e701f5b68d910c619151daf72b#r41334700
|
||
Closes #5799
|
||
|
||
- ftp: don't do ssl_shutdown instead of ssl_close
|
||
|
||
The shutdown function is for downgrading a connection from TLS to plain,
|
||
and this is not requested here.
|
||
|
||
Have ssl_close reset the TLS connection state.
|
||
|
||
This partially reverts commit f002c850d98d
|
||
|
||
Reported-by: Rasmus Melchior Jacobsen
|
||
Reported-by: Denis Goleshchikhin
|
||
Fixes #5797
|
||
|
||
Marc Hoersken (9 Aug 2020)
|
||
- CI/azure: fix test outcome values and use latest API version
|
||
|
||
This makes sure that tests ignored or skipped are not shown
|
||
just in the category "Other", but with their correct state.
|
||
|
||
Closes #5796
|
||
|
||
- CI/azure: show runtime stats to investigate slowness
|
||
|
||
Also avoid naming conflict of TFLAGS env and tflags variables.
|
||
|
||
Closes #5776
|
||
|
||
Daniel Stenberg (8 Aug 2020)
|
||
- TLS naming: fix more Winssl and Darwinssl leftovers
|
||
|
||
The CMake option is now called CMAKE_USE_SCHANNEL
|
||
|
||
The winbuild flag is USE_SCHANNEL
|
||
|
||
The CI jobs and build scripts only use the new names and the new name
|
||
options
|
||
|
||
Tests now require 'Schannel' (when necessary)
|
||
|
||
Closes #5795
|
||
|
||
- smtp_parse_address: handle blank input string properly
|
||
|
||
Closes #5792
|
||
|
||
- runtests: run the DICT server on a random port number
|
||
|
||
Removed support for -b (base port number)
|
||
|
||
Closes #5783
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- runtests: move the TELNET server to a dynamic port
|
||
|
||
Rename the port variable to TELNETPORT to better match the existing
|
||
pattern.
|
||
|
||
Closes #5785
|
||
|
||
- ngtcp2: adapt to error code rename
|
||
|
||
Closes #5786
|
||
|
||
- runtests: move the smbserver to use a dynamic port number
|
||
|
||
Closes #5782
|
||
|
||
- runtests: run the http2 tests on a random port number
|
||
|
||
Closes #5779
|
||
|
||
- gtls: survive not being able to get name/issuer
|
||
|
||
Closes #5778
|
||
|
||
- runtests: move the gnutls-serv tests to a dynamic port
|
||
|
||
Affects test 320, 321, 322 and 324.
|
||
|
||
Closes #5778
|
||
|
||
- runtests: support dynamicly base64 encoded sections in tests
|
||
|
||
This allows us to make test cases to use base64 at run-time and still
|
||
use and verify information determined at run-time, such as the IMAP test
|
||
server's port number in test 842.
|
||
|
||
This change makes 12 tests run again that basically never ran since we
|
||
moved to dynamic port numbers.
|
||
|
||
ftpserver.pl is adjusted to load test instructions and test number from
|
||
the preprocessed test file.
|
||
|
||
FILEFORMAT.md now documents the new base64 encoding syntax.
|
||
|
||
Reported-by: Marcel Raad
|
||
Fixes #5761
|
||
Closes #5775
|
||
|
||
- curl.1: add a few missing valid exit codes
|
||
|
||
93 - 96 can be returned as well.
|
||
|
||
Closes #5777
|
||
|
||
- TODO: Use multiple parallel transfers for a single download
|
||
|
||
Closes #5774
|
||
|
||
- TODO: Set the modification date on an uploaded file
|
||
|
||
Closes #5768
|
||
|
||
- [Thomas M. DuBuisson brought this change]
|
||
|
||
CI: Add muse CI config
|
||
|
||
Closes #5772
|
||
|
||
- [Thomas M. DuBuisson brought this change]
|
||
|
||
travis/script.sh: fix use of `-n' with unquoted envvar
|
||
|
||
Shellcheck tells us "-n doesn't work with unquoted arguments. quote or
|
||
use [[ ]]."
|
||
|
||
And testing shows:
|
||
|
||
```
|
||
docker run --rm -it ubuntu bash
|
||
root@fe85ce156856:/# [ -n $DOES_NOT_EXIST ] && echo "I ran"
|
||
I ran
|
||
root@fe85ce156856:/# [ -n "$DOES_NOT_EXIST" ] && echo "I ran"
|
||
root@fe85ce156856:/#
|
||
```
|
||
|
||
Closes #5773
|
||
|
||
- h2: repair trailer handling
|
||
|
||
The previous h2 trailer fix in 54a2b63 was wrong and caused a
|
||
regression: it cannot deal with trailers immediately when read since
|
||
they may be read off the connection by the wrong 'data' owner.
|
||
|
||
This change reverts the logic back to gathering all trailers into a
|
||
single buffer, like before 54a2b63.
|
||
|
||
Reported-by: Tadej Vengust
|
||
Fixes #5663
|
||
Closes #5769
|
||
|
||
Viktor Szakats (3 Aug 2020)
|
||
- windows: disable Unix Sockets for old mingw
|
||
|
||
Classic mingw and 10y+ old versions of mingw-w64 don't ship with
|
||
Windows headers having the typedef necessary for Unix Sockets
|
||
support, so try detecting these environments to disable this
|
||
feature.
|
||
|
||
Ref: https://sourceforge.net/p/mingw-w64/mingw-w64/ci/cf6afc57179a5910621215f8f4037d406892072c/
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Fixes #5674
|
||
Closes #5758
|
||
|
||
Marcel Raad (3 Aug 2020)
|
||
- test1908: treat file as text
|
||
|
||
Fixes the line endings on Windows.
|
||
|
||
Closes https://github.com/curl/curl/pull/5767
|
||
|
||
- TrackMemory tests: ignore realloc and free in getenv.c
|
||
|
||
These are only called for WIN32.
|
||
|
||
Closes https://github.com/curl/curl/pull/5767
|
||
|
||
Daniel Stenberg (3 Aug 2020)
|
||
- tests/FILEFORMAT.md: mention %HTTP2PORT
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- tlsv1.3.d. only for TLS-using connections
|
||
|
||
... and rephrase that "not all" TLS backends support it.
|
||
|
||
Closes #5764
|
||
|
||
- tls-max.d: this option is only for TLS-using connections
|
||
|
||
Ref: #5763
|
||
Closes #5764
|
||
|
||
Marcel Raad (2 Aug 2020)
|
||
- [Cameron Cawley brought this change]
|
||
|
||
tool_doswin: Simplify Windows version detection
|
||
|
||
Closes https://github.com/curl/curl/pull/5754
|
||
|
||
- [Cameron Cawley brought this change]
|
||
|
||
win32: Add Curl_verify_windows_version() to curlx
|
||
|
||
Closes https://github.com/curl/curl/pull/5754
|
||
|
||
- runtests.pl: treat LibreSSL and BoringSSL as OpenSSL
|
||
|
||
This makes the tests that require the OpenSSL feature also run for
|
||
those two compatible libraries.
|
||
|
||
Closes https://github.com/curl/curl/pull/5762
|
||
|
||
Daniel Stenberg (1 Aug 2020)
|
||
- multi: Condition 'extrawait' is always true
|
||
|
||
Reported by Codacy.
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Closes #5759
|
||
|
||
Marcel Raad (1 Aug 2020)
|
||
- openssl: fix build with LibreSSL < 2.9.1
|
||
|
||
`SSL_CTX_add0_chain_cert` and `SSL_CTX_clear_chain_certs` were
|
||
introduced in LibreSSL 2.9.1 [0].
|
||
|
||
[0] https://github.com/libressl-portable/openbsd/commit/0db809ee178457c8170abfae3931d7bd13abf3ef
|
||
|
||
Closes https://github.com/curl/curl/pull/5757
|
||
|
||
Daniel Stenberg (1 Aug 2020)
|
||
- [Marc Aldorasi brought this change]
|
||
|
||
multi_remove_handle: close unused connect-only connections
|
||
|
||
Previously any connect-only connections in a multi handle would be kept
|
||
alive until the multi handle was closed. Since these connections cannot
|
||
be re-used, they can be marked for closure when the associated easy
|
||
handle is removed from the multi handle.
|
||
|
||
Closes #5749
|
||
|
||
- checksrc: invoke script with -D to find .checksrc proper
|
||
|
||
Without the -D command line option, checksrc.pl won't know which
|
||
directory to load the ".checksrc" file from when building out of the
|
||
source tree.
|
||
|
||
Reported-by: Marcel Raad
|
||
Fixes #5715
|
||
Closes #5755
|
||
|
||
- [Carlo Marcelo Arenas Belón brought this change]
|
||
|
||
buildconf: retire ares buildconf invocation
|
||
|
||
no longer needed after 4259d2df7dd95637a4b1e3fb174fe5e5aef81069
|
||
|
||
- [Carlo Marcelo Arenas Belón brought this change]
|
||
|
||
buildconf: excempt defunct reference to ACLOCAL_FLAGS
|
||
|
||
retired with 09f278121e815028adb24d228d8092fc6cb022aa but kept around as
|
||
the name is generic enough that it might be in use and relied upon from
|
||
the environment.
|
||
|
||
- [Carlo Marcelo Arenas Belón brought this change]
|
||
|
||
buildconf: avoid array concatenation in die()
|
||
|
||
reported as error SC2145[1] by shellcheck, but not expected to cause
|
||
any behavioural differences otherwise.
|
||
|
||
[1] https://github.com/koalaman/shellcheck/wiki/SC2145
|
||
|
||
Closes #5701
|
||
|
||
- travis: add ppc64le and s390x builds
|
||
|
||
Closes #5752
|
||
|
||
Marc Hoersken (31 Jul 2020)
|
||
- connect: remove redundant message about connect failure
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Closes #5708
|
||
|
||
- tests/sshserver.pl: fix compatibility with OpenSSH for Windows
|
||
|
||
Follow up to #5721
|
||
|
||
- CI/azure: install libssh2 for use with msys2-based builds
|
||
|
||
This enables building and running the SFTP tests.
|
||
Unfortunately OpenSSH for Windows does not support SCP (yet).
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Closes #5721
|
||
|
||
- CI/azure: increase Windows job timeout once again
|
||
|
||
Avoid aborted jobs due to performance issues on Azure DevOps.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Reviewed-by: Jay Satiro
|
||
|
||
Closes #5738
|
||
|
||
Jay Satiro (30 Jul 2020)
|
||
- TODO: Schannel: 'Add option to allow abrupt server closure'
|
||
|
||
We should offer an option to allow abrupt server closures (server closes
|
||
SSL transfer without sending a known termination point such as length of
|
||
transfer or close_notify alert). Abrupt server closures are usually
|
||
because of misconfigured or very old servers.
|
||
|
||
Closes https://github.com/curl/curl/issues/4427
|
||
|
||
- url: fix CURLU and location following
|
||
|
||
Prior to this change if the user set a URL handle (CURLOPT_CURLU) it was
|
||
incorrectly used for the location follow, resulting in infinite requests
|
||
to the original location.
|
||
|
||
Reported-by: [email protected]
|
||
|
||
Fixes https://github.com/curl/curl/issues/5709
|
||
Closes https://github.com/curl/curl/pull/5713
|
||
|
||
Daniel Stenberg (30 Jul 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [divinity76 brought this change]
|
||
|
||
docs: add date of 7.20 to CURLM_CALL_MULTI_PERFORM mentions
|
||
|
||
it helps make it obvious that most developers don't have to care about
|
||
the CURLM_CALL_MULTI_PERFORM value (last release using it is nearly 11
|
||
years old, November 4 2009)
|
||
|
||
Closes #5744
|
||
|
||
Jay Satiro (29 Jul 2020)
|
||
- tool_cb_wrt: fix outfile mode flags for Windows
|
||
|
||
- Use S_IREAD and S_IWRITE mode permission flags to create the file
|
||
on Windows instead of S_IRUSR, S_IWUSR, etc.
|
||
|
||
Windows only accepts a combination of S_IREAD and S_IWRITE. It does not
|
||
acknowledge other combinations, for which it may generate an assertion.
|
||
|
||
This is a follow-up to 81b4e99 from yesterday, which improved the
|
||
existing file check with -J.
|
||
|
||
Ref: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/open-wopen#remarks
|
||
Ref: https://github.com/curl/curl/pull/5731
|
||
|
||
Closes https://github.com/curl/curl/pull/5742
|
||
|
||
Daniel Stenberg (28 Jul 2020)
|
||
- checksrc: ban gmtime/localtime
|
||
|
||
They're not thread-safe so they should not be used in libcurl code.
|
||
|
||
Explictly enabled when deemed necessary and in examples and tests
|
||
|
||
Reviewed-by: Nicolas Sterchele
|
||
Closes #5732
|
||
|
||
- transfer: fix data_pending for builds with both h2 and h3 enabled
|
||
|
||
Closes #5734
|
||
|
||
- curl_multi_setopt: fix compiler warning "result is always false"
|
||
|
||
On systems with 32 bit long the expression is always false. Avoid
|
||
the warning.
|
||
|
||
Reported-by: Gisle Vanem
|
||
Bug: https://github.com/curl/curl/commit/61a08508f6a458fe21bbb18cd2a9bac2f039452b#commitcomment-40941232
|
||
Closes #5736
|
||
|
||
- curl: improve the existing file check with -J
|
||
|
||
Previously a file that isn't user-readable but is user-writable would
|
||
not be properly avoided and would get overwritten.
|
||
|
||
Reported-by: BrumBrum on hackerone
|
||
Assisted-by: Jay Satiro
|
||
Bug: https://hackerone.com/reports/926638
|
||
Closes #5731
|
||
|
||
- [Jonathan Nieder brought this change]
|
||
|
||
multi: update comment to say easyp list is linear
|
||
|
||
Since 09b9fc900 (multi: remove 'Curl_one_easy' struct, phase 1,
|
||
2013-08-02), the easy handle list is not circular but ends with
|
||
->next pointing to NULL.
|
||
|
||
Reported-by: Masaya Suzuki <[email protected]>
|
||
Closes #5737
|
||
|
||
- CURLOPT_NOBODY.3: fix the syntax for referring to options
|
||
|
||
As test 1140 fails otherwise!
|
||
|
||
Follow-up to e1bac81cc815
|
||
|
||
- ngtcp2: store address in sockaddr_storage
|
||
|
||
Reported-by: Tatsuhiro Tsujikawa
|
||
Closes #5733
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- [Ehren Bendler brought this change]
|
||
|
||
configure: cleanup wolfssl + pkg-config conflicts when cross compiling.
|
||
|
||
Also choose a different wolfSSL function to test for NTLM support.
|
||
|
||
Fixes #5605
|
||
Closes #5682
|
||
|
||
- configure: show zstd "no" in summary when built without it
|
||
|
||
Reported-by: Marc Hörsken
|
||
Fixes #5720
|
||
Closes #5730
|
||
|
||
- quiche: handle calling disconnect twice
|
||
|
||
Reported-by: lilongyan-huawei on github
|
||
Fixes #5726
|
||
Closes #5727
|
||
|
||
- [Nicolas Sterchele brought this change]
|
||
|
||
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
|
||
|
||
Marcel Raad (27 Jul 2020)
|
||
- 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
|
||
|
||
Jay Satiro (27 Jul 2020)
|
||
- [Tobias Stoeckmann brought this change]
|
||
|
||
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 <[email protected]>
|
||
|
||
Closes https://github.com/curl/curl/pull/5722
|
||
|
||
- [Tobias Stoeckmann brought this change]
|
||
|
||
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
|
||
|
||
Daniel Stenberg (26 Jul 2020)
|
||
- 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
|
||
|
||
Marcel Raad (26 Jul 2020)
|
||
- 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
|
||
|
||
Daniel Stenberg (26 Jul 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
Marcel Raad (25 Jul 2020)
|
||
- CI/macos: enable warnings as errors for CMake builds
|
||
|
||
Closes https://github.com/curl/curl/pull/5716
|
||
|
||
- 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
|
||
|
||
Jay Satiro (23 Jul 2020)
|
||
- curl.h: update CURLINFO_LASTONE
|
||
|
||
CURLINFO_LASTONE should have been updated when
|
||
CURLINFO_EFFECTIVE_METHOD was added.
|
||
|
||
Reported-by: [email protected]
|
||
|
||
Fixes https://github.com/curl/curl/issues/5711
|
||
|
||
Marc Hoersken (22 Jul 2020)
|
||
- CI/azure: unconditionally enable warnings-as-errors with autotools
|
||
|
||
Reviewed-by: Marcel Raad
|
||
|
||
Follow up to #5694
|
||
Closes #5706
|
||
|
||
Marcel Raad (21 Jul 2020)
|
||
- doh: remove redundant cast
|
||
|
||
Closes https://github.com/curl/curl/pull/5704
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
Daniel Stenberg (18 Jul 2020)
|
||
- 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
|
||
|
||
- [Alessandro Ghedini brought this change]
|
||
|
||
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
|
||
|
||
Marcel Raad (17 Jul 2020)
|
||
- 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
|
||
|
||
Daniel Stenberg (16 Jul 2020)
|
||
- ngtcp2: adjust to recent sockaddr updates
|
||
|
||
Closes #5690
|
||
|
||
- 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
|
||
|
||
Daniel Gustafsson (16 Jul 2020)
|
||
- 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 <[email protected]>
|
||
|
||
Daniel Stenberg (16 Jul 2020)
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- [Baruch Siach brought this change]
|
||
|
||
nss: fix build with disabled proxy support
|
||
|
||
Avoid reference to fields that do not exist when CURL_DISABLE_PROXY is
|
||
defined.
|
||
|
||
Closes #5667
|
||
|
||
- test1139: make it display the difference on test failures
|
||
|
||
- 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
|
||
|
||
- curl: add %{method} to the -w variables
|
||
|
||
Gets the CURLINFO_EFFECTIVE_METHOD from libcurl.
|
||
|
||
Added test 1197 to verify.
|
||
|
||
- 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
|
||
|
||
Viktor Szakats (14 Jul 2020)
|
||
- windows: add unicode to feature list
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Reviewed-by: Marc Hörsken
|
||
|
||
Closes #5491
|
||
|
||
Daniel Stenberg (14 Jul 2020)
|
||
- multi: remove two checks always true
|
||
|
||
Detected by Codacy
|
||
Closes #5676
|
||
|
||
Marc Hoersken (13 Jul 2020)
|
||
- 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
|
||
|
||
- 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
|
||
|
||
Daniel Stenberg (12 Jul 2020)
|
||
- [ihsinme brought this change]
|
||
|
||
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
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
... and bumped to 7.72.0 as the next release version number
|
||
|
||
- [Gilles Vollant brought this change]
|
||
|
||
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
|
||
|
||
- asyn.h: remove the Curl_resolver_getsock define
|
||
|
||
- not used
|
||
- used the wrong number of arguments
|
||
- confused the Codeacy code analyzer
|
||
|
||
Closes #5647
|
||
|
||
- [Nicolas Sterchele brought this change]
|
||
|
||
configure.ac: Sort features name in summary
|
||
|
||
- Same as protocols
|
||
|
||
Closes #5656
|
||
|
||
- [Matthias Naegler brought this change]
|
||
|
||
cmake: fix windows xp build
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Closes #5662
|
||
|
||
- ngtcp2: update to modified qlog callback prototype
|
||
|
||
Closes #5675
|
||
|
||
- 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
|
||
|
||
- [Baruch Siach brought this change]
|
||
|
||
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
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
Jay Satiro (11 Jul 2020)
|
||
- [Carlo Marcelo Arenas Belón brought this change]
|
||
|
||
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
|
||
|
||
- [Filip Salomonsson brought this change]
|
||
|
||
CURLINFO_CERTINFO.3: fix typo
|
||
|
||
Closes https://github.com/curl/curl/pull/5655
|
||
|
||
Daniel Stenberg (4 Jul 2020)
|
||
- http2: only do the *done() cleanups for HTTP
|
||
|
||
Follow-up to ef86daf4d3
|
||
|
||
Closes #5650
|
||
Fixes #5646
|
||
|
||
- [Alex Kiernan brought this change]
|
||
|
||
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 <[email protected]>
|
||
Closes #5645
|
||
|
||
Alex Kiernan (3 Jul 2020)
|
||
- gnutls: Fetch backend when using proxy
|
||
|
||
Fixes: 89865c149 ("gnutls: remove the BACKEND define kludge")
|
||
Signed-off-by: Alex Kiernan <[email protected]>
|
||
|
||
Daniel Stenberg (3 Jul 2020)
|
||
- [Laramie Leavitt brought this change]
|
||
|
||
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
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
Kamil Dudka (3 Jul 2020)
|
||
- 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
|
||
|
||
Daniel Stenberg (2 Jul 2020)
|
||
- [Jeremy Maitin-Shepard brought this change]
|
||
|
||
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
|
||
|
||
Marcel Raad (2 Jul 2020)
|
||
- 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
|
||
|
||
Daniel Stenberg (1 Jul 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
Version 7.71.1 (30 Jun 2020)
|
||
|
||
Daniel Stenberg (30 Jun 2020)
|
||
- RELEASE-NOTES: curl 7.71.1
|
||
|
||
- THANKS: add contributors to 7.71.1
|
||
|
||
- scripts/copyright.pl: skip .dcignore
|
||
|
||
- 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
|
||
|
||
- TODO: Add flag to specify download directory
|
||
|
||
- TODO: return code to CURLMOPT_PUSHFUNCTION to fail connection
|
||
|
||
- 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
|
||
|
||
- ngtcp2: sync with current master
|
||
|
||
ngtcp2 added two new callbacks
|
||
|
||
Reported-by: Lucien Zürcher
|
||
Fixes #5624
|
||
Closes #5627
|
||
|
||
- examples/multithread.c: call curl_global_cleanup()
|
||
|
||
Reported-by: qiandu2006 on github
|
||
Fixes #5622
|
||
Closes #5623
|
||
|
||
- vtls: compare cert blob when finding a connection to reuse
|
||
|
||
Reported-by: Gergely Nagy
|
||
Fixes #5617
|
||
Closes #5619
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- .dcignore: ignore tests and docs directories
|
||
|
||
This is a config file for deepcode.ai, a static code analyzer.
|
||
|
||
Jay Satiro (26 Jun 2020)
|
||
- 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
|
||
|
||
Daniel Stenberg (26 Jun 2020)
|
||
- CURLOPT_READFUNCTION.3: provide the upload data size up front
|
||
|
||
Assisted-by: Jay Satiro
|
||
Closes #5607
|
||
|
||
- 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
|
||
|
||
- [Baruch Siach brought this change]
|
||
|
||
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
|
||
|
||
- codeql-analysis.yml: fix the 'languages' setting
|
||
|
||
It needs a 'with:' in front of it.
|
||
|
||
GitHub (26 Jun 2020)
|
||
- [Daniel Stenberg brought this change]
|
||
|
||
gtihub: codeql-analysis.yml
|
||
|
||
enables code security scanning with github actions
|
||
|
||
Daniel Stenberg (25 Jun 2020)
|
||
- 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
|
||
|
||
- url: allow user + password to contain "control codes" for HTTP(S)
|
||
|
||
Reported-by: Jon Johnson Jr
|
||
Fixes #5582
|
||
Closes #5592
|
||
|
||
- escape: make the URL decode able to reject only %00 bytes
|
||
|
||
... or all "control codes" or nothing.
|
||
|
||
Assisted-by: Nicolas Sterchele
|
||
|
||
- 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
|
||
|
||
Jay Satiro (25 Jun 2020)
|
||
- [Javier Blazquez brought this change]
|
||
|
||
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
|
||
|
||
Daniel Stenberg (25 Jun 2020)
|
||
- test543: extended to verify zero length input
|
||
|
||
As was reported in #5601
|
||
|
||
- escape: zero length input should return a zero length output
|
||
|
||
Regression added in 7.71.0.
|
||
|
||
Fixes #5601
|
||
Reported-by: Kristoffer Gleditsch
|
||
Closes #5602
|
||
|
||
- Curl_inet_ntop: always check the return code
|
||
|
||
Reported-by: Siva Sivaraman
|
||
Fixes #5412
|
||
Closes #5597
|
||
|
||
- 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
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- curlver: start working on 7.71.1
|
||
|
||
- [Denis Baručić brought this change]
|
||
|
||
DYNBUF.md: fix a typo: trail => tail
|
||
|
||
Closes #5599
|
||
|
||
Version 7.71.0 (23 Jun 2020)
|
||
|
||
Daniel Stenberg (23 Jun 2020)
|
||
- RELEASE-NOTES: curl 7.71.0 release
|
||
|
||
- THANKS: curl 7.71.0 additions
|
||
|
||
- 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
|
||
|
||
Jay Satiro (22 Jun 2020)
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
Daniel Stenberg (22 Jun 2020)
|
||
- copyright: update mismatched copyright years
|
||
|
||
- test1460: verify that -Ji is not ok
|
||
|
||
- 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
|
||
|
||
- [Peter Wu brought this change]
|
||
|
||
CMake: ignore INTERFACE_LIBRARY targets for pkg-config file
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Fixes #5512
|
||
Closes #5517
|
||
|
||
- [Valentyn Korniienko brought this change]
|
||
|
||
multibyte: Fixed access-> waccess to file for Windows Plarform
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Closes #5580
|
||
|
||
- altsvc: bump to h3-29
|
||
|
||
Closes #5584
|
||
|
||
- urlglob: treat literal IPv6 addresses with zone IDs as a host name
|
||
|
||
... and not as a "glob". Now done by passing the supposed host to the
|
||
URL parser which supposedly will do a better job at identifying "real"
|
||
numerical IPv6 addresses.
|
||
|
||
Reported-by: puckipedia on github
|
||
Fixes #5576
|
||
Closes #5579
|
||
|
||
- test1179: verify error message for non-existing cmdline option
|
||
|
||
- tool_getparam: repair the error message for unknown flag
|
||
|
||
Follow-up to 9e5669f3880674
|
||
Detected by Coverity CID 1464582 ("Logically dead code")
|
||
|
||
Closes #5577
|
||
|
||
- FILEFORMAT: describe verify/stderr
|
||
|
||
- connect: improve happy eyeballs handling
|
||
|
||
For QUIC but also for regular TCP when the second family runs out of IPs
|
||
with a failure while the first family is still trying to connect.
|
||
|
||
Separated the timeout handling for IPv4 and IPv6 connections when they
|
||
both have a number of addresses to iterate over.
|
||
|
||
- ngtcp2: never call fprintf() in lib code in release version
|
||
|
||
- ngtcp2: fix happy eyeballs quic connect crash
|
||
|
||
Reported-by: Peter Wu
|
||
Fixes #5565
|
||
Closes #5568
|
||
|
||
- select: remove the unused ELAPSED_MS() macro
|
||
|
||
Closes #5573
|
||
|
||
Marc Hoersken (17 Jun 2020)
|
||
- [rcombs brought this change]
|
||
|
||
multi: implement wait using winsock events
|
||
|
||
This avoids using a pair of TCP ports to provide wakeup functionality
|
||
for every multi instance on Windows, where socketpair() is emulated
|
||
using a TCP socket on loopback which could in turn lead to socket
|
||
resource exhaustion.
|
||
|
||
Reviewed-by: Gergely Nagy
|
||
Reviewed-by: Marc Hörsken
|
||
|
||
Closes #5397
|
||
|
||
Daniel Stenberg (17 Jun 2020)
|
||
- manpage: add three missing environment variables
|
||
|
||
CURL_SSL_BACKEND, QLOGDIR and SSLKEYLOGFILE
|
||
|
||
Closes #5571
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- configure: for wolfSSL, check for the DES func needed for NTLM
|
||
|
||
Also adds pkg-config support for the wolfSSL detection.
|
||
|
||
- [Ruurd Beerstra brought this change]
|
||
|
||
ntlm: enable NTLM support with wolfSSL
|
||
|
||
When wolfSSL is built with its OpenSSL API layer, it fetures the same DES*
|
||
functions that OpenSSL has. This change take advantage of that.
|
||
|
||
Co-authored-by: Daniel Stenberg
|
||
Closes #5556
|
||
Fixes #5548
|
||
|
||
- http: move header storage to Curl_easy from connectdata
|
||
|
||
Since the connection can be used by many independent requests (using
|
||
HTTP/2 or HTTP/3), things like user-agent and other transfer-specific
|
||
data MUST NOT be kept connection oriented as it could lead to requests
|
||
getting the wrong string for their requests. This struct data was
|
||
lingering like this due to old HTTP1 legacy thinking where it didn't
|
||
mattered..
|
||
|
||
Fixes #5566
|
||
Closes #5567
|
||
|
||
- CODE_REVIEW.md: how to do code reviews in curl
|
||
|
||
Assisted-by: Daniel Gustafsson
|
||
Assisted-by: Rich Salz
|
||
Assisted-by: Hugo van Kemenade
|
||
Assisted-by: James Fuller
|
||
Assisted-by: Marc Hörsken
|
||
Assisted-by: Jay Satiro
|
||
|
||
Closes #5555
|
||
|
||
- altsvc: remove the num field from the altsvc struct
|
||
|
||
It was superfluous since we have the list.size alredy
|
||
|
||
Reported-by: Jay Satiro
|
||
Fixes #5553
|
||
Closes #5563
|
||
|
||
- version.d: expanded and alpha-sorted
|
||
|
||
Added a few missing features not previously mentioned. Ordered them
|
||
alphabetically.
|
||
|
||
Closes #5558
|
||
|
||
- ABI.md: rename to .md and polish the markdown
|
||
|
||
Closes #5562
|
||
|
||
- HELP-US: add a section for "smaller tasks"
|
||
|
||
The point of this section is to meet the CII Best Practices gold level
|
||
critera:
|
||
|
||
"The project MUST clearly identify small tasks that can be performed by
|
||
new or casual contributors"
|
||
|
||
Closes #5560
|
||
|
||
- TODO: retry on the redirected-to URL
|
||
|
||
Closes #5462
|
||
|
||
- mailmap: Nicolas Sterchele
|
||
|
||
- [Nicolas Sterchele brought this change]
|
||
|
||
TODO: remove 19.3 section title
|
||
|
||
Follow-up to ad6416986755e417c66e2c6, which caused wrong formatting on
|
||
curl documentation website
|
||
|
||
Closes #5561
|
||
|
||
- [Martin V brought this change]
|
||
|
||
test1560: avoid possibly negative association in wording
|
||
|
||
Closes #5549
|
||
|
||
- share: don't set the share flag it something fails
|
||
|
||
When asking for a specific feature to be shared in the share object,
|
||
that bit was previously set unconditionally even if the shared feature
|
||
failed or otherwise wouldn't work.
|
||
|
||
Closes #5554
|
||
|
||
- buildconf: remove -print from the find command that removes files
|
||
|
||
It's just too annoying and unnecessary to get a long list of files shown
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- wording: avoid blacklist/whitelist stereotypes
|
||
|
||
Instead of discussing if there's value or meaning (implied or not) in
|
||
the colors, let's use words without the same possibly negative
|
||
associations.
|
||
|
||
Closes #5546
|
||
|
||
Jay Satiro (9 Jun 2020)
|
||
- tool_getparam: fix memory leak in parse_args
|
||
|
||
Prior to this change in Windows Unicode builds most parsed options would
|
||
not be freed.
|
||
|
||
Found using _CrtDumpMemoryLeaks().
|
||
|
||
Ref: https://github.com/curl/curl/issues/5545
|
||
|
||
Daniel Stenberg (8 Jun 2020)
|
||
- socks: detect connection close during handshake
|
||
|
||
The SOCKS4/5 state machines weren't properly terminated when the proxy
|
||
connection got closed, leading to a busy-loop.
|
||
|
||
Reported-By: zloi-user on github
|
||
Fixes #5532
|
||
Closes #5542
|
||
|
||
- [James Fuller brought this change]
|
||
|
||
multi: add defensive check on data->multi->num_alive
|
||
|
||
Closes #5540
|
||
|
||
- Curl_addrinfo: use one malloc instead of three
|
||
|
||
To reduce the amount of allocations needed for creating a Curl_addrinfo
|
||
struct, make a single larger malloc instead of three separate smaller
|
||
ones.
|
||
|
||
Closes #5533
|
||
|
||
- [Alessandro Ghedini brought this change]
|
||
|
||
quiche: update SSLKEYLOGFILE support
|
||
|
||
quiche now requires the application to explicitly set the keylog path
|
||
for each connection, rather than reading the environment variable
|
||
itself.
|
||
|
||
Closes #5541
|
||
|
||
- tests: add two simple tests for --login-options
|
||
|
||
Test 895 and 896 - as a follow-up to a3e972313b
|
||
|
||
Closes #5539
|
||
|
||
- ngtcp2: update with recent API changes
|
||
|
||
Syncs with ngtcp2 commit 7e9a917d386d98 merged June 7 2020.
|
||
|
||
Assisted-by: Tatsuhiro Tsujikawa
|
||
Closes #5538
|
||
|
||
- [James Fuller brought this change]
|
||
|
||
socks: remove unreachable breaks in socks.c and mime.c
|
||
|
||
Closes #5537
|
||
|
||
- tool_cfgable: free login_options at exit
|
||
|
||
Memory leak
|
||
Reported-by: Geeknik Labs
|
||
Fixes #5535
|
||
Closes #5536
|
||
|
||
- libssh2: keep sftp errors as 'unsigned long'
|
||
|
||
Remove weird work-around for storing the SFTP errors as int instead of
|
||
the "unsigned long" that libssh2 actually returns for SFTP errors.
|
||
|
||
Closes #5534
|
||
|
||
Marc Hoersken (6 Jun 2020)
|
||
- timeouts: move ms timeouts to timediff_t from int and long
|
||
|
||
Now that all functions in select.[ch] take timediff_t instead
|
||
of the limited int or long, we can remove type conversions
|
||
and related preprocessor checks to silence compiler warnings.
|
||
|
||
Avoiding conversions from time_t was already done in 842f73de.
|
||
|
||
Based upon #5262
|
||
Supersedes #5214, #5220 and #5221
|
||
Follow up to #5343 and #5479
|
||
Closes #5490
|
||
|
||
Daniel Stenberg (6 Jun 2020)
|
||
- [François Rigault brought this change]
|
||
|
||
openssl: set FLAG_TRUSTED_FIRST unconditionally
|
||
|
||
On some systems, openssl 1.0.x is still the default, but it has been
|
||
patched to contain all the recent security fixes. As a result of this
|
||
patching, it is possible for macro X509_V_FLAG_NO_ALT_CHAINS to be
|
||
defined, while the previous behavior of openssl to not look at trusted
|
||
chains first, remains.
|
||
|
||
Fix it: ensure X509_V_FLAG_TRUSTED_FIRST is always set, do not try to
|
||
probe for the behavior of openssl based on the existence ofmacros.
|
||
|
||
Closes #5530
|
||
|
||
- server/util: fix logmsg format using curl_off_t argument
|
||
|
||
... this caused segfaults on armv7.
|
||
|
||
Regression added in dd0365d560aea5a (7.70.0)
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Closes #5529
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- [Cherish98 brought this change]
|
||
|
||
socks: fix expected length of SOCKS5 reply
|
||
|
||
Commit 4a4b63d forgot to set the expected SOCKS5 reply length when the
|
||
reply ATYP is X'01'. This resulted in erroneously expecting more bytes
|
||
when the request length is greater than the reply length (e.g., when
|
||
remotely resolving the hostname).
|
||
|
||
Closes #5527
|
||
|
||
Marc Hoersken (5 Jun 2020)
|
||
- .gitignore: add directory containing the stats repo
|
||
|
||
Since the new curl/stats repository is designed to be
|
||
checked out into the curl repository working tree as stats/
|
||
it should be on the ignore list to aid in commit staging.
|
||
|
||
Daniel Stenberg (5 Jun 2020)
|
||
- [Adnan Khan brought this change]
|
||
|
||
HTTP3.md: clarify cargo build directory
|
||
|
||
Cargo needs to be called from within the 'quiche' directory.
|
||
|
||
Closes #5522
|
||
|
||
- user-agent.d: spell out what happens given a blank argument
|
||
|
||
Closes #5525
|
||
|
||
- trailers: switch h1-trailer logic to use dynbuf
|
||
|
||
In the continued effort to remove "manual" realloc schemes.
|
||
|
||
Closes #5524
|
||
|
||
- CURLINFO_ACTIVESOCKET.3: clarify the description
|
||
|
||
Reported-by: Jay Satiro
|
||
Fixes #5299
|
||
Closes #5520
|
||
|
||
- mailmap: Don J Olmstead
|
||
|
||
- configure: only strip first -L from LDFLAGS
|
||
|
||
In the logic that works out if a given OpenSSL path works, it stripped
|
||
off a possibly leading -L flag using an incorrect sed pattern which
|
||
would remove all instances of -L in the string, including if the path
|
||
itself contained that two-letter sequence!
|
||
|
||
The same pattern was used and is now updated in multiple places. Now it
|
||
only removes -L if it starts the strings.
|
||
|
||
Reported-by: Mohamed Osama
|
||
Fixes #5519
|
||
Closes #5521
|
||
|
||
Peter Wu (4 Jun 2020)
|
||
- quiche: advertise draft 28 support
|
||
|
||
Fix the verbose message while at it, quiche currently supports draft
|
||
27 and draft 28 simultaneously.
|
||
|
||
Closes #5518
|
||
|
||
Daniel Stenberg (4 Jun 2020)
|
||
- KNOWN_BUGS: RTSP authentication breaks without redirect support
|
||
|
||
Closes #4750
|
||
|
||
Jay Satiro (4 Jun 2020)
|
||
- projects: Add crypt32.lib to dependencies for all OpenSSL configs
|
||
|
||
Windows project configurations that use OpenSSL with USE_WIN32_CRYPTO
|
||
need crypt32.
|
||
|
||
Follow-up to 148534d which added CURLSSLOPT_NATIVE_CA for 7.71.0.
|
||
|
||
The changes that are in this commit were made by script.
|
||
|
||
Ref: https://gist.github.com/jay/a1861b50ecce2b32931237180f856e28
|
||
|
||
Closes https://github.com/curl/curl/pull/5516
|
||
|
||
Marc Hoersken (3 Jun 2020)
|
||
- CI/macos: fix 'is already installed' errors by using bundle
|
||
|
||
Avoid failing CI builds due to nghttp2 being already installed.
|
||
|
||
Closes #5513
|
||
|
||
Daniel Stenberg (3 Jun 2020)
|
||
- altsvc: fix 'dsthost' may be used uninitialized in this function
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- urldata: let the HTTP method be in the set.* struct
|
||
|
||
When the method is updated inside libcurl we must still not change the
|
||
method as set by the user as then repeated transfers with that same
|
||
handle might not execute the same operation anymore!
|
||
|
||
This fixes the libcurl part of #5462
|
||
|
||
Test 1633 added to verify.
|
||
|
||
Closes #5499
|
||
|
||
- hostip: fix the memory-leak introduced in 67d2802
|
||
|
||
Fixes #5503
|
||
Closes #5504
|
||
|
||
- test970: make it require proxy support
|
||
|
||
This test verifies the -w %json output and the test case includes a full
|
||
generated "blob". If there's no proxy support built into libcurl, it
|
||
will return an error for proxy related info variables and they will not
|
||
be included in the json, thus causing a mismatch and this test fails.
|
||
|
||
Reported-by: Marc Hörsken
|
||
Fixes #5501
|
||
Closes #5502
|
||
|
||
- [Radoslav Georgiev brought this change]
|
||
|
||
examples/http2-down/upload: add error checks
|
||
|
||
If `index.html` does not exist in the directory from which the example
|
||
is invoked, the fopen(upload, "rb") invocation in `setup` would fail,
|
||
returning NULL. This value is subsequently passed as the FILE* argument
|
||
of the `fread` invocation in the `read_callback` function, which is the
|
||
actual cause of the crash (apparently `fread` assumes that argument to
|
||
be non-null).
|
||
|
||
In addition, mitigate some possible crashes of similar origin.
|
||
|
||
Closes #5463
|
||
|
||
- [kotoriのねこ brought this change]
|
||
|
||
examples/ephiperfifo: turn off interval when setting timerfd
|
||
|
||
Reported-by: therealhirudo on github
|
||
Fixes #5485
|
||
Closes #5497
|
||
|
||
- [Saleem Abdulrasool brought this change]
|
||
|
||
vtls: repair the build with `CURL_DISABLE_PROXY`
|
||
|
||
`http_proxy` will not be available in `conndata` if `CURL_DISABLE_PROXY`
|
||
is enabled. Repair the build with that configuration.
|
||
|
||
Follow-up to f3d501dc67
|
||
|
||
Closes #5498
|
||
|
||
- transfer: remove k->str NULL check
|
||
|
||
"Null-checking k->str suggests that it may be null, but it has already
|
||
been dereferenced on all paths leading to the check" - and it can't
|
||
legally be NULL at this point. Remove check.
|
||
|
||
Detected by Coverity CID 1463884
|
||
|
||
Closes #5495
|
||
|
||
Marc Hoersken (1 Jun 2020)
|
||
- select: always use Sleep in Curl_wait_ms on Win32
|
||
|
||
Since Win32 almost always will also have USE_WINSOCK,
|
||
we can reduce complexity and always use Sleep there.
|
||
|
||
Assisted-by: Jay Satiro
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Follow up to #5343
|
||
Closes #5489
|
||
|
||
Daniel Stenberg (31 May 2020)
|
||
- conncache: download buffer needs +1 size for trailing zero
|
||
|
||
Follow-up to c4e6968127e
|
||
Detected by OSS-Fuzz: https://oss-fuzz.com/testcase-detail/5727799779524608
|
||
|
||
Marc Hoersken (31 May 2020)
|
||
- azure: use matrix strategy to avoid configuration redundancy
|
||
|
||
This also includes the following changes:
|
||
|
||
- Use the same timeout for all jobs on Linux (60 minutes)
|
||
and Windows (90 minutes)
|
||
- Use CLI stable apt-get install -y instead of apt install
|
||
which warns about that and run apt-get update first
|
||
- Enable MQTT for Windows msys2 builds instead of
|
||
legacy msys1 builds
|
||
- Add ./configure --prefix parameter to the msys2 builds
|
||
- The MSYSTEM environment variable is now preset inside
|
||
the container images for the msys2 builds
|
||
|
||
Note: on Azure Pipelines the matrix strategy is basically
|
||
just a simple list of job copies and not really a matrix.
|
||
|
||
Closes #5468
|
||
|
||
Daniel Stenberg (30 May 2020)
|
||
- build: disable more code/data when built without proxy support
|
||
|
||
Added build to travis to verify
|
||
|
||
Closes #5466
|
||
|
||
- url: alloc the download buffer at transfer start
|
||
|
||
... and free it as soon as the transfer is done. It removes the extra
|
||
alloc when a new size is set with setopt() and reduces memory for unused
|
||
easy handles.
|
||
|
||
In addition: the closure_handle now doesn't use an allocated buffer at
|
||
all but the smallest supported size as a stack based one.
|
||
|
||
Closes #5472
|
||
|
||
- timeouts: change millisecond timeouts to timediff_t from time_t
|
||
|
||
For millisecond timers we like timediff_t better. Also, time_t can be
|
||
unsigned so returning a negative value doesn't work then.
|
||
|
||
Closes #5479
|
||
|
||
Marc Hoersken (30 May 2020)
|
||
- select: add overflow checks for timeval conversions
|
||
|
||
Using time_t and suseconds_t if suseconds_t is available,
|
||
long on Windows (maybe others in the future) and int elsewhere.
|
||
|
||
Also handle case of ULONG_MAX being greater or equal to INFINITE.
|
||
|
||
Assisted-by: Jay Satiro
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Part of #5343
|
||
|
||
- select: use timediff_t instead of time_t and int for timeout_ms
|
||
|
||
Make all functions in select.[ch] take timeout_ms as timediff_t
|
||
which should always be large enough and signed on all platforms
|
||
to take all possible timeout values and avoid type conversions.
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Replaces #5107 and partially #5262
|
||
Related to #5240 and #5286
|
||
Closes #5343
|
||
|
||
- unit1604.c: fix implicit conv from 'SANITIZEcode' to 'CURLcode'
|
||
|
||
GCC 10 warns about this with warning: implicit conversion
|
||
from 'SANITIZEcode' to 'CURLcode' [-Wenum-conversion]
|
||
|
||
Since 'expected_result' is not really of type 'CURLcode' and
|
||
it is not exposed in any way, we can just use 'SANITIZEcode'.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Reviewed-by: Marcel Raad
|
||
|
||
Closes #5476
|
||
|
||
- tests/libtest: fix undefined reference to 'curlx_win32_fopen'
|
||
|
||
Since curl_setup.h now makes use of curlx_win32_fopen for Win32
|
||
builds with USE_WIN32_LARGE_FILES or USE_WIN32_SMALL_FILES defined,
|
||
we need to include the relevant files for tests using fopen,
|
||
because the libtest sources are also including curl_setup.h
|
||
|
||
Reviewed-by: Marcel Raad
|
||
Reviewed-by: Daniel Stenberg
|
||
|
||
Follow up to #3784 (ffdddb45d9)
|
||
Closes #5475
|
||
|
||
- appveyor: add non-debug plain autotools-based build
|
||
|
||
This should enable us to catch linking issues with the
|
||
testsuite early, like the one described/fixed in #5475.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Reviewed-by: Marcel Raad
|
||
|
||
Closes #5477
|
||
|
||
Daniel Stenberg (29 May 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
- Revert "buildconf: use find -execdir"
|
||
|
||
This partially reverts commit c712009838f44211958854de431315586995bc61.
|
||
|
||
Keep the ares_ files removed but bring back the older way to run find,
|
||
to make it work with busybox's find, as apparently that's being used.
|
||
|
||
Reported-by: Max Peal
|
||
Fixes #5483
|
||
Closes #5484
|
||
|
||
- server/sws: fix asan warning on use of uninitialized variable
|
||
|
||
- libssh2: improved error output for wrong quote syntax
|
||
|
||
Reported-by: Werner Stolz
|
||
|
||
Closes #5474
|
||
|
||
- mk-lib1521: generate code for testing BLOB options as well
|
||
|
||
Follow-up to cac5374298b3
|
||
|
||
Closes #5478
|
||
|
||
- configure: repair the check if argv can be written to
|
||
|
||
Due to bad escaping of the test code, the test wouldn't build and thus
|
||
result in a negative test result, which would lead to the unconditional
|
||
assumption that overwriting the arguments doesn't work and thus curl
|
||
would never hide credentials given in the command line, even when it
|
||
would otherwise be possible.
|
||
|
||
Regression from commit 2d4c2152c (7.60.0)
|
||
|
||
Reported-by: huzunhao on github
|
||
Fixes #5470
|
||
Closes #5471
|
||
|
||
Peter Wu (28 May 2020)
|
||
- CMake: rebuild Makefile.inc.cmake when Makefile.inc changes
|
||
|
||
Otherwise the build might fail due to missing source files, as
|
||
demonstrated by the recent keylog.c addition on an existing build dir.
|
||
|
||
Closes #5469
|
||
|
||
Daniel Stenberg (28 May 2020)
|
||
- urldata: fix comments: Curl_done() is called multi_done() now
|
||
|
||
... since 575e885db
|
||
|
||
Peter Wu (27 May 2020)
|
||
- ngtcp2: use common key log routine for better thread-safety
|
||
|
||
Tested with ngtcp2 built against the OpenSSL library. Additionally
|
||
tested with MultiSSL (NSS for TLS and ngtcp2+OpenSSL for QUIC).
|
||
|
||
The TLS backend (independent of QUIC) may or may not already have opened
|
||
the keylog file before. Therefore Curl_tls_keylog_open is always called
|
||
to ensure the file is open.
|
||
|
||
- wolfssl: add SSLKEYLOGFILE support
|
||
|
||
Tested following the same curl and tshark commands as in commit
|
||
"vtls: Extract and simplify key log file handling from OpenSSL" using
|
||
WolfSSL v4.4.0-stable-128-g5179503e8 from git master built with
|
||
`./configure --enable-all --enable-debug CFLAGS=-DHAVE_SECRET_CALLBACK`.
|
||
|
||
Full support for this feature requires certain wolfSSL build options,
|
||
see "Availability note" in lib/vtls/wolfssl.c for details.
|
||
|
||
Closes #5327
|
||
|
||
- vtls: Extract and simplify key log file handling from OpenSSL
|
||
|
||
Create a set of routines for TLS key log file handling to enable reuse
|
||
with other TLS backends. Simplify the OpenSSL backend as follows:
|
||
|
||
- Drop the ENABLE_SSLKEYLOGFILE macro as it is unconditionally enabled.
|
||
- Do not perform dynamic memory allocation when preparing a log entry.
|
||
Unless the TLS specifications change we can suffice with a reasonable
|
||
fixed-size buffer.
|
||
- Simplify state tracking when SSL_CTX_set_keylog_callback is
|
||
unavailable. My original sslkeylog.c code included this tracking in
|
||
order to handle multiple calls to SSL_connect and detect new keys
|
||
after renegotiation (via SSL_read/SSL_write). For curl however we can
|
||
be sure that a single master secret eventually becomes available
|
||
after SSL_connect, so a simple flag is sufficient. An alternative to
|
||
the flag is examining SSL_state(), but this seems more complex and is
|
||
not pursued. Capturing keys after server renegotiation was already
|
||
unsupported in curl and remains unsupported.
|
||
|
||
Tested with curl built against OpenSSL 0.9.8zh, 1.0.2u, and 1.1.1f
|
||
(`SSLKEYLOGFILE=keys.txt curl -vkso /dev/null https://localhost:4433`)
|
||
against an OpenSSL 1.1.1f server configured with:
|
||
|
||
# Force non-TLSv1.3, use TLSv1.0 since 0.9.8 fails with 1.1 or 1.2
|
||
openssl s_server -www -tls1
|
||
# Likewise, but fail the server handshake.
|
||
openssl s_server -www -tls1 -Verify 2
|
||
# TLS 1.3 test. No need to test the failing server handshake.
|
||
openssl s_server -www -tls1_3
|
||
|
||
Verify that all secrets (1 for TLS 1.0, 4 for TLS 1.3) are correctly
|
||
written using Wireshark. For the first and third case, expect four
|
||
matches per connection (decrypted Server Finished, Client Finished, HTTP
|
||
Request, HTTP Response). For the second case where the handshake fails,
|
||
expect a decrypted Server Finished only.
|
||
|
||
tshark -i lo -pf tcp -otls.keylog_file:keys.txt -Tfields \
|
||
-eframe.number -eframe.time -etcp.stream -e_ws.col.Info \
|
||
-dtls.port==4433,http -ohttp.desegment_body:FALSE \
|
||
-Y 'tls.handshake.verify_data or http'
|
||
|
||
A single connection can easily be identified via the `tcp.stream` field.
|
||
|
||
Daniel Stenberg (27 May 2020)
|
||
- FILEFORMAT: add more features that tests can depend on
|
||
|
||
- [Michael Kaufmann brought this change]
|
||
|
||
transfer: close connection after excess data has been read
|
||
|
||
For HTTP 1.x, it's a protocol error when the server sends more bytes
|
||
than announced. If this happens, don't reuse the connection, because the
|
||
start position of the next response is undefined.
|
||
|
||
Closes #5440
|
||
|
||
- [Estanislau Augé-Pujadas brought this change]
|
||
|
||
Revert "ssh: ignore timeouts during disconnect"
|
||
|
||
This reverts commit f31760e63b4e9ef1eb25f8f211390f8239388515. Shipped in
|
||
curl 7.54.1.
|
||
|
||
Bug: https://curl.haxx.se/mail/lib-2020-05/0068.html
|
||
Closes #5465
|
||
|
||
- urldata: connect related booleans live in struct ConnectBits
|
||
|
||
And remove a few unused booleans!
|
||
|
||
Closes #5461
|
||
|
||
- hostip: on macOS avoid DoH when given a numerical IP address
|
||
|
||
When USE_RESOLVE_ON_IPS is set (defined on macOS), it means that
|
||
numerical IP addresses still need to get "resolved" - but not with DoH.
|
||
|
||
Reported-by: Viktor Szakats
|
||
Fixes #5454
|
||
Closes #5459
|
||
|
||
- ngtcp2: cleanup memory when failing to connect
|
||
|
||
Reported-by: Peter Wu
|
||
Fixes #5447 (the ngtcp2 side of it)
|
||
Closes #5451
|
||
|
||
- quiche: clean up memory properly when failing to connect
|
||
|
||
Addresses the quiche side of #5447
|
||
Reported-by: Peter Wu
|
||
Closes #5450
|
||
|
||
- cleanup: use a single space after equals sign in assignments
|
||
|
||
- url: accept "any length" credentials for proxy auth
|
||
|
||
They're only limited to the maximum string input restrictions, not to
|
||
256 bytes.
|
||
|
||
Added test 1178 to verify
|
||
|
||
Reported-by: Will Roberts
|
||
Fixes #5448
|
||
Closes #5449
|
||
|
||
- [Maksim Stsepanenka brought this change]
|
||
|
||
test1167: fixes in badsymbols.pl
|
||
|
||
Closes #5442
|
||
|
||
- altsvc: fix parser for lines ending with CRLF
|
||
|
||
Fixed the alt-svc parser to treat a newline as end of line.
|
||
|
||
The unit tests in test 1654 were done without CRLF and thus didn't quite
|
||
match the real world. Now they use CRLF as well.
|
||
|
||
Reported-by: Peter Wu
|
||
Assisted-by: Peter Wu
|
||
Assisted-by: Jay Satiro
|
||
Fixes #5445
|
||
Closes #5446
|
||
|
||
Viktor Szakats (25 May 2020)
|
||
- all: fix codespell errors
|
||
|
||
Reviewed-by: Jay Satiro
|
||
Reviewed-by: Daniel Stenberg
|
||
Closes https://github.com/curl/curl/pull/5452
|
||
|
||
Peter Wu (25 May 2020)
|
||
- ngtcp2: fix build with current ngtcp2 master implementing draft 28
|
||
|
||
Based on client.cc changes from ngtcp2. Tested with current git master,
|
||
ngtcp2 commit c77d5731ce92, nghttp3 commit 65ff479d4380.
|
||
|
||
Fixes #5444
|
||
Closes #5443
|
||
|
||
Daniel Stenberg (25 May 2020)
|
||
- RELEASE-NOTES: synced
|
||
|
||
moved the new setopts up to a "change"
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- copyright: updated year ranges out of sync
|
||
|
||
... and whitelisted a few more files in the the copyright.pl script.
|
||
|
||
- [Gilles Vollant brought this change]
|
||
|
||
setopt: add CURLOPT_PROXY_ISSUERCERT(_BLOB) for coherency
|
||
|
||
Closes #5431
|
||
|
||
- curl: remove -J "informational" written on stdout
|
||
|
||
curl would previously show "curl: Saved to filename 'name from header'"
|
||
if -J was used and a name was picked from the Content-Disposition
|
||
header. That output could interfer with other stdout output, such as -w.
|
||
|
||
This commit removes that output line.
|
||
Bug: https://curl.haxx.se/mail/archive-2020-05/0044.html
|
||
Reported-by: Коваленко Анатолий Викторович
|
||
Closes #5435
|
||
|
||
Peter Wu (22 May 2020)
|
||
- travis: simplify quiche build instructions wrt boringssl
|
||
|
||
quiche builds boringssl as static library, reuse that instead of
|
||
building another shared library.
|
||
|
||
Closes #5438
|
||
|
||
- configure: fix pthread check with static boringssl
|
||
|
||
A shared boringssl/OpenSSL library requires -lcrypto only for linking.
|
||
A static build additionally requires `-ldl -lpthread`. In the latter
|
||
case `-lpthread` is added to LIBS which prevented `-pthread` from being
|
||
added to CFLAGS. Clear LIBS to fix linking failures for libtest tests.
|
||
|
||
Daniel Stenberg (22 May 2020)
|
||
- Revert "sendf: make failf() use the mvsnprintf() return code"
|
||
|
||
This reverts commit 74623551f306990e70c7c5515b88972005604a74.
|
||
|
||
Instead mark the function call with (void). Getting the return code and
|
||
using it instead triggered Coverity warning CID 1463596 because
|
||
snprintf() can return a negative value...
|
||
|
||
Closes #5441
|
||
|
||
- typecheck-gcc.h: CURLINFO_PRIVATE does not need a 'char *'
|
||
|
||
Reported-by: Billyzou0741326 on github
|
||
Fixes #5432
|
||
Closes #5436
|
||
|
||
- tests/server/util.h: add extern to silence compiler warning
|
||
|
||
Follow-up from a3b0699d5c1
|
||
|
||
- typecheck-gcc.h: fix the OFF_T check
|
||
|
||
The option number also needs to be less than CURLOPTTYPE_BLOB.
|
||
|
||
Follow-up to cac5374298
|
||
Reported-by: Jeroen Ooms
|
||
Bug: https://github.com/curl/curl/pull/5365#issuecomment-631084114
|
||
|
||
- TODO: --dry-run
|
||
|
||
Closes #5426
|
||
|
||
- TODO: Ratelimit or wait between serial requests
|
||
|
||
Closes #5406
|
||
|
||
- tool_paramhlp: fixup C89 mistake
|
||
|
||
Follow-up to c5f0a9db22.
|
||
|
||
- [Siva Sivaraman brought this change]
|
||
|
||
tool_paramhlp: fixed potentially uninitialized strtol() variable
|
||
|
||
Seems highly unlikely to actually be possible, but better safe than
|
||
sorry.
|
||
|
||
Closes #5417
|
||
|
||
- [Siva Sivaraman brought this change]
|
||
|
||
tool_operate: fixed potentially uninitialized variables
|
||
|
||
... in curl_easy_getinfo() calls. They're harmless but clearing the
|
||
variables makes the code safer and comforts the reader.
|
||
|
||
Closes #5416
|
||
|
||
- sha256: move assign to the declaration line
|
||
|
||
Follow-up to fae30656. Should've been squashed with that commit...
|
||
|
||
- [Siva Sivaraman brought this change]
|
||
|
||
sha256: fixed potentially uninitialized variable
|
||
|
||
Closes #5414
|
||
|
||
- sendf: make failf() use the mvsnprintf() return code
|
||
|
||
... and avoid a strlen() call. Fixes a MonocleAI warning.
|
||
|
||
Reported-by: MonocleAI
|
||
Fixes #5413
|
||
Closes #5420
|
||
|
||
- hostip: make Curl_printable_address not return anything
|
||
|
||
It was not used much anyway and instead we let it store a blank buffer
|
||
in case of failure.
|
||
|
||
Reported-by: MonocleAI
|
||
Fixes #5411
|
||
Closes #5418
|
||
|
||
- ftp: mark return-ignoring calls to Curl_GetFTPResponse with (void)
|
||
|
||
They're done on purpose, make that visible in the code.
|
||
Reported-by: MonocleAI
|
||
Fixes #5412
|
||
Closes #549
|
||
|
||
- TODO: forbid TLS post-handshake auth and do TLS record padding
|
||
|
||
Closes #5396
|
||
Closes #5398
|
||
|
||
- RELEASE-NOTES: synced
|
||
|
||
- dynbuf: return NULL when there's no buffer length
|
||
|
||
... as returning a "" is not a good idea as the string is supposed to be
|
||
allocated and returning a const string will cause issues.
|
||
|
||
Reported-by: Brian Carpenter
|
||
Follow-up to ed35d6590e72c
|
||
Closes #5405
|
||
|
||
Peter Wu (16 May 2020)
|
||
- travis: upgrade to bionic, clang-9, improve readability
|
||
|
||
Changes, partially to reduce build failures from external dependencies:
|
||
- Upgrade Ubuntu and drop unnecessary third-party repos.
|
||
- Properly clone apt config to ensure retries.
|
||
- Upgrade to clang-9 from the standard repos.
|
||
- Use Ubuntu 20.04 focal for the libssh build, use of ssh_get_publickey
|
||
fails on -Werror=deprecated-declarations in Ubuntu 18.04. Do not use
|
||
focal everywhere yet since Travis CI has not documented this option.
|
||
In focal, python-impacket (Py2.7) has been removed, leaving only
|
||
python3-impacket. Since it is only needed for SMB tests and not SSH,
|
||
skip it for the libssh job since it might need more work.
|
||
- apt: Remove gcc-8 and libstdc++-8-dev, already installed via g++-8.
|
||
|
||
Non-functional cleanups:
|
||
- Simplify test matrix, drop redundant os and compiler keys.
|
||
- Deprecation fixes: remove sudo, rename matrix -> jobs.
|
||
- Every job has an 'env' key, put this key first in a list item.
|
||
|
||
Closes #5370
|
||
|
||
- travis: whitespace-only changes for consistency
|
||
|
||
Automatically apply a consistent indentation with:
|
||
|
||
python3 -c 'from ruamel.yaml import YAML;y=YAML();d=y.load(open(".travis.yml"));y.width=500;y.dump(d,open(".travis.yml.new","w"))'
|
||
|
||
followed by manually re-indenting three comments.
|
||
|
||
Closes #5370
|
||
|
||
- CMake: add libssh build support
|
||
|
||
Closes #5372
|
||
|
||
Daniel Stenberg (15 May 2020)
|
||
- KNOWN_BUGS: wolfssh: publickey auth doesn't work
|
||
|
||
Closes #4820
|
||
|
||
- KNOWN_BUGS: OS400 port requires deprecated IBM library
|
||
|
||
Closes #5176
|
||
|
||
- [Vyron Tsingaras brought this change]
|
||
|
||
http2: keep trying to send pending frames after req.upload_done
|
||
|
||
Fixes #1410
|
||
Closes #5401
|
||
|
||
- [Gilles Vollant brought this change]
|
||
|
||
setopt: support certificate options in memory with struct curl_blob
|
||
|
||
This change introduces a generic way to provide binary data in setopt
|
||
options, called BLOBs.
|
||
|
||
This change introduces these new setopts:
|
||
|
||
CURLOPT_ISSUERCERT_BLOB, CURLOPT_PROXY_SSLCERT_BLOB,
|
||
CURLOPT_PROXY_SSLKEY_BLOB, CURLOPT_SSLCERT_BLOB and CURLOPT_SSLKEY_BLOB.
|
||
|
||
Reviewed-by: Daniel Stenberg
|
||
Closes #5357
|
||
|
||
- source cleanup: remove all custom typedef structs
|
||
|
||
- Stick to a single unified way to use structs
|
||
- Make checksrc complain on 'typedef struct {'
|
||
- Allow them in tests, public headers and examples
|
||
|
||
- Let MD4_CTX, MD5_CTX, and SHA256_CTX typedefs remain as they actually
|
||
typedef different types/structs depending on build conditions.
|
||
|
||
Closes #5338
|
||
|
||
- travis: remove the .checksrc fiddling
|
||
|
||
- ftp: make domore_getsock() return the secondary socket properly
|
||
|
||
Previously, after PASV and immediately after the data connection has
|
||
connected, the function would only return the control socket to wait for
|
||
which then made the data connection simply timeout and not get polled
|
||
correctly. This become obvious when running test 1631 and 1632 event-
|
||
based.
|
||
|
||
- test1632: verify FTP through HTTPS-proxy with connection re-use
|
||
|
||
- test1631: verify FTP download through HTTPS-proxy
|
||
|
||
- sws: as last resort, get test number from server cmd file
|
||
|
||
If it can't be found in the request. Also support --cmdfile to set it to
|
||
a custom file name.
|
||
|
||
runtests.pl always writes this file with the test number in it since a
|
||
while back.
|
||
|
||
- ftp: shut down the secondary connection properly when SSL is used
|
||
|
||
Reported-by: Neal Poole
|
||
Fixes #5340
|
||
Closes #5385
|
||
|
||
Marcel Raad (14 May 2020)
|
||
- KNOWN_BUGS: adapt 5.5 to recent changes
|
||
|
||
It only applies to non-Unicode builds now.
|
||
Also merge 5.10 into it as it's effectively a duplicate.
|
||
|
||
Closes https://github.com/curl/curl/pull/3784
|
||
|
||
- curl_setup: support Unicode functions to open files on Windows
|
||
|
||
Use them only if `_UNICODE` is defined, in which case command-line
|
||
arguments have been converted to UTF-8.
|
||
|
||
Closes https://github.com/curl/curl/pull/3784
|
||
|
||
- tool: support UTF-16 command line on Windows
|
||
|
||
- use `wmain` instead of `main` when `_UNICODE` is defined [0]
|
||
- define `argv_item_t` as `wchar_t *` in this case
|
||
- use the curl_multibyte gear to convert the command-line arguments to
|
||
UTF-8
|
||
|
||
This makes it possible to pass parameters with characters outside of
|
||
the current locale on Windows, which is required for some tests, e.g.
|
||
the IDN tests. Out of the box, this currently only works with the
|
||
Visual Studio project files, which default to Unicode, and winbuild
|
||
with the `ENABLE_UNICODE` option.
|
||
|
||
[0] https://devblogs.microsoft.com/oldnewthing/?p=40643
|
||
|
||
Ref: https://github.com/curl/curl/issues/3747
|
||
Closes https://github.com/curl/curl/pull/3784
|
||
|
||
- curl_multibyte: add to curlx
|
||
|
||
This will also be needed in the tool and tests.
|
||
|
||
Ref: https://github.com/curl/curl/pull/3758#issuecomment-482197512
|
||
Closes https://github.com/curl/curl/pull/3784
|
||
|
||
Daniel Stenberg (14 May 2020)
|
||
- url: make the updated credentials URL-encoded in the URL
|
||
|
||
Found-by: Gregory Jefferis
|
||
Reported-by: Jeroen Ooms
|
||
Added test 1168 to verify. Bug spotted when doing a redirect.
|
||
Bug: https://github.com/jeroen/curl/issues/224
|
||
Closes #5400
|
||
|
||
- tests: add https-proxy support to the test suite
|
||
|
||
Initial test 1630 added with basic HTTPS-proxy use. HTTPS-proxy is like
|
||
HTTP proxy but with a full TLS connection to the proxy.
|
||
|
||
Closes #5399
|
||
|
||
- mailmap: James Fuller
|
||
|
||
- [Major_Tom brought this change]
|
||
|
||
vauth/cleartext: fix theoretical integer overflow
|
||
|
||
Fix theoretical integer overflow in Curl_auth_create_plain_message.
|
||
|
||
The security impact of the overflow was discussed on hackerone. We
|
||
agreed this is more of a theoretical vulnerability, as the integer
|
||
overflow would only be triggerable on systems using 32-bits size_t with
|
||
over 4GB of available memory space for the process.
|
||
|
||
Closes #5391
|
||
|
||
Jay Satiro (13 May 2020)
|
||
- curl.1: Quote globbed URLs
|
||
|
||
- Quote the globbing example URLs that contain characters [] {} since
|
||
otherwise they may be interpreted as shell metacharacters.
|
||
|
||
Bug: https://github.com/curl/curl/issues/5388
|
||
Reported-by: John Simpson
|
||
|
||
Closes https://github.com/curl/curl/pull/5394
|
||
|
||
Daniel Stenberg (14 May 2020)
|
||
- checksrc: enhance the ASTERISKSPACE and update code accordingly
|
||
|
||
Fine: "struct hello *world"
|
||
|
||
Not fine: "struct hello* world" (and variations)
|
||
|
||
Closes #5386
|
||
|
||
- docs/options-in-versions: which version added each cmdline option
|
||
|
||
Added test 971 to verify that the list is in sync with the files in
|
||
cmdline-opts. The check also verifies that .d-files that uses Added:
|
||
specify the same version number as the options-in-versions file does.
|
||
|
||
Closes #5381
|
||
|
||
- docs: unify protocol lists
|
||
|
||
We boast support for 25 transfer protocols. Make sure the lists are
|
||
consistent
|
||
|
||
Closes #5384
|