summaryrefslogtreecommitdiff
path: root/CHANGES
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGES')
-rw-r--r--CHANGES9864
1 files changed, 5093 insertions, 4771 deletions
diff --git a/CHANGES b/CHANGES
index b1f1e20ee..b5bc30595 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,7125 +6,7447 @@
Changelog
-Version 7.68.0 (8 Jan 2020)
+Version 7.73.0 (14 Oct 2020)
-Daniel Stenberg (8 Jan 2020)
-- RELEASE-NOTES: 7.68.0
-
-- THANKS: updated with names from the 7.68.0 release
-
-- RELEASE-PROCEDURE: add four future release dates
-
- and remove four past release dates
+Daniel Stenberg (14 Oct 2020)
+- RELEASE-NOTES: synced
- [skip ci]
+ for 7.73.0
-Marcel Raad (6 Jan 2020)
-- TrackMemory tests: always remove CR before LF
-
- It was removed for output containing ' =' via `s/ =.*//`. With classic
- MinGW, this made lines with `free()` end with CRLF, but lines with e.g.
- `malloc()` end with only LF. The tests expect LF only.
-
- Closes https://github.com/curl/curl/pull/4788
+- THANKS: from 7.73.0 and .mailmap fixes
-Daniel Stenberg (6 Jan 2020)
-- multi.h: move INITIAL_MAX_CONCURRENT_STREAMS from public header
-
- ... to the private multihhandle.h. It is not for public use and it
- wasn't prefixed correctly anyway!
-
- Closes #4790
+- mailmap: fixups of some contributors
-- file: fix copyright year range
-
- Follow-up to 1b71bc532bd
+- projects/build-wolfssl.bat: fix the copyright year range
-- curl -w: handle a blank input file correctly
+Marc Hoersken (14 Oct 2020)
+- [Sergei Nikulov brought this change]
+
+ CI/tests: fix invocation of tests for CMake builds
- Previously it would end up with an uninitialized memory buffer that
- would lead to a crash or junk getting output.
+ 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)
- Added test 1271 to verify.
+ Reviewed-by: Marc Hörsken
- Reported-by: Brian Carpenter
- Closes #4786
+ Closes #6066
+ Fixes #6052
-- file: on Windows, refuse paths that start with \\
+- tests/server/util.c: fix support for Windows Unicode builds
- ... as that might cause an unexpected SMB connection to a given host
- name.
-
- Reported-by: Fernando Muñoz
- CVE-2019-15601
- Bug: https://curl.haxx.se/docs/CVE-2019-15601.html
+ Detected via #6066
+ Closes #6070
-Jay Satiro (6 Jan 2020)
-- CURLOPT_READFUNCTION.3: fix fopen params in example
+Daniel Stenberg (13 Oct 2020)
+- [Jay Satiro brought this change]
-- CURLOPT_READFUNCTION.3: fix variable name in example
+ strerror: Revert to local codepage for Windows error string
- Reported-by: Paul Joyce
+ - Change get_winapi_error() to return the error string in the local
+ codepage instead of UTF-8 encoding.
- Fixes https://github.com/curl/curl/issues/4787
-
-Daniel Stenberg (5 Jan 2020)
-- curl:getparameter return error for --http3 if libcurl doesn't support
+ 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.
- Closes #4785
-
-- docs: mention CURL_MAX_INPUT_LENGTH restrictions
+ 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).
- ... for curl_easy_setopt() and curl_url_set().
+ This is essentially a partial revert of bed5f84. The support for xbox
+ remains but the error string is reverted back to local codepage.
- [skip ci]
+ Ref: https://github.com/curl/curl/pull/6005
- Closes #4783
+ Reviewed-by: Marcel Raad
+ Closes #6065
-- curl: properly free mimepost data
+Marc Hoersken (13 Oct 2020)
+- CI/tests: use verification curl for test reporting APIs
- ... as it could otherwise leak memory when a transfer failed.
+ Avoid using our own, potentially installed, curl for
+ the test reporting APIs in case it is broken.
- Added test 1293 to verify.
+ Reviewed-by: Daniel Stenberg
- Reported-by: Brian Carpenter
- Fixes #4781
- Closes #4782
+ Preparation for #6049
+ Closes #6063
-- curl: cleanup multi handle on failure
+Viktor Szakats (12 Oct 2020)
+- windows: fix comparison of mismatched types warning
- ... to fix memory leak in error path.
+ 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)
+ ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
+ ```
- Fixes #4772
- Closes #4780
- Reported-by: Brian Carpenter
+ Approved-by: Daniel Stenberg
+ Closes #6062
-Marcel Raad (3 Jan 2020)
-- lib: fix compiler warnings with `CURL_DISABLE_VERBOSE_STRINGS`
-
- Closes https://github.com/curl/curl/pull/4775
+Daniel Stenberg (11 Oct 2020)
+- [Viktor Szakats brought this change]
-Daniel Stenberg (3 Jan 2020)
-- COPYING: it's 2020!
+ 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.
- [skip ci]
+ Closes #6060
-Jay Satiro (3 Jan 2020)
-- [Marc Aldorasi brought this change]
+- HISTORY: curl verifies SSL certs by default since version 7.10
- tests: Fix bounce requests with truncated writes
+Marc Hoersken (8 Oct 2020)
+- runtests.pl: use $LIBDIR variable instead of hardcoded path
- Prior to this change the swsbounce check in service_connection could
- fail because prevtestno and prevpartno were not set, which would cause
- the wrong response data to be sent to some tests and cause them to fail.
-
- Ref: https://github.com/curl/curl/pull/4717#issuecomment-570240785
+ Reviewed-by: Daniel Stenberg
+ Closes #6051
-Marcel Raad (31 Dec 2019)
-- tool: make a few char pointers point to const char instead
+Daniel Stenberg (7 Oct 2020)
+- checksrc: detect // comments on column 0
- These are read-only.
+ Spotted while working on #6045
- Closes https://github.com/curl/curl/pull/4771
+ Closes #6048
+
+- [Frederik Wedel-Heinen brought this change]
-Jay Satiro (31 Dec 2019)
-- tests: Change NTLM tests to require SSL
+ mbedtls: add missing header when defining MBEDTLS_DEBUG
- Prior to this change tests that required NTLM feature did not require
- SSL feature.
+ Closes #6045
+
+- curl: make sure setopt CURLOPT_IPRESOLVE passes on a long
- There are pending changes to cmake builds that will allow enabling NTLM
- in non-SSL builds in Windows. In that case the NTLM auth strings created
- are different from what is expected by the NTLM tests and they fail:
+ 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!
- "The issue with NTLM is that previous non-SSL builds would not enable
- NTLM and so the NTLM tests would be skipped."
+ Fixes #6042
+ Closes #6043
+
+- RELEASE-NOTES: synced
+
+- scripts/release-notes.pl: don't "embed" $ in format string for printf()
- Assisted-by: marc-groundctl@users.noreply.github.com
+ ... 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
- Ref: https://github.com/curl/curl/pull/4717#issuecomment-566218729
+ ... 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 https://github.com/curl/curl/pull/4768
+ Closes #6040
-- [Michael Forney brought this change]
+- [Emil Engler brought this change]
- bearssl: Improve I/O handling
-
- Factor out common I/O loop as bearssl_run_until, which reads/writes TLS
- records until the desired engine state is reached. This is now used for
- the handshake, read, write, and close.
+ --help: move two options from the misc category
- Match OpenSSL SSL_write behavior, and don't return the number of bytes
- written until the corresponding records have been completely flushed
- across the socket. This involves keeping track of the length of data
- buffered into the TLS engine, and assumes that when CURLE_AGAIN is
- returned, the write function will be called again with the same data
- and length arguments. This is the same requirement of SSL_write.
+ The cmdline opts delegation and suppress-connect-headers
+ fit better into auth and proxy rather than misc.
- Handle TLS close notify as EOF when reading by returning 0.
+ Follow-up to aa8777f63febc
+ Closes #6038
+
+- [Samanta Navarro brought this change]
+
+ docs/opts: fix typos in two manual pages
- Closes https://github.com/curl/curl/pull/4748
+ Closes #6039
-- travis: Fix error detection
+- ldap: reduce the amount of #ifdefs needed
- - Stop using inline shell scripts for before_script and script sections.
+ Closes #6035
+
+- runtests: provide curl's version string as %VERSION for tests
- Prior to this change Travis could ignore errors from commands in inline
- scripts. I don't understand how or why it happens. This is a workaround.
+ ... so that we can check HTTP requests for User-Agent: curl/%VERSION
- Assisted-by: Simon Warta
+ Update 600+ test cases accordingly.
- Ref: https://github.com/travis-ci/travis-ci/issues/1066
+ Closes #6037
+
+- checksrc: warn on space after exclamation mark
- Fixes https://github.com/curl/curl/issues/3730
- Closes https://github.com/curl/curl/pull/3755
+ Closes #6034
+
+- test1465: verify --libcurl with binary POST data
-- tool_operate: fix mem leak when failed config parse
+- runtests: allow generating a binary sequence from hex
+
+- tool_setopt: escape binary data to hex, not octal
+
+- curl: make --libcurl show binary posts correctly
- Found by fuzzing the config file.
+ Reported-by: Stephan Mühlstrasser
+ Fixes #6031
+ Closes #6032
+
+Jay Satiro (1 Oct 2020)
+- strerror: fix null deref on winapi out-of-memory
- Reported-by: Geeknik Labs
+ Follow-up to bed5f84 from several days ago.
- Fixes https://github.com/curl/curl/issues/4767
+ Ref: https://github.com/curl/curl/pull/6005
-- [Xiang Xiao brought this change]
+Daniel Stenberg (1 Oct 2020)
+- [Kamil Dudka brought this change]
- lib: remove erroneous +x file permission on some c files
+ vtls: deduplicate some DISABLE_PROXY ifdefs
- Modified by commit eb9a604 accidentally.
+ ... in the code of gtls, nss, and openssl
- Closes https://github.com/curl/curl/pull/4756
+ Closes #5735
-- [Xiang Xiao brought this change]
+- RELEASE-NOTES: synced
- lib: fix warnings found when porting to NuttX
+- [Emil Engler brought this change]
+
+ TODO: Add OpenBSD libtool notice
- - Undefine DEBUGASSERT in curl_setup_once.h in case it was already
- defined as a system macro.
+ See #5862
+ Closes #6030
+
+- tests/unit/README: convert to markdown
- - Don't compile write32_le in curl_endian unless
- CURL_SIZEOF_CURL_OFF_T > 4, since it's only used by Curl_write64_le.
+ ... and add to dist!
- - Include <arpa/inet.h> in socketpair.c.
+ Closes #6028
+
+- tests/README: convert to markdown
- Closes https://github.com/curl/curl/pull/4756
+ Closes #6028
-- os400: Add missing CURLE error constants
+- include/README: convert to markdown
- Bug: https://github.com/curl/curl/pull/4754#issuecomment-569126922
- Reported-by: Emil Engler
+ Closes #6028
-- CURLOPT_HEADERFUNCTION.3: Document that size is always 1
+- examples/README: convert to markdown
- For compatibility with `fwrite`, the `CURLOPT_HEADERFUNCTION` callback
- is passed two `size_t` parameters which, when multiplied, designate the
- number of bytes of data passed in. In practice, CURL always sets the
- first parameter (`size`) to 1.
+ Closes #6028
+
+- configure: don't say HTTPS-proxy is enabled when disabled!
- This practice is also enshrined in documentation and cannot be changed
- in future. The documentation states that the default callback is
- `fwrite`, which means `fwrite` must be a suitable function for this
- purpose. However, the documentation also states that the callback must
- return the number of *bytes* it successfully handled, whereas ISO C
- `fwrite` returns the number of items (each of size `size`) which it
- wrote. The only way these numbers can be equal is if `size` is 1.
+ 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
- Since `size` is 1 and can never be changed in future anyway, document
- that fact explicitly and let users rely on it.
+ Whitespace is spelled without a space between white and space, so
+ make sure to consistently spell it that way across the codebase.
- Reported-by: Frank Gevaerts
- Commit-message-by: Christopher Head
+ Closes #6023
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reviewed-by: Emil Engler <me@emilengler.com>
+
+- MANUAL: update examples to resolve without redirects
- Ref: https://github.com/curl/curl/pull/2787
+ 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.
- Fixes https://github.com/curl/curl/issues/4758
+ Closes #6024
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reviewed-by: Emil Engler <me@emilengler.com>
-- examples/postinmemory.c: Call curl_global_cleanup always
+Daniel Stenberg (30 Sep 2020)
+- HISTORY: add some 2020 events
+
+- sectransp: make it build with --disable-proxy
- Prior to this change curl_global_cleanup was not called if
- curl_easy_init failed.
+ Follow-up from #5466 and f3d501dc678d80
+ Reported-by: Javier Navarro
+ Fixes #6025
+ Closes #6026
+
+- ECH: renamed from ESNI in docs and configure
- Reported-by: kouzhudong@users.noreply.github.com
+ Encrypted Client Hello (ECH) is the current name.
- Fixes https://github.com/curl/curl/issues/4751
+ Closes #6022
-Daniel Stenberg (21 Dec 2019)
-- url2file.c: fix copyright year
+- configure: use "no" instead of "disabled" for the end summary
- Follow-up to 525787269599b5
-
-- [Rickard Hallerbäck brought this change]
+ ... for consistency but also to make them more distinctly stand out next
+ to the "enabled" lines.
- examples/url2file.c: corrected a comment
+- TODO: SSH over HTTPS proxy with more backends
- The comment was confusing and suggested that setting CURLOPT_NOPROGRESS
- to 0L would both enable and disable debug output at the same time, like
- a Schrödinger's cat of CURLOPTs.
-
- Closes #4745
+ ... as right now only the libssh2 backend supports it.
-- HISTORY: OSS-Fuzz started fuzzing libcurl in 2017
+- libssh2: handle the SSH protocols done over HTTPS proxy
+
+ Reported-by: Robin Douine
+ Fixes #4295
+ Closes #6021
-- RELEASE-NOTES: synced
+- [Emil Engler brought this change]
-Jay Satiro (20 Dec 2019)
-- ngtcp2: Support the latest update key callback type
+ memdebug: remove 9 year old unused debug function
- - Remove our cb_update_key in favor of ngtcp2's new
- ngtcp2_crypto_update_key_cb which does the same thing.
+ 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.
- Several days ago the ngtcp2_update_key callback function prototype was
- changed in ngtcp2/ngtcp2@42ce09c. Though it would be possible to
- fix up our cb_update_key for that change they also added
- ngtcp2_crypto_update_key_cb which does the same thing so we'll use that
- instead.
+ Closes #5973
+
+- sendf: move Curl_sendf to dict.c and make it static
- Ref: https://github.com/ngtcp2/ngtcp2/commit/42ce09c
+ ... as the only remaining user of that function. Also fix gopher.c to
+ instead use Curl_write()
- Closes https://github.com/curl/curl/pull/4735
+ Closes #6020
-Daniel Stenberg (19 Dec 2019)
-- sws: search for "Testno:" header uncondtionally if no testno
+- ROADMAP: updates and cleanups
- Even if the initial request line wasn't found. With the fix to 1455, the
- test number is now detected correctly.
+ Fix the HSTS PR
- (Problem found when running tests in random order.)
+ 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.
- Closes #4744
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Emil Engler
+ Follow-up to 5a3efb1
+ Reported-by: iammrtau on github
+ Fixes #6003
+ Closes #6018
-- tests: set LC_ALL in more tests
+- RELEASE-NOTES: synced
+
+- ftp: make a 552 response return CURLE_REMOTE_DISK_FULL
- Follow-up to 23208e330ac0c21
+ Added test 348 to verify. Added a 'STOR' command to the test FTP
+ server to enable test 348. Documented the command in FILEFORMAT.md
- Closes #4743
+ Reported-by: Duncan Wilcox
+ Fixes #6016
+ Closes #6017
-- test165: set LC_ALL=en_US.UTF-8 too
+- pause: only trigger a reread if the unpause sticks
- On my current Debian Unstable with libidn2 2.2.0, I get an error if
- LC_ALL is set to blank. Then curl errors out with:
+ As an unpause might itself get paused again and then triggering another
+ reread doesn't help.
- curl: (3) Failed to convert www.åäö.se to ACE; could not convert string to UTF-8
+ Follow-up from e040146f22608fd9 (shipped since 7.69.1)
- Closes #4738
+ Bug: https://curl.haxx.se/mail/lib-2020-09/0081.html
+ Patch-by: Kunal Chandarana
+ Fixes #5988
+ Closes #6013
-- curl.h: add two defines for the "pre ISO C" case
+- test163[12]: require http to be built-in to run
- Without this fix, this caused a compilation failure on AIX with IBM xlc
- 13.1.3 compiler.
+ ... as speaking over an HTTPS proxy implies http!
- Reported-by: Ram Krushna Mishra
- Fixes #4739
- Closes #4740
+ Closes #6014
-- create_conn: prefer multiplexing to using new connections
-
- ... as it would previously prefer new connections rather than
- multiplexing in most conditions! The (now removed) code was a leftover
- from the Pipelining code that was translated wrongly into a
- multiplex-only world.
+- ngtcp2: adapt to new NGTCP2_PROTO_VER_MAX define
- Reported-by: Kunal Ekawde
- Bug: https://curl.haxx.se/mail/lib-2019-12/0060.html
- Closes #4732
+ Closes #6012
+
+- [Javier Blazquez brought this change]
-- test1456: remove the use of a fixed local port
+ strerror: honor Unicode API choice on Windows
- Fixup the test to instead not compare the port number. It sometimes
- caused problems like this:
+ Closes #6005
+
+- imap: make imap_send use dynbuf for the send buffer management
- "curl: (45) bind failed with errno 98: Address already in use"
+ Reuses the buffer and thereby reduces number of mallocs over a transfer.
- Closes #4733
+ Closes #6010
-Jay Satiro (18 Dec 2019)
-- CURLOPT_QUOTE.3: fix typos
-
- Prior to this change the EXAMPLE in the QUOTE/PREQUOTE/POSTQUOTE man
- pages would not compile because a variable name was incorrect.
+- Curl_send: return error when pre_receive_plain can't malloc
- Reported-by: Bylon2@users.noreply.github.com
+ ... will probably trigger some false DEAD CODE positives on non-windows
+ code analyzers for the conditional code.
- Fixes https://github.com/curl/curl/issues/4736
+ Closes #6011
-- [Gisle Vanem brought this change]
+- 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
- strerror: Fix compiler warning "empty expression"
+Dan Fandrich (23 Sep 2020)
+- tests/data: Fix some mismatched XML tags in test cases
- - Remove the final semi-colon in the SEC2TXT() macro definition.
+ This allows these test files to pass xmllint.
+
+Daniel Stenberg (23 Sep 2020)
+- pingpong: use a dynbuf for the *_pp_sendf() function
- Before: #define SEC2TXT(sec) case sec: txt = #sec; break;
+ ... reuses the same dynamic buffer instead of doing repeated malloc/free
+ cycles.
- After: #define SEC2TXT(sec) case sec: txt = #sec; break
+ 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.
- Prior to this change SEC2TXT(foo); would generate break;; which caused
- the empty expression warning.
+ Test case 103 makes 9 less allocations now (130). Down from 149 in
+ 7.72.0.
- Ref: https://github.com/curl/curl/commit/5b22e1a#r36458547
+ Closes #6004
-Daniel Stenberg (18 Dec 2019)
-- curl/parseconfig: use curl_free() to free memory allocated by libcurl
+- dynbuf: add Curl_dyn_vaddf
- Reported-by: bxac on github
- Fixes #4730
- Closes #4731
+ Closes #6004
-- curl/parseconfig: fix mem-leak
+- dynbuf: make *addf() not require extra mallocs
- When looping, first trying '.curlrc' and then '_curlrc', the function
- would not free the first string.
+ ... 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.
- Closes #4731
-
-- CURLOPT_URL.3: "curl supports SMB version 1 (only)"
+ 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.
- [skip ci]
+ Closes #5998
-- test1270: a basic -w redirect_url test
+- KNOWN_BUGS: Unable to use PKCS12 certificate with Secure Transport
- Closes #4728
+ Closes #5403
-- HISTORY: the SMB(S) support landed in 2014
+- pingpong: remove a malloc per Curl_pp_vsendf call
+
+ This typically makes 7-9 fewer mallocs per FTP transfer.
+
+ Closes #5997
-- define: remove HAVE_ENGINE_LOAD_BUILTIN_ENGINES, not used anymore
+- symbian: drop support
- It is covered by USE_OPENSSL_ENGINE now.
+ The OS is deprecated. I see no traces of anyone having actually built
+ curl for Symbian after 2012.
- Reported-by: Gisle Vanem
- Bug: https://github.com/curl/curl/commit/87b9337c8f76c21c57b204e88b68c6ecf3bd1ac0#commitcomment-36447951
+ The public headers are unmodified.
- Closes #4725
+ Closes #5989
-- lib: remove ASSIGNWITHINCONDITION exceptions, use our code style
+- RELEASE-NOTES: synced
+
+- curl_krb5.h: rename from krb5.h
- ... even for macros
+ Follow-up from f4873ebd0be32cf
- Reviewed-by: Daniel Gustafsson
- Reviewed-by: Jay Satiro
- Reported-by: Jay Satiro
- Fixes #4683
- Closes #4722
+ Turns out some older openssl installations go bananas otherwise.
+ Reported-by: Tom van der Woerdt
+ Fixes #5995
+ Closes #5996
-- tests: make sure checksrc runs on header files too
+- test1297: verify GOT_NOTHING with http proxy tunnel
-- Revert "checksrc: fix regexp for ASSIGNWITHINCONDITION"
+- http_proxy: do not count proxy headers in the header bytecount
- This reverts commit ba82673dac3e8d00a76aa5e3779a0cb80e7442af.
+ ... 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.
- Bug: #4683
+ Fixes #5992
+ Reported-by: Tom van der Woerdt
+ Closes #5994
-- KNOWN_BUGS: TLS session cache doesn't work with TFO
+- setopt: return CURLE_BAD_FUNCTION_ARGUMENT on bad argument
- [skip ci]
- Closes #4301
-
-- KNOWN_BUGS: Connection information when using TCP Fast Open
+ 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.
- Also point to #4296 for more details
- Closes #4296
+ Closes #5993
-- KNOWN_BUGS: LDAP on Windows doesn't work
+- krb5: merged security.c and krb specific FTP functions in here
- Closes #4261
-
-- docs: TLS SRP doesn't work with TLS 1.3
+ 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).
- Reported-by: sayrer on github
- Closes #4262
- [skip ci]
-
-Dan Fandrich (16 Dec 2019)
-- cirrus: Switch to the FreeBSD 12.1 point release & enable more tests.
+ Removed security.c
+ Renamed curl_sec.h to krb5.h
- A few tests are now passing on FreeBSD, so no longer skip them.
- [skip ci]
+ Closes #5987
-Daniel Stenberg (16 Dec 2019)
-- azure: the macos cmake doesn't need to install cmake
+- Curl_handler: add 'family' to each protocol
- Error: cmake 3.15.5 is already installed
- To upgrade to 3.16.1, run `brew upgrade cmake`.
+ Makes get_protocol_family() faster and it moves the knowledge about the
+ "families" to each protocol handler, where it belongs.
- Closes #4723
+ Closes #5986
-Jay Satiro (15 Dec 2019)
-- winbuild: Document CURL_STATICLIB requirement for static libcurl
+- parsedate: tune the date to epoch conversion
- A static libcurl (ie winbuild mode=static) requires that the user define
- CURL_STATICLIB when using it in their application. This is already
- covered in the FAQ and INSTALL.md, but is a pretty important point so
- now it's noted in the BUILD.WINDOWS.txt as well.
+ 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).
- Assisted-by: Michael Vittiglio
-
- Closes https://github.com/curl/curl/pull/4721
-
-Daniel Stenberg (15 Dec 2019)
-- [Santino Keupp brought this change]
+ Closes #5985
- libssh2: add support for ECDSA and ed25519 knownhost keys
+- cmake: remove scary warning
- ... if a new enough libssh2 version is present.
+ Remove the text saying
- Source: https://curl.haxx.se/mail/archive-2019-12/0023.html
- Co-Authored-by: Daniel Stenberg
- Closes #4714
-
-- lib1591: free memory properly on OOM, in the trailers callback
+ "the curl cmake build system is poorly maintained. Be aware"
- Detected by torture tests.
+ ... not because anything changed just now, but to encourage users to use
+ it and subsequently improve it.
- Closes #4720
+ Closes #5984
-- runtests: --repeat=[num] to repeat tests
-
- Closes #4715
+- docs/MQTT: remove outdated paaragraphs
-- RELEASE-NOTES: synced
+- docs/MQTT: not experimental anymore
+
+ Follow-up to e37e4468688d8f
-- azure: add a torture test on mac
+- docs/RESOURCES: remove
- Uses --shallow=25 to keep it small enough to get through in time.
+ 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 #4712
+ Closes #5980
-- multi: free sockhash on OOM
+- docs/TheArtOfHttpScripting: convert to markdown
- This would otherwise leak memory in the error path.
+ Makes it easier to browse on github etc. Offers (better) links.
- Detected by torture test 1540.
+ 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 #4713
+ Closes #5981
-Marcel Raad (13 Dec 2019)
-- tests: use DoH feature for DoH tests
-
- Previously, http/2 was used instead.
+- BUGS: convert document to markdown
- Assisted-by: Jay Satiro
- Closes https://github.com/curl/curl/pull/4692
+ Closes #5979
-- hostip: suppress compiler warning
+- --help: strdup the category
- With `--disable-doh --disable-threaded-resolver`, the `dns` parameter
- is not used.
+ ... since it is converted and the original pointer is freed on Windows
+ unicode handling.
- Closes https://github.com/curl/curl/pull/4692
+ Follow-up to aa8777f63febc
+ Fixes #5977
+ Closes #5978
+ Reported-by: xwxbug on github
-- tests: fix build with `CURL_DISABLE_DOH`
-
- Closes https://github.com/curl/curl/pull/4692
+- CHECKSRC: document two missing warnings
+
+- RELEASE-NOTES: synced
-Daniel Stenberg (13 Dec 2019)
-- azure: add a torture test
+- ftp: avoid risk of reading uninitialized integers
- Skipping all FTP tests for speed reasons.
+ If the received PASV response doesn't match the expected pattern, we
+ could end up reading uninitialized integers for IP address and port
+ number.
- Closes #4697
+ Issue pointed out by muse.dev
+ Closes #5972
-- azure: make the default build use --enable-debug --enable-werror
+- [Quentin Balland brought this change]
-- ntlm_wb: fix double-free in OOM
+ easy_reset: clear retry counter
- Detected by torture testing test 1310
-
- Closes #4710
+ Closes #5975
+ Fixes #5974
-Dan Fandrich (13 Dec 2019)
-- cirrus: Drop the FreeBSD 10.4 build
+- ftp: get rid of the PPSENDF macro
- Upstream support for 10.4 ended a year ago, and it looks like the image
- is now gone, too.
- [skip ci]
-
-Daniel Stenberg (13 Dec 2019)
-- unit1620: fix bad free in OOM
+ 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 #4709
+ Closes #5971
-- unit1609: fix mem-leak in OOM
+- man pages: switch to https://example.com URLs
- Closes #4709
+ 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
-- unit1607: fix mem-leak in OOM
+- github: remove the duplicate "Security vulnerability" entry
+
+ ... since github adds an entry automatically by itself.
- Closes #4709
+ Closes #5970
+
+- [Emil Engler brought this change]
-- lib1559: fix mem-leak in OOM
+ 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 #4709
+ Closes #5936
-- lib1557: fix mem-leak in OOM
+- [Emil Engler brought this change]
+
+ urlapi: use more Curl_safefree
- Closes #4709
+ Closes #5968
-- altsvc: make the save function ignore NULL filenames
+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.
- It might happen in OOM situations. Detected bv torture tests.
+ Reviewed-by: rcombs on github
+ Reviewed-by: Daniel Stenberg
- Closes #4707
+ Follow up to #5886
-- curl: fix memory leak in OOM in etags logic
+- multi: reuse WinSock events variable in Curl_multi_wait
- Detected by torture tests
+ 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 #4706
+ Closes #5886
-- doh: make it behave when built without proxy support
+Daniel Stenberg (16 Sep 2020)
+- TODO: dynamically decide to use socketpair
- Reported-by: Marcel Raad
- Bug: https://github.com/curl/curl/pull/4692#issuecomment-564115734
+ Suggested-by: Anders Bakken
- Closes #4704
+ Closes #4829
-- curl: improved cleanup in upload error path
+- TODO: add PR reference for native IDN support on macOS
- Memory leak found by torture test 58
+ As there was work started on this that never got completed.
- Closes #4705
+ Closes #5371
-- mailmap: fix Andrew Ishchuk
+- tool_help.h: update copyright year range
+
+ Follow-up from aa8777f63febca
-- travis: make torture use --shallow=40
+- CI/azure: disable test 571 in the msys2 builds
+
+ It's just too flaky there
- As a first step to enable it to run over a more diverse set of tests in
- a reasonable time.
+ Reviewed-by: Marc Hoersken
+ Closes #5954
-- runtests: introduce --shallow to reduce huge torture tests
+- tool_writeout: protect fputs() from NULL
- When set, shallow mode limits runtests -t to make no more than NUM fails
- per test case. If more are found, it will randomly discard entries until
- the number is right. The random seed can also be set.
+ When the code was changed to do fputs() instead of fprintf() it got
+ sensitive for NULL pointers; add checks for that.
- This is particularly useful when running MANY tests as then most torture
- failures will already fail the same functions over and over and make the
- total operation painfully tedious.
+ Follow-up from 0c1e767e83ec66
- Closes #4699
+ Closes #5963
-- conncache: CONNECT_ONLY connections assumed always in-use
+- test3015: verify stdout "as text"
- This makes them never to be considered "the oldest" to be discarded when
- reaching the connection cache limit. The reasoning here is that
- CONNECT_ONLY is primarily used in combination with using the
- connection's socket post connect and since that is used outside of
- curl's knowledge we must assume that it is in use until explicitly
- closed.
+ Follow-up from 0c1e767e83e to please win32 tests
- Reported-by: Pavel Pavlov
- Reported-by: Pavel Löbl
- Fixes #4426
- Fixes #4369
- Closes #4696
-
-- [Gisle Vanem brought this change]
+ Closes #5962
- vtls: make BearSSL possible to set with CURL_SSL_BACKEND
+- travis: use libressl v3.1.4 instead of master
- Ref: https://github.com/curl/curl/commit/9b879160df01e7ddbb4770904391d3b74114302b#commitcomment-36355622
+ ... as their git master seems too fragile to use (and 3.2.1 which is the
+ latest has a build failure).
- Closes #4698
+ Closes #5964
-- RELEASE-NOTES: synced
+- tests/FILEFORMAT: document type=shell for <command>
-- travis: remove "coverage", make it "torture"
+- tests/FILEFORMAT: document nonewline support for <file>
- The coveralls service and test coverage numbers are just too unreliable.
- Removed badge from README.md as well.
+ The one in <client>, that creates files.
- Fixes #4694
- Closes #4695
+ Follow-up from b83947c8df7
+
+- [anio brought this change]
-- azure: add libssh2 and cmake macos builds
+ tool_writeout: add new writeout variable, %{num_headers}
- Removed the macos libssh2 build from travis
+ This variable gives the number of headers.
- Closes #4686
+ Closes #5947
-- curl: use errorf() better
-
- Change series of error outputs to use errorf().
+- tool_urlglob: fix compiler warning "unreachable code"
- Only errors that are due to mistakes in command line option usage should
- use helpf(), other types of errors in the tool should rather use
- errorf().
+ (On Windows builds.)
- Closes #4691
+ Follow-up to 70a3b003d9
-Jay Satiro (9 Dec 2019)
-- [Marc Hoersken brought this change]
+- [Gergely Nagy brought this change]
- tests: make it possible to set executable extensions
+ vtls: deduplicate client certificates in ssl_config_data
- This enables the use of Windows Subsystem for Linux (WSL) to run the
- testsuite against Windows binaries while using Linux servers.
+ 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.
- This commit introduces the following environment variables:
- - CURL_TEST_EXE_EXT: set the executable extension for all components
- - CURL_TEST_EXE_EXT_TOOL: set it for the curl tool only
- - CURL_TEST_EXE_EXT_SSH: set it for the SSH tools only
+ 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.
- Later testcurl.pl could be adjusted to make use of those variables.
- - CURL_TEST_EXE_EXT_SRV: set it for the test servers only
+ 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.
- (This is one of several commits to support use of WSL for the tests.)
+ Add test 1913 and 1914 to verify. Updated several tests accordingly due
+ to the updated SIZE behavior.
- Closes https://github.com/curl/curl/pull/3899
+ Reported-by: Tomas Berger
+ Fixes #5953
+ Closes #5957
-- [Marc Hoersken brought this change]
+- curl: make checkpasswd use dynbuf
+
+ Closes #5952
- tests: fix permissions of ssh keys in WSL
+- curl: make glob_match_url use dynbuf
- Keys created on Windows Subsystem for Linux (WSL) require it for some
- reason.
+ Closes #5952
+
+- curl: make file2memory use dynbuf
- (This is one of several commits to support use of WSL for the tests.)
+ Closes #5952
+
+- curl: make file2string use dynbuf
- Ref: https://github.com/curl/curl/pull/3899
+ Closes #5952
-- [Marc Hoersken brought this change]
+- [Antarpreet Singh brought this change]
- tests: use \r\n for log messages in WSL
+ imap: set cselect_bits to CURL_CSELECT_IN initially
- Bash in Windows Subsystem for Linux (WSL) requires it for some reason.
+ ... when continuing a transfer from a FETCH response.
- (This is one of several commits to support use of WSL for the tests.)
+ 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.
- Ref: https://github.com/curl/curl/pull/3899
+ Closes #5961
-- [Andrew Ishchuk brought this change]
+- RELEASE-NOTES: synced
- winbuild: Define CARES_STATICLIB when WITH_CARES=static
-
- When libcurl is built with MODE=static, c-ares is forced into static
- linkage too. That doesn't happen when MODE=dll so linker would break
- over undefined symbols.
+- test434: test -K use in a single line without newline
- closes https://github.com/curl/curl/pull/4688
+ Closes #5946
-Daniel Stenberg (9 Dec 2019)
-- conn: always set bits.close with connclose()
+- runtests: allow creating files without newlines
- Closes #4690
+ Closes #5946
-- cirrus: enable clang sanitizers on freebsd 13
-
-- conncache: fix multi-thread use of shared connection cache
+- curl: use curlx_dynbuf for realloc when loading config files
- It could accidentally let the connection get used by more than one
- thread, leading to double-free and more.
+ ... fixes an integer overflow at the same time.
- Reported-by: Christopher Reid
- Fixes #4544
- Closes #4557
-
-- azure: add a vanilla macos build
+ Reported-by: ihsinme on github
+ Assisted-by: Jay Satiro
- Closes #4685
+ Closes #5946
-- curl: make the etag load logic work without fseek
-
- The fseek()s were unnecessary and caused Coverity warning CID 1456554
+- dynbuf: provide curlx_ names for reuse by the curl tool
- Closes #4681
-
-- mailmap: Mohammad Hasbini
-
-- [Mohammad Hasbini brought this change]
+ Closes #5946
- docs: fix some typos
+- dynbuf: make sure Curl_dyn_tail() zero terminates
- Closes #4680
+ Closes #5959
-- RELEASE-NOTES: synced
+- tests: add test1912 to the dist
+
+ Follow-up to 70984ce1be4cab6c
-Jay Satiro (5 Dec 2019)
-- lib: fix some loose ends for recently added CURLSSLOPT_NO_PARTIALCHAIN
+- docs/LICENSE-MIXING: remove
- Add support for CURLSSLOPT_NO_PARTIALCHAIN in CURLOPT_PROXY_SSL_OPTIONS
- and OS400 package spec.
+ This document is not maintained and I feel that it doesn't provide much
+ value to users anymore (if it ever did).
- Also I added the option to the NameValue list in the tool even though it
- isn't exposed as a command-line option (...yet?). (NameValue stringizes
- the option name for the curl cmd -> libcurl source generator)
+ Closes #5955
+
+- [Laramie Leavitt brought this change]
+
+ http: consolidate nghttp2_session_mem_recv() call paths
- Follow-up to 564d88a which added CURLSSLOPT_NO_PARTIALCHAIN.
+ 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.
- Ref: https://github.com/curl/curl/pull/4655
-
-- setopt: Fix ALPN / NPN user option when built without HTTP2
+ 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.
- - Stop treating lack of HTTP2 as an unknown option error result for
- CURLOPT_SSL_ENABLE_ALPN and CURLOPT_SSL_ENABLE_NPN.
+ 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.
- Prior to this change it was impossible to disable ALPN / NPN if libcurl
- was built without HTTP2. Setting either option would result in
- CURLE_UNKNOWN_OPTION and the respective internal option would not be
- set. That was incorrect since ALPN and NPN are used independent of
- HTTP2.
+ Also updated a few nghttp2 callsites to include error messages and added
+ a few additional error checks.
- Reported-by: Shailesh Kapse
+ Closes #5648
+
+- HISTORY: mention alt-svc added in 2019
- Fixes https://github.com/curl/curl/issues/4668
- Closes https://github.com/curl/curl/pull/4672
+ ... and make 1996 the first year subtitle
-Daniel Stenberg (5 Dec 2019)
-- etag: allow both --etag-compare and --etag-save in same cmdline
+- base64: also build for pop3 and imap
+
+ Follow-up to the fix in 20417a13fb8f83
- Fixes #4669
- Closes #4678
+ Reported-by: Michael Olbrich
+ Fixes #5937
+ Closes #5948
-Marcel Raad (5 Dec 2019)
-- curl_setup: fix `CURLRES_IPV6` condition
+- base64: enable in build with SMTP
- Move the definition of `CURLRES_IPV6` to before undefining
- `HAVE_GETADDRINFO`. Regression from commit 67a08dca27a which caused
- some tests to fail and others to be skipped with c-ares.
+ The oauth2 support is used with SMTP and it uses base64 functions.
- Fixes https://github.com/curl/curl/issues/4673
- Closes https://github.com/curl/curl/pull/4677
+ Reported-by: Michael Olbrich
+ Fixes #5937
+ Closes #5938
-Daniel Stenberg (5 Dec 2019)
-- test342: make it return a 304 as the tag matches
+- curl_mime_headers.3: fix the example's use of curl_slist_append
+
+ Reported-by: sofaboss on github
+ Fixes #5942
+ Closes #5943
-Peter Wu (4 Dec 2019)
-- CMake: add support for building with the NSS vtls backend
+- lib583: fix enum mixup
- Options are cross-checked with configure.ac and acinclude.m4.
- Tested on Arch Linux, untested on other platforms like Windows or macOS.
+ grrr the previous follow-up to 17fcdf6a31 was wrong
+
+- libtest: fix build errors
- Closes #4663
- Reviewed-by: Kamil Dudka
+ Follow-up from 17fcdf6a310d4c8076
-Daniel Stenberg (4 Dec 2019)
-- azure: add more builds
+- lib: fix -Wassign-enum warnings
- ... removed two from travis (that now runs on azure instead)
+ configure --enable-debug now enables -Wassign-enum with clang,
+ identifying several enum "abuses" also fixed.
- Closes #4671
+ Reported-by: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/879007f8118771f4896334731aaca5850a154675#commitcomment-42087553
+
+ Closes #5929
-- CURLOPT_VERBOSE.3: see also ERRORBUFFER
+- RELEASE-NOTES: synced
-- hostip4.c: bump copyright year range
+- [Diven Qi brought this change]
-Marcel Raad (3 Dec 2019)
-- configure: enable IPv6 support without `getaddrinfo`
-
- This makes it possible to recognize and connect to literal IPv6
- addresses when `getaddrinfo` is not available, which is already the
- case for the CMake build. This affects e.g. classic MinGW because it
- still targets Windows 2000 by default, where `getaddrinfo` is not
- available, but general IPv6 support is.
+ url: use blank credentials when using proxy w/o username and password
- Instead of checking for `getaddrinfo`, check for `sockaddr_in6` as the
- CMake build does.
+ Fixes proxy regression brought in commit ad829b21ae (7.71.0)
- Closes https://github.com/curl/curl/pull/4662
+ Fixed #5911
+ Closes #5914
-- curl_setup: disable IPv6 resolver without `getaddrinfo`
+- travis: add a build using libressl (from git master)
- Also, use `CURLRES_IPV6` only for actual DNS resolution, not for IPv6
- address support. This makes it possible to connect to IPv6 literals by
- setting `ENABLE_IPV6` even without `getaddrinfo` support. It also fixes
- the CMake build when using the synchronous resolver without
- `getaddrinfo` support.
+ The v3.2.1 tag (latest release atm) results in a broken build.
- Closes https://github.com/curl/curl/pull/4662
+ Closes #5932
-Daniel Stenberg (3 Dec 2019)
-- github action/azure pipeline: run 'make test-nonflaky' for tests
+- configure: let --enable-debug set -Wenum-conversion with gcc >= 10
- To match travis and give more info on failures.
-
-- openssl: CURLSSLOPT_NO_PARTIALCHAIN can disable partial cert chains
+ 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 #4655
+ Closes #5930
-- openssl: set X509_V_FLAG_PARTIAL_CHAIN
+- openssl: consider ALERT_CERTIFICATE_EXPIRED a failed verification
- Have intermediate certificates in the trust store be treated as
- trust-anchors, in the same way as self-signed root CA certificates
- are. This allows users to verify servers using the intermediate cert
- only, instead of needing the whole chain.
+ 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.
- Other TLS backends already accept partial chains.
+ This unifies the libcurl return code and makes libressl run test 313
+ (CRL testing) fine.
- Reported-by: Jeffrey Walton
- Bug: https://curl.haxx.se/mail/lib-2019-11/0094.html
+ Closes #5934
-- curl: show better error message when no homedir is found
-
- Reported-by: Vlastimil Ovčáčík
- Fixes #4644
- Closes #4665
+- FAQ: refreshed some very old language
-- OPENSOCKETFUNCTION.3: correct the purpose description
+- cmake: make HTTP_ONLY also disable MQTT
- Reported-by: Jeff Mears
- Bug: https://curl.haxx.se/mail/lib-2019-12/0007.html
+ ... and alphasort the order of disabling protocols to make it easier to
+ browse.
- Closes #4667
+ Closes #5931
-- [Peter Wu brought this change]
-
- travis: do not use OVERRIDE_CC or OVERRIDE_CXX if empty
+- libtest: remove lib1541 leftovers
- Fixes the macOS builds where OVERRIDE_CC and OVERRIDE_CXX are not set.
+ Caused automake errors.
- Reported-by: Jay Satiro
- Fixes #4659
- Closes #4661
- Closes #4664
+ Follow-up to 8ca54a03ea08a
-- azure-pipelines: fix the test script
-
-- Azure Pipelines: initial CI setup
+- tests/libtests: remove test 1900 and 2033
- [skip ci]
-
-- docs: add "added: 7.68.0" to the --etag-* docs
-
-- copyright: fix the year ranges for two files
+ We already remove the test files, now remove the libtest codes as well.
- Follow-up to 9c1806ae
+ Follow-up to e50a877df74
-Jay Satiro (1 Dec 2019)
-- build: Disable Visual Studio warning "conditional expression is constant"
+Marc Hoersken (7 Sep 2020)
+- CI/azure: add test number to title for display in analytics
- - Disable warning C4127 "conditional expression is constant" globally
- in curl_setup.h for when building with Microsoft's compiler.
+ 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.
- This mainly affects building with the Visual Studio project files found
- in the projects dir.
+ Bump test case revision to make Azure DevOps update titles.
- Prior to this change the cmake and winbuild build systems already
- disabled 4127 globally for when building with Microsoft's compiler.
- Also, 4127 was already disabled for all build systems in the limited
- circumstance of the WHILE_FALSE macro which disabled the warning
- specifically for while(0). This commit removes the WHILE_FALSE macro and
- all other cruft in favor of disabling globally in curl_setup.
+ Closes #5927
+
+Daniel Stenberg (6 Sep 2020)
+- altsvc: clone setting in curl_easy_duphandle
- Background:
+ The cache content is not duplicated, like other caches, but the setting
+ and specified file name are.
- We have various macros that cause 0 or 1 to be evaluated, which would
- cause warning C4127 in Visual Studio. For example this causes it:
+ 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.
- #define Curl_resolver_asynch() 1
+ Closes #5923
+
+- test1541: remove since it is a known bug
- Full behavior is not clearly defined and inconsistent across versions.
- However it is documented that since VS 2015 Update 3 Microsoft has
- addressed this somewhat but not entirely, not warning on while(true) for
- example.
+ 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.
- Prior to this change some C4127 warnings occurred when I built with
- Visual Studio using the generated projects in the projects dir.
+ The test code in lib1541.c is left in git to allow us to restore it when
+ we get to fix this.
- Closes https://github.com/curl/curl/pull/4658
+ Closes #5922
-- openssl: retrieve reported LibreSSL version at runtime
+- tests: remove pipelining tests
- - Retrieve LibreSSL runtime version when supported (>= 2.7.1).
+ Remove the tests 530, 584, 1900, 1901, 1902, 1903 and 2033. They were
+ previously disabled.
- For earlier versions we continue to use the compile-time version.
+ The Pipelining code was removed from curl in commit 2f44e94efb3df8e,
+ April 2019.
- Ref: https://man.openbsd.org/OPENSSL_VERSION_NUMBER.3
-
- Closes https://github.com/curl/curl/pull/2425
+ Closes #5921
-- strerror: Add Curl_winapi_strerror for Win API specific errors
-
- - In all code call Curl_winapi_strerror instead of Curl_strerror when
- the error code is known to be from Windows GetLastError.
+- curl: retry delays in parallel mode no longer sleeps blocking
- Curl_strerror prefers CRT error codes (errno) over Windows API error
- codes (GetLastError) when the two overlap. When we know the error code
- is from GetLastError it is more accurate to prefer the Windows API error
- messages.
+ 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.
- Reported-by: Richard Alcock
+ Closes #5917
+
+- curl:parallel_transfers: make sure retry readds the transfer
- Fixes https://github.com/curl/curl/issues/4550
- Closes https://github.com/curl/curl/pull/4581
+ Reported-by: htasta on github
+ Fixes #5905
+ Closes #5917
-Daniel Stenberg (2 Dec 2019)
-- global_init: undo the "intialized" bump in case of failure
+- build: drop support for building with Watcom
- ... so that failures in the global init function don't count as a
- working init and it can then be called again.
+ These files are not maintained, they seem to have no users, Watcom
+ compilers look like not having users nor releases anymore.
- Reported-by: Paul Groke
- Fixes #4636
- Closes #4653
+ Closes #5918
-- parsedate: offer a getdate_capped() alternative
+- winbuild/rundebug.cmd: remove
- ... and use internally. This function will return TIME_T_MAX instead of
- failure if the parsed data is found to be larger than what can be
- represented. TIME_T_MAX being the largest value curl can represent.
+ Seems to have been added by mistake? Not included in dists.
- Reviewed-by: Daniel Gustafsson
- Reported-by: JanB on github
- Fixes #4152
- Closes #4651
+ Closes #5919
-- docs: add more references to curl_multi_poll
+- curl: in retry output don't call all problems "transient"
- Fixes #4643
- Closes #4652
-
-- sha256: bump the copyright year range
+ ... because when --retry-all-errors is used, the error isn't necessarily
+ transient at all.
- Follow-up from 66e21520f
+ Closes #5916
-Daniel Gustafsson (28 Nov 2019)
-- curl_setup_once: consistently use WHILE_FALSE in macros
+- easygetopt: pass a valid enum to avoid compiler warning
- The WHILE_FALSE construction is used to avoid compiler warnings in
- macro constructions. This fixes a few instances where it was not
- used in order to keep the code consistent.
+ "integer constant not in range of enumerated type 'CURLoption'"
- Closes #4649
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reported-by: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/6ebe63fac23f38df911edc348e8ccc72280f9434#commitcomment-42042843
+
+ Closes #5915
-Daniel Stenberg (28 Nov 2019)
-- [Steve Holme brought this change]
+- [Emil Engler brought this change]
- http_ntlm: Remove duplicate NSS initialisation
+ tests: Add tests for new --help
- Given that this is performed by the NTLM code there is no need to
- perform the initialisation in the HTTP layer. This also keeps the
- initialisation the same as the SASL based protocols and also fixes a
- possible compilation issue if both NSS and SSPI were to be used as
- multiple SSL backends.
+ This commit is a part of "--help me if you can"
- Reviewed-by: Kamil Dudka
- Closes #3935
+ Closes #5680
+
+- [Emil Engler brought this change]
-Daniel Gustafsson (28 Nov 2019)
-- checksrc: fix regexp for ASSIGNWITHINCONDITION
+ tool: update --help with categories
- The regexp looking for assignments within conditions was too greedy
- and matched a too long string in the case of multiple conditionals
- on the same line. This is basically only a problem in single line
- macros, and the code which exemplified this was essentially:
+ This commit is a part of "--help me if you can"
- do { if((x) != NULL) { x = NULL; } } while(0)
+ Closes #5680
+
+- [Emil Engler brought this change]
+
+ docs: add categories to all cmdline opts
- ..where the final parenthesis of while(0) matched the regexp, and
- the legal assignment in the block triggered the warning. Fix by
- making the regexp less greedy by matching for the tell-tale signs
- of the if statement ending.
+ Adapted gen.pl with 'listcats'
- Also remove the one occurrence where the warning was disabled due
- to a construction like the above, where the warning didn't apply
- when fixed.
+ This commit is a part of "--help me if you can"
- Closes #4647
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Closes #5680
-Daniel Stenberg (28 Nov 2019)
- RELEASE-NOTES: synced
-- [Maros Priputen brought this change]
+- [ihsinme brought this change]
- curl: two new command line options for etags
-
- --etag-compare and --etag-save
+ connect.c: remove superfluous 'else' in Curl_getconnectinfo
- Suggested-by: Paul Hoffman
- Fixes #4277
- Closes #4543
+ Closes #5912
-Daniel Gustafsson (28 Nov 2019)
-- docs: fix typos
-
-Daniel Stenberg (28 Nov 2019)
-- mailmap: Niall O'Reilly's name
-
-- [Niall O'Reilly brought this change]
-
- doh: use dedicated probe slots
-
- ... to easier allow additional DNS transactions.
-
- Closes #4629
+- [Samuel Marks brought this change]
-- travis: build ngtcp2 with --enable-lib-only
+ CMake: remove explicit `CMAKE_ANSI_CFLAGS`
- ... makes it skip the examples and other stuff we don't neeed.
+ 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
- Closes #4646
+ Reviewed-By: Peter Wu
+ Closes #5439
-- [David Benjamin brought this change]
+- [cbe brought this change]
- ngtcp2: fix thread-safety bug in error-handling
+ libssh2: pass on the error from ssh_force_knownhost_key_type
- ERR_error_string(NULL) should never be called. It places the error in a
- global buffer, which is not thread-safe. Use ERR_error_string_n with a
- local buffer instead.
-
- Closes #4645
-
-- travis: export the CC/CXX variables when set
-
- Suggested-by: Peter Wu
- Fixes #4637
- Closes #4640
+ Closes #5909
-Marcel Raad (26 Nov 2019)
-- dist: add error-codes.pl
+- scripts/delta: add diffstat summary
- Follow-up to commit 74f441c6d31.
- This should fix test 1175 when run via the daily source tarballs.
-
- Closes https://github.com/curl/curl/pull/4638
+ ... and make output more table-like
-Daniel Stenberg (26 Nov 2019)
-- [John Schroeder brought this change]
+- [Martin Bašti brought this change]
- curl: fix --upload-file . hangs if delay in STDIN
+ http_proxy: do not crash with HTTPS_PROXY and NO_PROXY set
- Attempt to unpause a busy read in the CURLOPT_XFERINFOFUNCTION.
+ ... in case NO_PROXY takes an effect
- When uploading from stdin in non-blocking mode, a delay in reading
- the stream (EAGAIN) causes curl to pause sending data
- (CURL_READFUNC_PAUSE). Prior to this change, a busy read was
- detected and unpaused only in the CURLOPT_WRITEFUNCTION handler.
- This change performs the same busy read handling in a
- CURLOPT_XFERINFOFUNCTION handler.
+ Without this patch, the following command crashes:
- Fixes #2051
- Closes #4599
- Reported-by: bdry on github
-
-- [John Schroeder brought this change]
-
- XFERINFOFUNCTION: support CURL_PROGRESSFUNC_CONTINUE
+ $ GIT_CURL_VERBOSE=1 NO_PROXY=github.com HTTPS_PROXY=https://example.com \
+ git clone https://github.com/curl/curl.git
- (also for PROGRESSFUNCTION)
+ Minimal libcurl-based reproducer:
- By returning this value from the callback, the internal progress
- function call is still called afterward.
+ #include <curl/curl.h>
- Closes #4599
-
-- [Michael Forney brought this change]
-
- TLS: add BearSSL vtls implementation
+ 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;
+ }
- Closes #4597
+ Assisted-by: Kamil Dudka
+ Bug: https://bugzilla.redhat.com/1873327
+ Closes #5902
-- curl_multi_wakeup.3: add example and AVAILABILITY
+- travis: add a CI job with openssl3 (from git master)
- Reviewed-by: Gergely Nagy
- Closes #4635
-
-- [Gergely Nagy brought this change]
+ Closes #5908
- multi: add curl_multi_wakeup()
+- openssl: avoid error conditions when importing native CA
- This commit adds curl_multi_wakeup() which was previously in the TODO
- list under the curl_multi_unblock name.
+ 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.
- On some platforms and with some configurations this feature might not be
- available or can fail, in these cases a new error code
- (CURLM_WAKEUP_FAILURE) is returned from curl_multi_wakeup().
-
- Fixes #4418
- Closes #4608
-
-Jay Satiro (24 Nov 2019)
-- [Xiaoyin Liu brought this change]
+ Closes #5907
- schannel: fix --tls-max for when min is --tlsv1 or default
-
- Prior to this change schannel ignored --tls-max (CURL_SSLVERSION_MAX_
- macros) when --tlsv1 (CURL_SSLVERSION_TLSv1) or default TLS
- (CURL_SSLVERSION_DEFAULT), using a max of TLS 1.2 always.
+- setopt: avoid curl_ on local variable
- Closes https://github.com/curl/curl/pull/4633
+ Closes #5906
-- checksrc.bat: Add a check for vquic and vssh directories
+- mqtt.c: avoid curl_ prefix on local variable
- Ref: https://github.com/curl/curl/pull/4607
+ Closes #5906
-- projects: Fix Visual Studio projects SSH builds
-
- - Generate VQUIC and VSSH filenames in Visual Studio project files.
-
- Prior to this change generated Visual Studio project configurations that
- enabled SSH did not build properly. Broken since SSH files were moved to
- lib/vssh 3 months ago in 5b2d703.
+- wildcard: strip "curl_" prefix from private symbols
- Fixes https://github.com/curl/curl/issues/4492
- Fixes https://github.com/curl/curl/issues/4630
- Closes https://github.com/curl/curl/pull/4607
+ Closes #5906
-Daniel Stenberg (23 Nov 2019)
-- RELEASE-NOTES: synced
-
-Jay Satiro (22 Nov 2019)
-- openssl: Revert to less sensitivity for SYSCALL errors
+- vtls: make it 'struct Curl_ssl_session'
- - Disable the extra sensitivity except in debug builds (--enable-debug).
+ Use uppercase C for internal symbols.
- - Improve SYSCALL error message logic in ossl_send and ossl_recv so that
- "No error" / "Success" socket error text isn't shown on SYSCALL error.
+ Closes #5906
+
+- curl_threads: make it 'struct Curl_actual_call'
- Prior to this change 0ab38f5 (precedes 7.67.0) increased the sensitivity
- of OpenSSL's SSL_ERROR_SYSCALL error so that abrupt server closures were
- also considered errors. For example, a server that does not send a known
- protocol termination point (eg HTTP content length or chunked encoding)
- _and_ does not send a TLS termination point (close_notify alert) would
- cause an error if it closed the connection.
+ Internal names should not be prefixed "curl_"
- To be clear that behavior made it into release build 7.67.0
- unintentionally. Several users have reported it as an issue.
+ Closes #5906
+
+- schannel: make it 'struct Curl_schannel*'
- Ultimately the idea is a good one, since it can help prevent against a
- truncation attack. Other SSL backends may already behave similarly (such
- as Windows native OS SSL Schannel). However much more of our user base
- is using OpenSSL and there is a mass of legacy users in that space, so I
- think that behavior should be partially reverted and then rolled out
- slowly.
+ As internal global names should use captical C.
- This commit changes the behavior so that the increased sensitivity is
- disabled in all curl builds except curl debug builds (DEBUGBUILD). If
- after a period of time there are no major issues then it can be enabled
- in dev and release builds with the newest OpenSSL (1.1.1+), since users
- using the newest OpenSSL are the least likely to have legacy problems.
+ Closes #5906
+
+- hash: make it 'struct Curl_hash'
- Bug: https://github.com/curl/curl/issues/4409#issuecomment-555955794
- Reported-by: Bjoern Franke
+ As internal global names should use captical C.
- Fixes https://github.com/curl/curl/issues/4624
- Closes https://github.com/curl/curl/pull/4623
+ Closes #5906
-- [Daniel Stenberg brought this change]
-
- openssl: improve error message for SYSCALL during connect
+- llist: make it "struct Curl_llist"
- Reported-by: Paulo Roberto Tomasi
- Bug: https://curl.haxx.se/mail/archive-2019-11/0005.html
+ As internal global names should use captical C.
- Closes https://github.com/curl/curl/pull/4593
+ Closes #5906
-Daniel Stenberg (22 Nov 2019)
-- test1175: verify symbols-in-versions and libcurl-errors.3 in sync
+Marc Hoersken (2 Sep 2020)
+- telnet.c: depend on static requirement of WinSock version 2
- Closes #4628
-
-- include: make CURLE_HTTP3 use a new error code
+ Drop dynamic loading of ws2_32.dll and instead rely on the
+ imported version which is now required to be at least 2.2.
- To avoid potential issues with error code reuse.
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Viktor Szakats
- Reported-by: Christoph M. Becker
- Assisted-by: Dan Fandrich
- Fixes #4601
- Closes #4627
-
-- bump: next release will be 7.68.0
+ Closes #5854
-- curl: add --parallel-immediate
+- win32: drop support for WinSock version 1, require version 2
- Starting with this change when doing parallel transfers, without this
- option set, curl will prefer to create new transfers multiplexed on an
- existing connection rather than creating a brand new one.
+ IPv6, telnet and now also the multi API require WinSock
+ version 2 which is available starting with Windows 95.
- --parallel-immediate can be set to tell curl to prefer to use new
- connections rather than to wait and try to multiplex.
+ Therefore we think it is time to drop support for version 1.
- libcurl-wise, this means that curl will set CURLOPT_PIPEWAIT by default
- on parallel transfers.
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Viktor Szakats
- Suggested-by: Tom van der Woerdt
- Closes #4500
+ Follow up to #5634
+ Closes #5854
-Daniel Gustafsson (20 Nov 2019)
-- [Victor Magierski brought this change]
-
- docs: fix typos
+- select: align poll emulation to return all relevant events
- Change 'experiemental' to 'experimental'.
+ 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.
- Closes #4618
- Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
-
-Jay Satiro (18 Nov 2019)
-- projects: Fix Visual Studio wolfSSL configurations
+ Also fix indentation in input event handling block.
- - s/USE_CYASSL/USE_WOLFSSL/
-
- - Remove old compatibility macros.
+ Assisted-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
- Follow-up to 1c6c59a from several months ago when CyaSSL named symbols
- were renamed to wolfSSL. The wolfSSL library was formerly named CyaSSL
- and we kept using their old name for compatibility reasons, until
- earlier this year.
+ Replaces #5852
+ Closes #5883
-Daniel Stenberg (18 Nov 2019)
-- RELEASE-NOTES: synced
+- CI/azure: MQTT is now enabled by default
+
+ Reviewed-by: Daniel Stenberg
+
+ Follow up to #5858
+ Closes #5903
-- [Javier Blazquez brought this change]
+Daniel Stenberg (2 Sep 2020)
+- copyright.pl: ignore buildconf
- ngtcp2: use overflow buffer for extra HTTP/3 data
-
- Fixes #4525
- Closes #4603
+- test971: show test mismatches "inline"
-- altsvc: bump to h3-24
+- lib/Makefile.am: bump VERSIONINFO due to new functions
- ... as both ngtcp2 and quiche now support that in their master branches
+ ... we're generally bad at this, but we are adding new functions for
+ this release.
- Closes #4604
+ Closes #5899
-- ngtcp2: free used resources on disconnect
+- optiontable: use DEBUGBUILD
- Fixes #4614
- Closes #4615
+ Follow-up to commit 6e18568ba38 (#5877)
-- ngtcp2: handle key updates as ngtcp2 master branch tells us
+- cmdline-opts/gen.pl: generate nicer "See Also" in curl.1
- Reviewed-by: Tatsuhiro Tsujikawa
+ 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.
- Fixes #4612
- Closes #4613
-
-Jay Satiro (17 Nov 2019)
-- [Gergely Nagy brought this change]
+ Closes #5898
- multi: Fix curl_multi_poll wait when extra_fds && !extra_nfds
-
- Prior to this change:
-
- The check if an extra wait is necessary was based not on the
- number of extra fds but on the pointer.
+- curl.1: add see also no-progress-meter on two spots
- If a non-null pointer was given in extra_fds, but extra_nfds
- was zero, then the wait was skipped even though poll was not
- called.
+ Ref: #5894
- Closes https://github.com/curl/curl/pull/4610
+ Closes #5897
-- lib: Move lib/ssh.h -> lib/vssh/ssh.h
+- RELEASE-NOTES: synced
+
+- mqtt: enable by default
- Follow-up to 5b2d703 which moved ssh source files to vssh.
+ No longer considered experimental.
- Closes https://github.com/curl/curl/pull/4609
+ Closes #5858
-Daniel Stenberg (16 Nov 2019)
-- [Andreas Falkenhahn brought this change]
+- [Michael Baentsch brought this change]
- INSTALL.md: provide Android build instructions
+ tls: add CURLOPT_SSL_EC_CURVES and --curves
- Closes #4606
+ Closes #5892
+
+- url: remove funny embedded comments in Curl_disonnect calls
-- [Niall O'Reilly brought this change]
+- [Chris Paulson-Ellis brought this change]
- doh: improced both encoding and decoding
+ conn: check for connection being dead before reuse
- Improved estimation of expected_len and updated related comments;
- increased strictness of QNAME-encoding, adding error detection for empty
- labels and names longer than the overall limit; avoided treating DNAME
- as unexpected;
+ Prevents incorrect reuse of an HTTP connection that has been prematurely
+ shutdown() by the server.
- updated unit test 1655 with more thorough set of proofs and tests
+ Partial revert of 755083d00deb16
- Closes #4598
+ Fixes #5884
+ Closes #5893
-- ngtcp2: increase QUIC window size when data is consumed
+Marc Hoersken (29 Aug 2020)
+- buildconf: exec autoreconf to avoid additional process
- Assisted-by: Javier Blazquez
- Ref #4525 (partial fix)
- Closes #4600
-
-- [Melissa Mears brought this change]
-
- config-win32: cpu-machine-OS for Windows on ARM
+ Also make buildconf exit with the return code of autoreconf.
- Define the OS macro properly for Windows on ARM builds. Also, we might
- as well add the GCC-style IA-64 macro.
+ Reviewed-by: Daniel Stenberg
- Closes #4590
+ Follow up to #5853
+ Closes #5890
-- examples: add multi-poll.c
-
- Show how curl_multi_poll() makes it even easier to use the multi
- interface.
+- CI/azure: no longer ignore results of test 1013
- Closes #4596
+ Follow up to #5771
+ Closes #5889
-- multi_poll: avoid busy-loop when called without easy handles attached
+- docs: add description about CI platforms to CONTRIBUTE.md
- Fixes #4594
- Closes #4595
- Reported-by: 3dyd on github
-
-- curl: fix -T globbing
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Jay Satiro
- Regression from e59371a4936f8 (7.67.0)
+ Closes #5882
+
+Daniel Stenberg (29 Aug 2020)
+- tests/getpart: use MIME::Base64 instead of home-cooked
- Added test 490, 491 and 492 to verify the functionality.
+ Since we already use the base64 package since a while back, we can just
+ as well switch to that here too.
- Reported-by: Kamil Dudka
- Reported-by: Anderson Sasaki
+ It also happens to use the exact same function name, which otherwise
+ causes a run-time warning.
- Fixes #4588
- Closes #4591
-
-- HISTORY: added cmake, HTTP/3 and parallel downloads with curl
+ Reported-by: Marc Hörsken
+ Fixes #5885
+ Closes #5887
-- quiche: reject headers in the wrong order
+Marcel Raad (29 Aug 2020)
+- ntlm: fix condition for curl_ntlm_core usage
- Pseudo header MUST come before regular headers or cause an error.
+ `USE_WINDOWS_SSPI` without `USE_WIN32_CRYPTO` but with any other DES
+ backend is fine, but was excluded before.
- Reported-by: Cynthia Coan
- Fixes #4571
- Closes #4584
+ 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
-- openssl: prevent recursive function calls from ctx callbacks
+- AppVeyor: switch 64-bit Schannel Debug CMake builds to Unicode
- Follow the pattern of many other callbacks.
+ 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.
- Ref: #4546
- Closes #4585
+ Closes https://github.com/curl/curl/pull/5843
-- CURL-DISABLE: initial docs for the CURL_DISABLE_* defines
+- CMake: add option to enable Unicode on Windows
- The disable-scan script used in test 1165 is extended to also verify
- that the docs cover all used defines and all defines offered by
- configure.
+ As already existing for winbuild.
- Reported-by: SLDiggie on github
- Fixes #4545
- Closes #4587
+ Closes https://github.com/curl/curl/pull/5843
-- remove_handle: clear expire timers after multi_done()
+Marc Hoersken (29 Aug 2020)
+- select: simplify return code handling for poll and select
- Since 59041f0, a new timer might be set in multi_done() so the clearing
- of the timers need to happen afterwards!
+ 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.
- Reported-by: Max Kellermann
- Fixes #4575
- Closes #4583
-
-Marcel Raad (10 Nov 2019)
-- test1558: use double slash after file:
+ Also we can just use one check with <= 0 on the return code.
- Classic MinGW / MSYS 1 doesn't support `MSYS2_ARG_CONV_EXCL`, so this
- test unnecessarily failed when using `file:/` instead of `file:///`.
+ Assisted-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
- Closes https://github.com/curl/curl/pull/4554
+ Replaces #5852
+ Closes #5880
+
+Daniel Stenberg (28 Aug 2020)
+- RELEASE-NOTES: synced
+
+- [Jeroen Ooms brought this change]
-Daniel Stenberg (10 Nov 2019)
-- pause: avoid updating socket if done was already called
+ tests: add test1912 with typechecks
- ... avoids unnecesary recursive risk when the transfer is already done.
+ Validates that gcc-typecheck macros match the new option type API.
- Reported-by: Richard Bowker
- Fixes #4563
- Closes #4574
+ Closes #5873
-Jay Satiro (9 Nov 2019)
-- strerror: Fix an error looking up some Windows error strings
+- easyoptions: provide debug function when DEBUGBUILD
- - Use FORMAT_MESSAGE_IGNORE_INSERTS to ignore format specifiers in
- Windows error strings.
+ ... not CURLDEBUG as they're not always set in conjunction.
- Since we are not in control of the error code we don't know what
- information may be needed by the error string's format specifiers.
+ Follow-up to 6ebe63fac23f38df
- Prior to this change Windows API error strings which contain specifiers
- (think specifiers like similar to printf specifiers) would not be shown.
- The FormatMessage Windows API call which turns a Windows error code into
- a string could fail and set error ERROR_INVALID_PARAMETER if that error
- string contained a format specifier. FormatMessage expects a va_list for
- the specifiers, unless inserts are ignored in which case no substitution
- is attempted.
-
- Ref: https://devblogs.microsoft.com/oldnewthing/20071128-00/?p=24353
-
-- [r-a-sattarov brought this change]
+ Fixes #5877
+ Closes #5878
- system.h: fix for MCST lcc compiler
-
- Fixed build by MCST lcc compiler on MCST Elbrus 2000 architecture and do
- some code cleanup.
+Marc Hoersken (28 Aug 2020)
+- sockfilt: handle FD_CLOSE winsock event on write socket
- e2k (Elbrus 2000) - this is VLIW/EPIC architecture, like Intel Itanium
- architecture.
+ 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.
- Ref: https://en.wikipedia.org/wiki/Elbrus_2000
-
- Closes https://github.com/curl/curl/pull/4576
+ Follow up to #5867
+ Closes #5879
-Daniel Stenberg (8 Nov 2019)
-- TODO: curl_multi_unblock
+- multi: handle connection state winsock events
- Closes #4418
-
-- TODO: Run web-platform-tests url tests
+ 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.
- Closes #4477
-
-- TODO: 1.4 alt-svc sharing
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
- Closes #4476
+ Follow up to #5634
+ Closes #5867
-- test1560: require IPv6 for IPv6 aware URL parsing
+Daniel Stenberg (28 Aug 2020)
+- Curl_pgrsTime - return new time to avoid timeout integer overflow
- The URL parser function can't reject a bad IPv6 address properly when
- curl was built without IPv6 support.
+ 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.
- Reported-by: Marcel Raad
- Fixes #4556
- Closes #4572
+ 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
-- checksrc: repair the copyrightyear check
+- TLS: fix SRP detection by using the proper #ifdefs
- - Consider a modified file to be committed this year.
+ USE_TLS_SRP will be true if *any* selected TLS backend can use SRP
- - Make the travis CHECKSRC also do COPYRIGHTYEAR scan in examples and
- includes
+ HAVE_OPENSSL_SRP is defined when OpenSSL can use it
- - Ignore 0 parents when getting latest commit date of file.
+ HAVE_GNUTLS_SRP is defined when GnuTLS can use it
- since in the CI we're dealing with a truncated repo of last 50 commits,
- the file's most recent commit may not be available. when this happens
- git log and rev-list show the initial commit (ie first commit not to be
- truncated) but that's incorrect so ignore 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.
- Ref: https://github.com/curl/curl/pull/4547
+ Reported-by: Stefan Strogin
+ Fixes #5865
+ Closes #5870
+
+- [Dan Kenigsberg brought this change]
+
+ docs: SSLCERTS: fix English syntax
- Closes https://github.com/curl/curl/pull/4549
+ Signed-off-by: Dan Kenigsberg <danken@redhat.com>
- Co-authored-by: Jay Satiro
+ Closes #5876
-- copyrights: fix copyright year range
+- [Alessandro Ghedini brought this change]
+
+ docs: non-existing macros in man pages
- .. because checksrc's copyright year check stopped working.
+ As reported by man(1) when invoked as:
- Ref: https://github.com/curl/curl/pull/4547
+ man --warnings -E UTF-8 -l -Tutf8 -Z <file> >/dev/null
- Closes https://github.com/curl/curl/pull/4549
+ Closes #5846
-- RELEASE-NOTES: synced
-
-- curlver: bump to 7.67.1
-
-- mailmap: fixup Massimiliano Fantuzzi
+- [Alessandro Ghedini brought this change]
-- scripts/contributors: make committers get included too
+ curl.1: fix typo invokved -> invoked
- in addition to authors
+ Closes #5846
-Jay Satiro (8 Nov 2019)
-- [Massimiliano Fantuzzi brought this change]
-
- configure: fix typo in help text
+- buildconf: invoke 'autoreconf -fi' instead
- Closes https://github.com/curl/curl/pull/4570
-
-Daniel Stenberg (7 Nov 2019)
-- [Christian Schmitz brought this change]
-
- ntlm: USE_WIN32_CRYPTO check removed to get USE_NTLM2SESSION set
+ The custom script isn't necessary anymore - but remains for simplicity
+ and just invokes autoreconf.
- Closes #3704
+ Closes #5853
-Jay Satiro (6 Nov 2019)
-- [Wyatt O'Day brought this change]
+- [Emil Engler brought this change]
- build: fix for CURL_DISABLE_DOH
+ lib: make Curl_gethostname accept a const pointer
- Fixes https://github.com/curl/curl/issues/4565
- Closes https://github.com/curl/curl/pull/4566
-
-- [Leonardo Taccari brought this change]
-
- configure: avoid unportable `==' test(1) operator
+ The address of that variable never gets changed, only the data in it so
+ why not make it a "char * const"?
- Closes https://github.com/curl/curl/pull/4567
+ Closes #5866
-Version 7.67.0 (5 Nov 2019)
-
-Daniel Stenberg (5 Nov 2019)
-- RELEASE-NOTES: synced
+- docs/libcurl: update "Added in" version for curl_easy_option*
- The 7.67.0 release
+ Follow-up to 6ebe63fac23f38
-- THANKS: add new names from 7.67.0
+- scripts: improve the "get latest curl release tag" logic
+
+ ... by insiting on it matching "^curl-".
-- configure: only say ipv6 enabled when the variable is set
+- configure: added --disable-get-easy-options
- Previously it could say "IPv6: enabled" at the end of the configure run
- but the define wasn't set because of a missing getaddrinfo().
+ To allow disabling of the curl_easy_option APIs in a build.
- Reported-by: Marcel Raad
- Fixes #4555
- Closes #4560
+ Closes #5365
-Marcel Raad (2 Nov 2019)
-- certs/Server-localhost-lastSAN-sv: regenerate with sha256
+- 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);
- All other certificates were regenerated in commit ba782baac30, but
- this one was missed.
- Fixes test3001 on modern systems.
+ 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.
- Closes https://github.com/curl/curl/pull/4551
+ Assisted-by: Jeroen Ooms
+ Closes #5365
-Daniel Stenberg (2 Nov 2019)
-- [Vilhelm Prytz brought this change]
+- [Eric Curtin brought this change]
- copyrights: update all copyright notices to 2019 on files changed this year
+ HTTP/3: update to OpenSSL_1_1_1g-quic-draft-29
- Closes #4547
+ Closes #5871
-- [Bastien Bouclet brought this change]
+- RELEASE-NOTES: synced
- mbedtls: add error message for cert validity starting in the future
+Jay Satiro (26 Aug 2020)
+- openssl: Fix wincrypt symbols conflict with BoringSSL
- Closes #4552
-
-Jay Satiro (1 Nov 2019)
-- schannel_verify: Fix concurrent openings of CA file
+ OpenSSL undefines the conflicting symbols but BoringSSL does not so we
+ must do it ourselves.
- - Open the CA file using FILE_SHARE_READ mode so that others can read
- from it as well.
+ Reported-by: Samuel Tranchet
+ Assisted-by: Javier Blazquez
- Prior to this change our schannel code opened the CA file without
- sharing which meant concurrent openings (eg an attempt from another
- thread or process) would fail during the time it was open without
- sharing, which in curl's case would cause error:
- "schannel: failed to open CA file".
+ 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
- Bug: https://curl.haxx.se/mail/lib-2019-10/0104.html
- Reported-by: Richard Alcock
+ Fixes https://github.com/curl/curl/issues/5669
+ Closes https://github.com/curl/curl/pull/5857
-Daniel Stenberg (31 Oct 2019)
-- gtls: make gnutls_bye() not wait for response on shutdown
+Daniel Stenberg (26 Aug 2020)
+- socketpair: allow CURL_DISABLE_SOCKETPAIR
- ... as it can make it wait there for a long time for no good purpose.
+ ... to completely disable the use of socketpair
- Patched-by: Jay Satiro
- Reported-by: Bylon2 on github
- Adviced-by: Nikos Mavrogiannopoulos
+ Closes #5850
+
+- curl_get_line: build only if cookies or alt-svc are enabled
- Fixes #4487
- Closes #4541
+ Closes #5851
-- [Michał Janiszewski brought this change]
+- [fullincome brought this change]
- appveyor: publish artifacts on appveyor
+ schannel: fix memory leak when using get_cert_location
- This allows obtaining upstream builds of curl directly from appveyor for
- all the available configurations
+ 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.
- Closes #4509
+ Fixes #5855
+ Closes #5860
-- url: make Curl_close() NULLify the pointer too
+- [Emil Engler brought this change]
+
+ git: ignore libtests in 3XXX area
- This is the common pattern used in the code and by a unified approach we
- avoid mistakes.
+ 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 #4534
+ Closes #5859
-- [Trivikram Kamat brought this change]
+- [Emil Engler brought this change]
- INSTALL: add missing space for configure commands
+ 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 #4539
+ Closes #5863
-- url: Curl_free_request_state() should also free doh handles
+- ngtcp2: adapt to the new pkt_info arguments
- ... or risk DoH memory leaks.
+ Guidance-by: Tatsuhiro Tsujikawa
- Reported-by: Paul Dreik
- Fixes #4463
- Closes #4527
+ Closes #5864
-- examples: remove the "this exact code has not been verified"
+- winbuild/README.md: make <options> visible
- ... as really confuses the reader to not know what to believe!
+ Follow-up to be753add31c2d8c
-- [Trivikram Kamat brought this change]
-
- HTTP3: fix typo somehere1 > somewhere1
+- winbuild: convert the instruction text to README.md
- Closes #4535
+ Closes #5861
-Jay Satiro (28 Oct 2019)
-- [Javier Blazquez brought this change]
+- lib1560: verify "redirect" to double-slash leading URL
+
+ Closes #5849
- HTTP3: fix invalid use of sendto for connected UDP socket
+Marc Hoersken (25 Aug 2020)
+- multi: expand pre-check for socket readiness
- On macOS/BSD, trying to call sendto on a connected UDP socket fails
- with a EISCONN error. Because the singleipconnect has already called
- connect on the socket when we're trying to use it for QUIC transfers
- we need to use plain send instead.
+ 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.
- Fixes #4529
- Closes https://github.com/curl/curl/pull/4533
+ More information about WinSock network events:
+ https://docs.microsoft.com/en-us/windows/win32/api/
+ winsock2/nf-winsock2-wsaeventselect#return-value
+
+ Closes #5634
-Daniel Stenberg (28 Oct 2019)
-- RELEASE-NOTES: synced
+- [rcombs brought this change]
-- [Javier Blazquez brought this change]
-
- HTTP3: fix Windows build
+ multi: implement wait using winsock events
- The ngtcp2 QUIC backend was using the MSG_DONTWAIT flag for send/recv
- in order to perform nonblocking operations. On Windows this flag does
- not exist. Instead, the socket must be set to nonblocking mode via
- ioctlsocket.
+ 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.
- This change sets the nonblocking flag on UDP sockets used for QUIC on
- all platforms so the use of MSG_DONTWAIT is not needed.
+ 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.
- Fixes #4531
- Closes #4532
-
-Marcel Raad (27 Oct 2019)
-- appveyor: add --disable-proxy autotools build
+ 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.
- This would have caught issue #3926.
-
- Also make formatting more consistent.
+ 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
- Closes https://github.com/curl/curl/pull/4526
+ Replaces #5397
+ Reverts #5632
+ Closes #5634
-Daniel Stenberg (25 Oct 2019)
-- appveyor: make winbuilds with DEBUG=no/yes and VS 2015/2017
+- select: reduce duplication of Curl_poll in Curl_socket_check
- ... and invoke "curl -V" once done
+ Change Curl_socket_check to use select-fallback in Curl_poll
+ instead of implementing it in Curl_socket_check and Curl_poll.
- Co-Authored-By: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
- Closes #4523
+ Replaces #5262 and #5492
+ Closes #5707
-- [Francois Rivard brought this change]
-
- schannel: reverse the order of certinfo insertions
+- select: fix poll-based check not detecting connect failure
- Fixes #4518
- Closes #4519
-
-Marcel Raad (24 Oct 2019)
-- test1591: fix spelling of http feature
+ 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 test never got run because the feature name is `http` in lowercase.
+ The select-based socket check correctly checks for connect
+ failures by adding the write socket also to fds_err.
- Closes https://github.com/curl/curl/pull/4520
-
-Daniel Stenberg (23 Oct 2019)
-- [Michał Janiszewski brought this change]
-
- appveyor: Use two parallel compilation on appveyor with CMake
+ 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.
- Appveyor provides 2 CPUs for each builder[1], make sure to use parallel
- compilation, when running with CMake. CMake learned this new option in
- version 3.12[2] and the version provided by appveyor is fresh enough.
+ See the follow up commit to this for more information.
- Curl doesn't really take that long to build and it is using the slowest
- builder available, msbuild, so expect only a moderate improvement in
- build times.
+ This commit makes sure connect failures can be detected
+ and handled if HAVE_POLL_FINE is defined, eg. on msys2-devel.
- [1] https://www.appveyor.com/docs/build-environment/
- [2] https://cmake.org/cmake/help/v3.12/release/3.12.html
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
- Closes #4508
+ Replaces #5509
+ Prepares #5707
-- conn-reuse: requests wanting NTLM can reuse non-NTLM connections
+- select.h: make socket validation macros test for INVALID_SOCKET
- Added test case 338 to verify.
+ 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
- Reported-by: Daniel Silverstone
- Fixes #4499
- Closes #4514
-
-Marcel Raad (23 Oct 2019)
-- tests: add missing proxy features
-
-Daniel Stenberg (22 Oct 2019)
-- RELEASE-NOTES: synced
-
-Marcel Raad (21 Oct 2019)
-- tests: use %FILE_PWD for file:// URLs
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Daniel Stenberg
- This way, we always have exactly one slash after the host name, making
- the tests pass when curl is compiled with the MSYS GCC.
+ Closes #5760
+
+Daniel Stenberg (24 Aug 2020)
+- docs: --output-dir is added in 7.73.0, nothing else
- Closes https://github.com/curl/curl/pull/4512
+ Follow-up to 5620d2cc78c0
-- tests: add `connect to non-listen` keywords
+- curl: add --output-dir
- These tests try to connect to ports nothing is listening on.
+ Works with --create-dirs and with -J
- Closes https://github.com/curl/curl/pull/4511
+ Add test 3008, 3009, 3011, 3012 and 3013 to verify.
+
+ Closes #5637
-- runtests: get textaware info from curl instead of perl
+- configure: fix pkg-config detecting wolfssl
- The MSYS system on Windows can run the test suite for curl built with
- any toolset. When built with the MSYS GCC, curl uses Unix line endings,
- while it uses Windows line endings when built with the MinGW GCC, and
- `^O` reports 'msys' in both cases. Use the curl executable itself to
- determine the line endings instead, which reports 'x86_64-pc-msys' when
- built with the MSYS GCC.
+ 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 https://github.com/curl/curl/pull/4506
+ Closes #5848
-Daniel Stenberg (20 Oct 2019)
-- [Michał Janiszewski brought this change]
+- [Michael Musset brought this change]
- appveyor: Add MSVC ARM64 build
+ sftp: add the option CURLKHSTAT_FINE_REPLACE
- Closes #4507
-
-- http2_recv: a closed stream trumps pause state
+ Replace the old fingerprint of the host with a new.
- ... and thus should return 0, not EAGAIN.
+ Closes #5685
+
+- RELEASE-NOTES: synced
- Reported-by: Tom van der Woerdt
- Fixes #4496
- Closes #4505
+ The next release is now to become 7.73.0
-- http2: expire a timeout at end of stream
+- checksrc: verify do-while and spaces between the braces
- To make sure that transfer is being dealt with. Streams without
- Content-Length need a final read to notice the end-of-stream state.
+ Updated mprintf.c to comply
- Reported-by: Tom van der Woerdt
- Fixes #4496
+ Closes #5845
-Dan Fandrich (18 Oct 2019)
-- travis: Add an ARM64 build
+- curl: support XDG_CONFIG_HOME to find .curlrc
+
+ Added test433 to verify. Updated documentation.
- Test 323 is failing for some reason, so disable it there for now.
+ Reviewed-by: Jay Satiro
+ Suggested-by: Eli Schwartz
+ Fixes #5829
+ Closes #5837
-Marcel Raad (18 Oct 2019)
-- examples/sslbackend: fix -Wchar-subscripts warning
+- etag: save and use the full received contents
- With the `isdigit` implementation that comes with MSYS2, the argument
- is used as an array subscript, resulting in a -Wchar-subscripts
- warning. `isdigit`'s behavior is undefined if the argument is negative
- and not EOF [0]. As done in lib/curl_ctype.h, cast the `char` variable
- to `unsigned char` to avoid that.
+ ... which makes it support weak tags and non-standard etags too!
- [0] https://en.cppreference.com/w/c/string/byte/isdigit
+ Added test case 347 to verify blank incoming ETag:
- Closes https://github.com/curl/curl/pull/4503
+ Fixes #5610
+ Closes #5833
-Daniel Stenberg (18 Oct 2019)
-- configure: remove all cyassl references
+- setopt: if the buffer exists, refuse the new BUFFERSIZE
- In particular, this removes the case where configure would find an old
- cyall installation rather than a wolfssl one if present. The library is
- named wolfssl in modern days so there's no real need to keep support for
- the former.
+ The buffer only exists during transfer and then we shouldn't change the
+ size (the setopt is not documented to work then).
- Reported-by: Jacob Barthelmeh
- Closes #4502
+ Reported-by: Harry Sintonen
+ Closes #5842
-Marcel Raad (17 Oct 2019)
-- test1162: disable MSYS2's POSIX path conversion
-
- This avoids MSYS2 converting the backslasb in the URL to a slash,
- causing the test to fail.
+- [COFFEETALES brought this change]
-Daniel Stenberg (17 Oct 2019)
-- RELEASE-NOTES: synced
-
-Jay Satiro (16 Oct 2019)
-- CURLOPT_TIMEOUT.3: Clarify transfer timeout time includes queue time
-
- Prior to this change some users did not understand that the "request"
- starts when the handle is added to the multi handle, or probably they
- did not understand that some of those transfers may be queued and that
- time is included in timeout.
+ sftp: add new quote commands 'atime' and 'mtime'
- Reported-by: Jeroen Ooms
-
- Fixes https://github.com/curl/curl/issues/4486
- Closes https://github.com/curl/curl/pull/4489
-
-- [Stian Soiland-Reyes brought this change]
+ Closes #5810
- tool_operate: Fix retry sleep time shown to user when Retry-After
+- CURLE_PROXY: new error code
- - If server header Retry-After is being used for retry sleep time then
- show that value to the user instead of the normal retry sleep time.
+ 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.
- This is a follow-up to 640b973 (7.66.0) which changed curl tool so that
- the value from Retry-After header overrides other retry timing options.
+ 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 https://github.com/curl/curl/pull/4498
+ Closes #5770
-Daniel Stenberg (16 Oct 2019)
-- url: normalize CURLINFO_EFFECTIVE_URL
+- runtests: make cleardir() erase dot files too
- The URL extracted with CURLINFO_EFFECTIVE_URL was returned as given as
- input in most cases, which made it not get a scheme prefixed like before
- if the URL was given without one, and it didn't remove dotdot sequences
- etc.
+ Because test cases might use dot files.
- Added test case 1907 to verify that this now works as intended and as
- before 7.62.0.
-
- Regression introduced in 7.62.0
-
- Reported-by: Christophe Dervieux
- Fixes #4491
- Closes #4493
+ Closes #5838
-Marcel Raad (16 Oct 2019)
-- tests: line ending fixes for Windows
+- KNOWN_BUGS: 'no_proxy' string-matches IPv6 numerical addreses
- Mark some files as text.
+ Also: the current behavior is now documented in the curl.1 and
+ CURLOPT_NOPROXY.3 man pages.
- Closes https://github.com/curl/curl/pull/4490
+ Reported-by: Andrew Barnes
+ Closes #5745
+ Closes #5841
-- tests: use proxy feature
+Viktor Szakats (22 Aug 2020)
+- Makefile.m32: add ability to override zstd libs [ci skip]
- This makes the tests succeed when using --disable-proxy.
+ Similarly to brotli, where this was already possible.
+ E.g. it allows to link zstd statically to libcurl.dll.
- Closes https://github.com/curl/curl/pull/4488
-
-- smbserver: fix Python 3 compatibility
+ Ref: https://github.com/curl/curl-for-win/issues/12
+ Ref: https://github.com/curl/curl-for-win/commit/d9b266afd2e5d3f5604483010ef62340b5918c89
- Python 2's `ConfigParser` module is spelled `configparser` in Python 3.
+ Closes https://github.com/curl/curl/pull/5840
+
+Daniel Stenberg (21 Aug 2020)
+- runtests: avoid 'fail to start' repeated messages in attempt loops
- Closes https://github.com/curl/curl/pull/4484
+ Closes #5834
-- security: silence conversion warning
+- runtests: clear pid variables when failing to start a server
- With MinGW-w64, `curl_socket_t` is is a 32 or 64 bit unsigned integer,
- while `read` expects a 32 bit signed integer.
- Use `sread` instead of `read` to use the correct parameter type.
+ ... as otherwise the parent doesn't detect the failure and believe it
+ actually worked to start.
- Closes https://github.com/curl/curl/pull/4483
+ Reported-by: Christian Weisgerber
+ Bug: https://curl.haxx.se/mail/lib-2020-08/0018.html
+ Closes #5834
-- connect: silence sign-compare warning
-
- With MinGW-w64 using WinSock, `curl_socklen_t` is signed, while the
- result of `sizeof` is unsigned.
+- TODO: Virtual external sockets
- Closes https://github.com/curl/curl/pull/4483
+ Closes #5835
+
+- [Don J Olmstead brought this change]
-Daniel Stenberg (13 Oct 2019)
-- TODO: Handle growing SFTP files
+ dist: add missing CMake Find modules to the distribution
- Closes #4344
+ Closes #5836
-- KNOWN_BUGS: remove "CURLFORM_CONTENTLEN in an array"
+- RELEASE-NOTES: synced
- The curl_formadd() function is deprecated and shouldn't be used so the
- real fix for applications is to switch to the curl_mime_* API.
+ ... and version bumped to 7.72.1
-- KNOWN_BUGS: "LDAP on Windows does authentication wrong"
+- 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!
- Closes #3116
+ Reported-by: jmdavitt on github
+ Fixes #5826
+ Closes #5827
-- appveyor: add a winbuild that uses VS2017
+Version 7.72.0 (19 Aug 2020)
+
+Daniel Stenberg (19 Aug 2020)
+- RELEASE-NOTES: synced
- Closes #4482
+ The curl 7.72.0 release
-- [Harry Sintonen brought this change]
+- THANKS: add names from curl 7.72.0 release
- socketpair: fix include and define for older TCP header systems
+Jay Satiro (18 Aug 2020)
+- KNOWN_BUGS: Schannel TLS 1.2 handshake bug in old Windows versions
- fixed build for systems that need netinet/in.h for IPPROTO_TCP and are
- missing INADDR_LOOPBACK
+ Reported-by: plujon@users.noreply.github.com
- Closes #4480
+ Closes https://github.com/curl/curl/issues/5488
-- socketpair: fix double-close in error case
+Daniel Stenberg (17 Aug 2020)
+- Curl_easy: remember last connection by id, not by pointer
- Follow-up to bc2dbef0afc08
+ 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
-- gskit: use the generic Curl_socketpair
+- RELEASE-PROCEDURE.md: add more future release dates
-- asyn-thread: make use of Curl_socketpair() where available
+- [H3RSKO brought this change]
-- socketpair: an implemention for Windows and more
+ docs: change "web site" to "website"
- Curl_socketpair() is designed to be used and work everywhere if there's
- no native version or the native version isn't good enough.
+ According to wikipedia:
- Closes #4466
+ While "web site" was the original spelling, this variant has become
+ rarely used, and "website" has become the standard spelling
+
+ Closes #5822
-- RELEASE-NOTES: synced
+- [Bevan Weiss brought this change]
-- connect: return CURLE_OPERATION_TIMEDOUT for errno == ETIMEDOUT
+ CMake: don't complain about missing nroff
- Previosly all connect() failures would return CURLE_COULDNT_CONNECT, no
- matter what errno said.
+ The curl_nroff_check() was always being called, and complaining if
+ *NROFF wasn't found, even when not making the manual.
- This makes for example --retry work on these transfer failures.
+ Only check for nroff (and complain) if actually making the manual
- Reported-by: Nathaniel J. Smith
- Fixes #4461
- Clsoes #4462
+ Closes #5817
-- cirrus: switch off blackhole status on the freebsd CI machines
+- [Brian Inglis brought this change]
-- tests: use port 2 instead of 60000 for a safer non-listening port
+ libtest/Makefile.am: add -no-undefined for libstubgss for Cygwin
- ... when the tests want "connection refused".
-
-- KNOWN_BUGS: IDN tests failing on Windows
+ copy the LDFLAGS approach for adding same option with `libhostname` in
+ `libtest/Makefile.am`:
- Closes #3747
-
-Dan Fandrich (9 Oct 2019)
-- cirrus: Increase the git clone depth.
+ - init `libstubgss_la_LDFLAGS_EXTRA` variable,
+ - add option to variable inside conditional,
+ - use variable in `libstubgss_la_LDFLAGS`
- If more commits are submitted to master between the time of triggering
- the first Cirrus build and the time the final build gets started, the
- desired commit is no longer at HEAD and the build will error out.
- [skip ci]
-
-Daniel Stenberg (9 Oct 2019)
-- docs: make sure the --no-progress-meter docs file is in dist too
+ Fixes #5819
+ Closes #5820
-- docs: document it as --no-progress-meter instead of the reverse
+- docs: clarify MAX_SEND/RECV_SPEED functionality
- Follow-up to 93373a960c3bb4
+ ... 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: infinnovation-dev on github
- Fixes #4474
- Closes #4475
+ Reported-by: Tomas Berger
+ Fixes #5788
+ Closes #5813
-Dan Fandrich (9 Oct 2019)
-- cirrus: Switch the FreeBSD 11.x build to 11.3 and add a 13.0 build.
+- test1140: compare stdout
- Also, select the images using image_family to get the latest snapshots
- automatically.
- [skip ci]
-
-Daniel Stenberg (8 Oct 2019)
-- curl: --no-progress-meter
+ To make problems more immediately obvious when tests fail.
- New option that allows a user to ONLY switch off curl's progress meter
- and leave everything else in "talkative" mode.
+ Closes #5814
+
+- asyn-ares: correct some bad comments
- Reported-by: Piotr Komborski
- Fixes #4422
- Closes #4470
+ Closes #5812
-- TODO: Consult %APPDATA% also for .netrc
+- [Emil Engler brought this change]
+
+ docs: Add video link to docs/CONTRIBUTE.md
- Closes #4016
+ Closes #5811
-- CURLOPT_TIMEOUT.3: remove the mention of "minutes"
+- curl-config: ignore REQUIRE_LIB_DEPS in --libs output
- ... just say that limiting operations risk aborting otherwise fine
- working transfers. If that means seconds, minutes or hours, we leave to
- the user.
+ Fixes a curl-config issue on cygwin by making sure REQUIRE_LIB_DEPS is
+ not considered for the --libs output.
- Reported-by: Martin Gartner
- Closes #4469
+ Reported-by: ramsay-jones on github
+ Assisted-by: Brian Inglis and Ken Brown
+ Fixes #5793
+ Closes #5808
-- [Andrei Valeriu BICA brought this change]
+- copyright: update/correct the year range on a few files
- docs: added multi-event.c example
-
- Similar to multi-uv.c but using libevent 2. This is a simpler libevent
- integration example then hiperfifo.c.
-
- Closes #4471
+- scripts/copyright.pl: ignore .muse files
-Jay Satiro (5 Oct 2019)
-- [Nicolas brought this change]
+- [Emil Engler brought this change]
- ldap: fix OOM error on missing query string
-
- - Allow missing queries, don't return NO_MEMORY error in such a case.
-
- It is acceptable for there to be no specified query string, for example:
-
- curl ldap://ldap.forumsys.com
+ multi: Remove 10-year old out-commented code
- A regression bug in 1b443a7 caused this issue.
+ The code hasn't been touched since 2010-08-18
- This is a partial fix for #4261.
-
- Bug: https://github.com/curl/curl/issues/4261#issuecomment-525543077
- Reported-by: Jojojov@users.noreply.github.com
- Analyzed-by: Samuel Surtees
-
- Closes https://github.com/curl/curl/pull/4467
+ Closes #5805
-- [Paul B. Omta brought this change]
+- KNOWN_BUGS: A shared connection cache is not thread-safe
+
+ Closes #4915
+ Closes #5802
- build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines
+- CONTRIBUTE: extend git commit message description
- Closes https://github.com/curl/curl/pull/4460
+ In particular how the first line works.
+
+ Closes #5803
-Daniel Stenberg (5 Oct 2019)
- RELEASE-NOTES: synced
-- [Stian Soiland-Reyes brought this change]
+- [Stefan Yohansson brought this change]
- curl: ensure HTTP 429 triggers --retry
-
- This completes #3794.
+ transfer: move retrycount from connect struct to easy handle
- Also make sure the new tests from #4195 are enabled
+ 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.
- Closes #4465
+ Reported-by: Cherish98 on github
+ Fixes #5794
+ Closes #5800
-Marcel Raad (4 Oct 2019)
-- [apique brought this change]
-
- winbuild: add ENABLE_UNICODE option
+- libssh2: s/ssherr/sftperr/
- Fixes https://github.com/curl/curl/issues/4308
- Closes https://github.com/curl/curl/pull/4309
-
-Daniel Stenberg (4 Oct 2019)
-- ngtcp2: adapt to API change
+ 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
- Closes #4457
+ Reported-by: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/7370b4e39f1390e701f5b68d910c619151daf72b#r41334700
+ Closes #5799
-- cookies: change argument type for Curl_flush_cookies
+- ftp: don't do ssl_shutdown instead of ssl_close
- The second argument is really a 'bool' so use that and pass in TRUE/FALSE
- to make it clear.
+ The shutdown function is for downgrading a connection from TLS to plain,
+ and this is not requested here.
- Closes #4455
-
-- http2: move state-init from creation to pre-transfer
+ Have ssl_close reset the TLS connection state.
- To make sure that the HTTP/2 state is initialized correctly for
- duplicated handles. It would otherwise easily generate "spurious"
- PRIORITY frames to get sent over HTTP/2 connections when duplicated easy
- handles were used.
+ This partially reverts commit f002c850d98d
- Reported-by: Daniel Silverstone
- Fixes #4303
- Closes #4442
+ Reported-by: Rasmus Melchior Jacobsen
+ Reported-by: Denis Goleshchikhin
+ Fixes #5797
-- urlapi: fix use-after-free bug
+Marc Hoersken (9 Aug 2020)
+- CI/azure: fix test outcome values and use latest API version
- Follow-up from 2c20109a9b5d04
+ This makes sure that tests ignored or skipped are not shown
+ just in the category "Other", but with their correct state.
- Added test 663 to verify.
+ Closes #5796
+
+- CI/azure: show runtime stats to investigate slowness
- Reported by OSS-Fuzz
- Bug: https://crbug.com/oss-fuzz/17954
+ Also avoid naming conflict of TFLAGS env and tflags variables.
- Closes #4453
-
-- [Paul Dreik brought this change]
+ Closes #5776
- cookie: avoid harmless use after free
+Daniel Stenberg (8 Aug 2020)
+- TLS naming: fix more Winssl and Darwinssl leftovers
- This fix removes a use after free which can be triggered by
- the internal cookie fuzzer, but otherwise is probably
- impossible to trigger from an ordinary application.
+ The CMake option is now called CMAKE_USE_SCHANNEL
- The following program reproduces it:
+ The winbuild flag is USE_SCHANNEL
- curl_global_init(CURL_GLOBAL_DEFAULT);
- CURL* handle=curl_easy_init();
- CookieInfo* info=Curl_cookie_init(handle,NULL,NULL,false);
- curl_easy_setopt(handle, CURLOPT_COOKIEJAR, "/dev/null");
- Curl_flush_cookies(handle, true);
- Curl_cookie_cleanup(info);
- curl_easy_cleanup(handle);
- curl_global_cleanup();
+ The CI jobs and build scripts only use the new names and the new name
+ options
- This was found through fuzzing.
+ Tests now require 'Schannel' (when necessary)
- Closes #4454
-
-- [Denis Chaplygin brought this change]
+ Closes #5795
- docs: add note on failed handles not being counted by curl_multi_perform
+- smtp_parse_address: handle blank input string properly
- Closes #4446
+ Closes #5792
-- CURLMOPT_MAX_CONCURRENT_STREAMS.3: fix SEE ALSO typo
-
-- [Niall O'Reilly brought this change]
-
- ESNI: initial build/setup
+- runtests: run the DICT server on a random port number
+
+ Removed support for -b (base port number)
- Closes #4011
+ Closes #5783
- RELEASE-NOTES: synced
-- redirect: when following redirects to an absolute URL, URL encode it
+- runtests: move the TELNET server to a dynamic port
- ... to make it handle for example (RFC violating) embeded spaces.
+ Rename the port variable to TELNETPORT to better match the existing
+ pattern.
- Reported-by: momala454 on github
- Fixes #4445
- Closes #4447
+ Closes #5785
-- urlapi: fix URL encoding when setting a full URL
-
-- tool_operate: rename functions to make more sense
-
-- curl: create easy handles on-demand and not ahead of time
-
- This should again enable crazy-large download ranges of the style
- [1-10000000] that otherwise easily ran out of memory starting in 7.66.0
- when this new handle allocating scheme was introduced.
+- ngtcp2: adapt to error code rename
- Reported-by: Peter Sumatra
- Fixes #4393
- Closes #4438
+ Closes #5786
-- [Kunal Ekawde brought this change]
-
- CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt
+- runtests: move the smbserver to use a dynamic port number
- Closes #4410
+ Closes #5782
-- chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error
-
- Unknown content-encoding would get returned as CURLE_WRITE_ERROR if the
- response is chunked-encoded.
+- runtests: run the http2 tests on a random port number
- Reported-by: Ilya Kosarev
- Fixes #4310
- Closes #4449
+ Closes #5779
-Marcel Raad (1 Oct 2019)
-- checksrc: fix uninitialized variable warning
+- gtls: survive not being able to get name/issuer
- The loop doesn't need to be executed without a file argument.
-
- Closes https://github.com/curl/curl/pull/4444
+ Closes #5778
-- urlapi: fix unused variable warning
+- runtests: move the gnutls-serv tests to a dynamic port
- `dest` is only used with `ENABLE_IPV6`.
+ Affects test 320, 321, 322 and 324.
- Closes https://github.com/curl/curl/pull/4444
+ Closes #5778
-- lib: silence conversion warnings
+- runtests: support dynamicly base64 encoded sections in tests
- Closes https://github.com/curl/curl/pull/4444
-
-- AppVeyor: add 32-bit MinGW-w64 build
+ 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.
- With WinSSL and testing enabled so that it would have detected most of
- the warnings fixed in [0] and [1].
+ ftpserver.pl is adjusted to load test instructions and test number from
+ the preprocessed test file.
- [0] https://github.com/curl/curl/pull/4398
- [1] https://github.com/curl/curl/pull/4415
+ FILEFORMAT.md now documents the new base64 encoding syntax.
- Closes https://github.com/curl/curl/pull/4433
+ Reported-by: Marcel Raad
+ Fixes #5761
+ Closes #5775
-- AppVeyor: remove MSYS2_ARG_CONV_EXCL for winbuild
+- curl.1: add a few missing valid exit codes
- It's only used for MSYS2 with MinGW.
+ 93 - 96 can be returned as well.
- Closes
-
-Daniel Stenberg (30 Sep 2019)
-- [Emil Engler brought this change]
+ Closes #5777
- git: add tests/server/disabled to .gitignore
+- TODO: Use multiple parallel transfers for a single download
- Closes #4441
+ Closes #5774
-- altsvc: accept quoted ma and persist values
-
- As mandated by the spec. Test 1654 is extended to verify.
+- TODO: Set the modification date on an uploaded file
- Closes #4443
-
-- mailmap: a Lucas fix
-
-Alessandro Ghedini (29 Sep 2019)
-- [Lucas Pardue brought this change]
-
- quiche: update HTTP/3 config creation to new API
+ Closes #5768
-Daniel Stenberg (29 Sep 2019)
-- BINDINGS: PureBasic, Net::Curl for perl and Nim
+- [Thomas M. DuBuisson brought this change]
-- BINDINGS: Kapito is an Erlang library, basically a binding
-
-- BINDINGS: added clj-curl
+ CI: Add muse CI config
- Reported-by: Lucas Severo
+ Closes #5772
-- [Jay Satiro brought this change]
+- [Thomas M. DuBuisson brought this change]
- docs: disambiguate CURLUPART_HOST is for host name (ie no port)
+ travis/script.sh: fix use of `-n' with unquoted envvar
- Closes #4424
-
-- cookies: using a share with cookies shouldn't enable the cookie engine
+ Shellcheck tells us "-n doesn't work with unquoted arguments. quote or
+ use [[ ]]."
- The 'share object' only sets the storage area for cookies. The "cookie
- engine" still needs to be enabled or activated using the normal cookie
- options.
+ And testing shows:
- This caused the curl command line tool to accidentally use cookies
- without having been told to, since curl switched to using shared cookies
- in 7.66.0.
+ ```
+ 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:/#
+ ```
- Test 1166 verifies
+ Closes #5773
+
+- h2: repair trailer handling
- Updated test 506
+ 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.
- Fixes #4429
- Closes #4434
-
-- setopt: handle ALTSVC set to NULL
-
-- RELEASE-NOTES: synced
-
-- [grdowns brought this change]
-
- INSTALL: add vcpkg installation instructions
+ This change reverts the logic back to gathering all trailers into a
+ single buffer, like before 54a2b63.
- Closes #4435
+ Reported-by: Tadej Vengust
+ Fixes #5663
+ Closes #5769
-- [Zenju brought this change]
-
- FTP: add test for FTPFILE_NOCWD: Avoid redundant CWDs
+Viktor Szakats (3 Aug 2020)
+- windows: disable Unix Sockets for old mingw
- Add libtest 661
+ 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.
- Closes #4417
-
-- [Zenju brought this change]
-
- FTP: url-decode path before evaluation
+ Ref: https://sourceforge.net/p/mingw-w64/mingw-w64/ci/cf6afc57179a5910621215f8f4037d406892072c/
+
+ Reviewed-by: Daniel Stenberg
- Closes #4428
+ Fixes #5674
+ Closes #5758
-Marcel Raad (27 Sep 2019)
-- tests: fix narrowing conversion warnings
+Marcel Raad (3 Aug 2020)
+- test1908: treat file as text
- `timediff_t` is 64 bits wide also on 32-bit systems since
- commit b1616dad8f0.
+ Fixes the line endings on Windows.
- Closes https://github.com/curl/curl/pull/4415
+ Closes https://github.com/curl/curl/pull/5767
-Jay Satiro (27 Sep 2019)
-- [julian brought this change]
-
- vtls: Fix comment typo about macosx-version-min compiler flag
+- TrackMemory tests: ignore realloc and free in getenv.c
- Closes https://github.com/curl/curl/pull/4425
-
-Daniel Stenberg (26 Sep 2019)
-- [Yechiel Kalmenson brought this change]
-
- README: minor grammar fix
+ These are only called for WIN32.
- Closes #4431
+ Closes https://github.com/curl/curl/pull/5767
-- [Spezifant brought this change]
-
- HTTP3: fix prefix parameter for ngtcp2 build
-
- Closes #4430
+Daniel Stenberg (3 Aug 2020)
+- tests/FILEFORMAT.md: mention %HTTP2PORT
-- quiche: don't close connection at end of stream!
+- RELEASE-NOTES: synced
-- quiche: set 'drain' when returning without having drained the queues
+- tlsv1.3.d. only for TLS-using connections
+
+ ... and rephrase that "not all" TLS backends support it.
+
+ Closes #5764
-- Revert "FTP: url-decode path before evaluation"
+- tls-max.d: this option is only for TLS-using connections
- This reverts commit 2f036a72d543e96128bd75cb0fedd88815fd42e2.
+ Ref: #5763
+ Closes #5764
-- HTTP3: merged and simplified the two 'running' sections
+Marcel Raad (2 Aug 2020)
+- [Cameron Cawley brought this change]
-- HTTP3: show an --alt-svc using example too
+ tool_doswin: Simplify Windows version detection
+
+ Closes https://github.com/curl/curl/pull/5754
-- [Zenju brought this change]
+- [Cameron Cawley brought this change]
- FTP: url-decode path before evaluation
+ win32: Add Curl_verify_windows_version() to curlx
- Closes #4423
+ Closes https://github.com/curl/curl/pull/5754
-- openssl: use strerror on SSL_ERROR_SYSCALL
+- runtests.pl: treat LibreSSL and BoringSSL as OpenSSL
- Instead of showing the somewhat nonsensical errno number, use strerror()
- to provide a more relatable error message.
+ This makes the tests that require the OpenSSL feature also run for
+ those two compatible libraries.
- Closes #4411
+ Closes https://github.com/curl/curl/pull/5762
-- HTTP3: update quic.aiortc.org + add link to server list
+Daniel Stenberg (1 Aug 2020)
+- multi: Condition 'extrawait' is always true
+
+ Reported by Codacy.
- Reported-by: Jeremy Lainé
+ Reviewed-by: Marcel Raad
+ Closes #5759
-Jay Satiro (26 Sep 2019)
-- url: don't set appconnect time for non-ssl/non-ssh connections
+Marcel Raad (1 Aug 2020)
+- openssl: fix build with LibreSSL < 2.9.1
- Prior to this change non-ssl/non-ssh connections that were reused set
- TIMER_APPCONNECT [1]. Arguably that was incorrect since no SSL/SSH
- handshake took place.
+ `SSL_CTX_add0_chain_cert` and `SSL_CTX_clear_chain_certs` were
+ introduced in LibreSSL 2.9.1 [0].
- [1]: TIMER_APPCONNECT is publicly known as CURLINFO_APPCONNECT_TIME in
- libcurl and %{time_appconnect} in the curl tool. It is documented as
- "the time until the SSL/SSH handshake is completed".
+ [0] https://github.com/libressl-portable/openbsd/commit/0db809ee178457c8170abfae3931d7bd13abf3ef
- Reported-by: Marcel Hernandez
+ 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
- Ref: https://github.com/curl/curl/issues/3760
+ 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 https://github.com/curl/curl/pull/3773
+ Closes #5749
-Daniel Stenberg (25 Sep 2019)
-- ngtcp2: remove fprintf() calls
+- checksrc: invoke script with -D to find .checksrc proper
- - convert some of them to H3BUF() calls to infof()
- - remove some of them completely
- - made DEBUG_HTTP3 defined only if CURLDEBUG is set for now
+ 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.
- Closes #4421
+ Reported-by: Marcel Raad
+ Fixes #5715
+ Closes #5755
-- [Jay Satiro brought this change]
+- [Carlo Marcelo Arenas Belón brought this change]
- url: fix the NULL hostname compiler warning case
+ buildconf: retire ares buildconf invocation
- Closes #4403
+ no longer needed after 4259d2df7dd95637a4b1e3fb174fe5e5aef81069
-- [Jay Satiro brought this change]
+- [Carlo Marcelo Arenas Belón brought this change]
- travis: move the go install to linux-only
+ buildconf: excempt defunct reference to ACLOCAL_FLAGS
- ... to repair the build again
- Closes #4403
+ retired with 09f278121e815028adb24d228d8092fc6cb022aa but kept around as
+ the name is generic enough that it might be in use and relied upon from
+ the environment.
-- altsvc: correct the #ifdef for the ngtcp2 backend
+- [Carlo Marcelo Arenas Belón brought this change]
-- altsvc: save h3 as h3-23
+ 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
- Follow-up to d176a2c7e5
+ Closes #5701
-- urlapi: question mark within fragment is still fragment
+- travis: add ppc64le and s390x builds
- The parser would check for a query part before fragment, which caused it
- to do wrong when the fragment contains a question mark.
+ Closes #5752
+
+Marc Hoersken (31 Jul 2020)
+- connect: remove redundant message about connect failure
- Extended test 1560 to verify.
+ Reviewed-by: Daniel Stenberg
- Reported-by: Alex Konev
- Fixes #4412
- Closes #4413
+ Closes #5708
-- [Alex Samorukov brought this change]
+- tests/sshserver.pl: fix compatibility with OpenSSH for Windows
+
+ Follow up to #5721
- HTTP3.md: move -p for mkdir, remove -j for make
+- CI/azure: install libssh2 for use with msys2-based builds
- - mkdir on OSX/Darwin requires `-p` argument before dir
+ This enables building and running the SFTP tests.
+ Unfortunately OpenSSH for Windows does not support SCP (yet).
- - portabbly figuring out number of cores is an exercise for somewhere
- else
+ Reviewed-by: Daniel Stenberg
- Closes #4407
+ Closes #5721
-Patrick Monnerat (24 Sep 2019)
-- os400: getpeername() and getsockname() return ebcdic AF_UNIX sockaddr,
+- CI/azure: increase Windows job timeout once again
- As libcurl now uses these 2 system functions, wrappers are needed on os400
- to convert returned AF_UNIX sockaddrs to ascii.
+ Avoid aborted jobs due to performance issues on Azure DevOps.
- This is a follow-up to commit 7fb54ef.
- See also #4037.
- Closes #4214
-
-Jay Satiro (24 Sep 2019)
-- [Lucas Pardue brought this change]
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Jay Satiro
+
+ Closes #5738
- strcase: fix raw lowercasing the letter X
+Jay Satiro (30 Jul 2020)
+- TODO: Schannel: 'Add option to allow abrupt server closure'
- Casing mistake in Curl_raw_tolower 'X' wasn't lowercased as 'x' prior to
- this change.
+ 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.
- Follow-up to 0023fce which added the function several days ago.
+ Closes https://github.com/curl/curl/issues/4427
+
+- url: fix CURLU and location following
- Ref: https://github.com/curl/curl/pull/4401#discussion_r327396546
+ 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.
- Closes https://github.com/curl/curl/pull/4408
-
-Daniel Stenberg (23 Sep 2019)
-- http2: Expression 'stream->stream_id != - 1' is always true
+ Reported-by: sspiri@users.noreply.github.com
- PVS-Studio warning
- Fixes #4402
+ Fixes https://github.com/curl/curl/issues/5709
+ Closes https://github.com/curl/curl/pull/5713
-- http2: A value is being subtracted from the unsigned variable
-
- PVS-Studio warning
- Fixes #4402
+Daniel Stenberg (30 Jul 2020)
+- RELEASE-NOTES: synced
-- libssh: part of conditional expression is always true: !result
-
- PVS-Studio warning
- Fixed #4402
+- [divinity76 brought this change]
-- libssh: part of conditional expression is always true
+ docs: add date of 7.20 to CURLM_CALL_MULTI_PERFORM mentions
- PVS-Studio warning
- Fixes #4402
-
-- libssh: The expression is excessive or contains a misprint
+ 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)
- PVS-Studio warning
- Fixes #4402
+ Closes #5744
-- quiche: The expression must be surrounded by parentheses
+Jay Satiro (29 Jul 2020)
+- tool_cb_wrt: fix outfile mode flags for Windows
- PVS-Studio warning
- Fixes #4402
-
-- vauth: The parameter 'status' must be surrounded by parentheses
+ - Use S_IREAD and S_IWRITE mode permission flags to create the file
+ on Windows instead of S_IRUSR, S_IWUSR, etc.
- PVS-Studio warning
- Fixes #4402
-
-- [Paul Dreik brought this change]
-
- doh: allow only http and https in debug mode
+ Windows only accepts a combination of S_IREAD and S_IWRITE. It does not
+ acknowledge other combinations, for which it may generate an assertion.
- Otherwise curl may be told to use for instance pop3 to
- communicate with the doh server, which most likely
- is not what you want.
+ This is a follow-up to 81b4e99 from yesterday, which improved the
+ existing file check with -J.
- Found through fuzzing.
+ Ref: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/open-wopen#remarks
+ Ref: https://github.com/curl/curl/pull/5731
- Closes #4406
-
-- [Paul Dreik brought this change]
+ Closes https://github.com/curl/curl/pull/5742
- doh: return early if there is no time left
+Daniel Stenberg (28 Jul 2020)
+- checksrc: ban gmtime/localtime
- Closes #4406
-
-- [Barry Pollard brought this change]
+ 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
- http: lowercase headernames for HTTP/2 and HTTP/3
+- transfer: fix data_pending for builds with both h2 and h3 enabled
- Closes #4401
- Fixes #4400
+ Closes #5734
-Marcel Raad (23 Sep 2019)
-- vtls: fix narrowing conversion warnings
+- curl_multi_setopt: fix compiler warning "result is always false"
- Curl_timeleft returns `timediff_t`, which is 64 bits wide also on
- 32-bit systems since commit b1616dad8f0.
+ On systems with 32 bit long the expression is always false. Avoid
+ the warning.
- Closes https://github.com/curl/curl/pull/4398
-
-Daniel Stenberg (23 Sep 2019)
-- [Joel Depooter brought this change]
+ Reported-by: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/61a08508f6a458fe21bbb18cd2a9bac2f039452b#commitcomment-40941232
+ Closes #5736
- winbuild: Add manifest to curl.exe for proper OS version detection
+- curl: improve the existing file check with -J
- This is a small fix to commit ebd213270a017a6830928ee2e1f4a9cabc799898
- in pull request #1221. That commit added the CURL_EMBED_MANIFEST flag to
- CURL_RC_FLAGS. However, later in the file CURL_RC_FLAGS is
- overwritten. The fix is to append values to CURL_RC_FLAGS instead of
- overwriting
+ Previously a file that isn't user-readable but is user-writable would
+ not be properly avoided and would get overwritten.
- Closes #4399
+ Reported-by: BrumBrum on hackerone
+ Assisted-by: Jay Satiro
+ Bug: https://hackerone.com/reports/926638
+ Closes #5731
-- RELEASE-NOTES: synced
+- [Jonathan Nieder brought this change]
-Marcel Raad (22 Sep 2019)
-- openssl: fix compiler warning with LibreSSL
-
- It was already fixed for BoringSSL in commit a0f8fccb1e0.
- LibreSSL has had the second argument to SSL_CTX_set_min_proto_version
- as uint16_t ever since the function was added in [0].
+ multi: update comment to say easyp list is linear
- [0] https://github.com/libressl-portable/openbsd/commit/56f107201baefb5533486d665a58d8f57fd3aeda
+ 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.
- Closes https://github.com/curl/curl/pull/4397
+ Reported-by: Masaya Suzuki <masayasuzuki@google.com>
+ Closes #5737
-Daniel Stenberg (22 Sep 2019)
-- curl: exit the create_transfers loop on errors
+- CURLOPT_NOBODY.3: fix the syntax for referring to options
- When looping around the ranges and given URLs to create transfers, all
- errors should exit the loop and return. Previously it would keep
- looping.
+ As test 1140 fails otherwise!
- Reported-by: SumatraPeter on github
- Bug: #4393
- Closes #4396
+ Follow-up to e1bac81cc815
-Jay Satiro (21 Sep 2019)
-- socks: Fix destination host shown on SOCKS5 error
+- ngtcp2: store address in sockaddr_storage
- Prior to this change when a server returned a socks5 connect error then
- curl would parse the destination address:port from that data and show it
- to the user as the destination:
-
- curld -v --socks5 10.0.3.1:1080 http://google.com:99
- * SOCKS5 communication to google.com:99
- * SOCKS5 connect to IPv4 172.217.12.206 (locally resolved)
- * Can't complete SOCKS5 connection to 253.127.0.0:26673. (1)
- curl: (7) Can't complete SOCKS5 connection to 253.127.0.0:26673. (1)
-
- That's incorrect because the address:port included in the connect error
- is actually a bind address:port (typically unused) and not the
- destination address:port. This fix changes curl to show the destination
- information that curl sent to the server instead:
+ Reported-by: Tatsuhiro Tsujikawa
+ Closes #5733
+
+- CURLOPT_NOBODY.3: clarify what setting to 0 means
- curld -v --socks5 10.0.3.1:1080 http://google.com:99
- * SOCKS5 communication to google.com:99
- * SOCKS5 connect to IPv4 172.217.7.14:99 (locally resolved)
- * Can't complete SOCKS5 connection to 172.217.7.14:99. (1)
- curl: (7) Can't complete SOCKS5 connection to 172.217.7.14:99. (1)
+ ... and mention that HTTP with other methods than HEAD might get a body and
+ there's no option available to stop that.
- curld -v --socks5-hostname 10.0.3.1:1080 http://google.com:99
- * SOCKS5 communication to google.com:99
- * SOCKS5 connect to google.com:99 (remotely resolved)
- * Can't complete SOCKS5 connection to google.com:99. (1)
- curl: (7) Can't complete SOCKS5 connection to google.com:99. (1)
+ Closes #5729
+
+- setopt: unset NOBODY switches to GET if still HEAD
- Ref: https://tools.ietf.org/html/rfc1928#section-6
+ 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.
- Closes https://github.com/curl/curl/pull/4394
+ Reported-by: causal-agent on github
+ Fixes #5725
+ Closes #5728
-Daniel Stenberg (21 Sep 2019)
-- travis: enable ngtcp2 h3-23 builds
+- [Ehren Bendler brought this change]
-- altsvc: both backends run h3-23 now
+ configure: cleanup wolfssl + pkg-config conflicts when cross compiling.
- Closes #4395
-
-- http: fix warning on conversion from int to bit
+ Also choose a different wolfSSL function to test for NTLM support.
- Follow-up from 03ebe66d70
+ Fixes #5605
+ Closes #5682
-- urldata: use 'bool' for the bit type on MSVC compilers
+- configure: show zstd "no" in summary when built without it
- Closes #4387
- Fixes #4379
+ Reported-by: Marc Hörsken
+ Fixes #5720
+ Closes #5730
-- appveyor: upgrade VS2017 to VS2019
+- quiche: handle calling disconnect twice
- Closes #4383
+ Reported-by: lilongyan-huawei on github
+ Fixes #5726
+ Closes #5727
-- [Zenju brought this change]
+- [Nicolas Sterchele brought this change]
- FTP: FTPFILE_NOCWD: avoid redundant CWDs
+ getinfo: reset retry-after value in initinfo
+
+ - Avoid re-using retry_after value from preceding request
+ - Add libtest 3010 to verify
- Closes #4382
+ Reported-by: joey-l-us on github
+ Fixes #5661
+ Closes #5672
-- cookie: pass in the correct cookie amount to qsort()
+Marcel Raad (27 Jul 2020)
+- WIN32: stop forcing narrow-character API
- As the loop discards cookies without domain set. This bug would lead to
- qsort() trying to sort uninitialized pointers. We have however not found
- it a security problem.
+ 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.
- Reported-by: Paul Dreik
- Closes #4386
+ Fixes https://github.com/curl/curl/issues/5658
+ Fixes https://github.com/curl/curl/issues/5712
+ Closes https://github.com/curl/curl/pull/5718
-- [Paul Dreik brought this change]
+Jay Satiro (27 Jul 2020)
+- [Tobias Stoeckmann brought this change]
- urlapi: avoid index underflow for short ipv6 hostnames
+ mprintf: Fix stack overflows
- If the input hostname is "[", hlen will underflow to max of size_t when
- it is subtracted with 2.
+ Stack overflows can occur with precisions for integers and floats.
- hostname[hlen] will then cause a warning by ubsanitizer:
+ Proof of concepts:
+ - curl_mprintf("%d, %.*1$d", 500, 1);
+ - curl_mprintf("%d, %+0500.*1$f", 500, 1);
- runtime error: addition of unsigned offset to 0x<snip> overflowed to
- 0x<snip>
+ Ideally, compile with -fsanitize=address which makes this undefined
+ behavior a bit more defined for debug purposes.
- I think that in practice, the generated code will work, and the output
- of hostname[hlen] will be the first character "[".
+ 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.
- This can be demonstrated by the following program (tested in both clang
- and gcc, with -O3)
+ Also see CVE-2016-9586 which partially fixed the float aspect.
- int main() {
- char* hostname=strdup("[");
- size_t hlen = strlen(hostname);
+ Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
- hlen-=2;
- hostname++;
- printf("character is %d\n",+hostname[hlen]);
- free(hostname-1);
- }
-
- I found this through fuzzing, and even if it seems harmless, the proper
- thing is to return early with an error.
-
- Closes #4389
+ Closes https://github.com/curl/curl/pull/5722
-- [Tatsuhiro Tsujikawa brought this change]
+- [Tobias Stoeckmann brought this change]
- ngtcp2: compile with latest ngtcp2 + nghttp3 draft-23
+ mprintf: Fix dollar string handling
- Closes #4392
-
-- THANKS-filter: deal with my typos 'Jat' => 'Jay'
-
-- travis: use go master
+ Verify that specified parameters are in range. If parameters are too
+ large, fail early on and avoid out of boundary accesses.
- ... as the boringssl builds needs a very recent version
+ Also do not read behind boundaries of illegal format strings.
- Co-authored-by: Jat Satiro
- Closes #4361
-
-- tool_operate: removed unused variable 'done'
+ 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.
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Closes https://github.com/curl/curl/pull/5722
-- tool_operate: Expression 'config->resume_from' is always true
+Daniel Stenberg (26 Jul 2020)
+- ntlm: free target_info before (re-)malloc
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- tool_getparam: remove duplicate switch case
+ OSS-Fuzz found a way this could get called again with the pointer still
+ pointing to a malloc'ed memory, leading to a leak.
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- libssh2: part of conditional expression is always true: !result
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24379
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Closes #5724
-- urlapi: Expression 'storep' is always true
+Marcel Raad (26 Jul 2020)
+- CI/macos: set minimum macOS version
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- urlapi: 'scheme' is always true
+ This enables some deprecation warnings.
+ Previously, autotools defaulted to 10.8.
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Closes https://github.com/curl/curl/pull/5723
-- urlapi: part of conditional expression is always true: (relurl[0] == '/')
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
+Daniel Stenberg (26 Jul 2020)
+- RELEASE-NOTES: synced
-- setopt: store CURLOPT_RTSP_SERVER_CSEQ correctly
+Marcel Raad (25 Jul 2020)
+- CI/macos: enable warnings as errors for CMake builds
- Fixes bug detected by PVS-Studio
- Fixes #4374
+ Closes https://github.com/curl/curl/pull/5716
-- mime: make Curl_mime_duppart() assert if called without valid dst
+- CMake: fix test for warning suppressions
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- http_proxy: part of conditional expression is always true: !error
+ 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.
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- imap: merged two case-branches performing the same action
+ [0] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Closes https://github.com/curl/curl/pull/5714
-- multi: value '2L' is assigned to a boolean
+Jay Satiro (23 Jul 2020)
+- curl.h: update CURLINFO_LASTONE
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- easy: part of conditional expression is always true: !result
+ CURLINFO_LASTONE should have been updated when
+ CURLINFO_EFFECTIVE_METHOD was added.
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- netrc: part of conditional expression is always true: !done
+ Reported-by: xwxbug@users.noreply.github.com
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Fixes https://github.com/curl/curl/issues/5711
-- version: Expression 'left > 1' is always true
+Marc Hoersken (22 Jul 2020)
+- CI/azure: unconditionally enable warnings-as-errors with autotools
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- url: remove dead code
+ Reviewed-by: Marcel Raad
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Follow up to #5694
+ Closes #5706
-- url: part of expression is always true: (bundle->multiuse == 0)
+Marcel Raad (21 Jul 2020)
+- doh: remove redundant cast
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Closes https://github.com/curl/curl/pull/5704
-- ftp: the conditional expression is always true
+- CI/macos: unconditionally enable warnings-as-errors with autotools
- ... both !result and (ftp->transfer != FTPTRANSFER_BODY)!
+ Previously, warnings were only visible in the output for most jobs.
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Closes https://github.com/curl/curl/pull/5694
-- ftp: Expression 'ftpc->wait_data_conn' is always false
+- util: silence conversion warnings
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- ftp: Expression 'ftpc->wait_data_conn' is always true
+ 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`.
- Fixes warning detected by PVS-Studio
- Fixes #4374
+ Closes https://github.com/curl/curl/pull/5695
-- ftp: part of conditional expression is always true: !result
+- md(4|5): don't use deprecated macOS functions
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- http: fix Expression 'http->postdata' is always false
+ They are marked as deprecated for -mmacosx-version-min >= 10.15,
+ which might result in warnings-as-errors.
- Fixes warning detected by PVS-Studio
- Fixes #4374
- Reported-by: Valerii Zapodovnikov
+ Closes https://github.com/curl/curl/pull/5695
-- [Niall O'Reilly brought this change]
-
- doh: avoid truncating DNS QTYPE to lower octet
+Daniel Stenberg (18 Jul 2020)
+- strdup: remove the odd strlen check
- Closes #4381
-
-- [Jens Finkhaeuser brought this change]
-
- urlapi: CURLU_NO_AUTHORITY allows empty authority/host part
+ 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.
- CURLU_NO_AUTHORITY is intended for use with unknown schemes (i.e. not
- "file:///") to override cURL's default demand that an authority exists.
-
- Closes #4349
-
-- version: next release will be 7.67.0
+ Closes #5697
-- RELEASE-NOTES: synced
+- [Alessandro Ghedini brought this change]
-- url: only reuse TLS connections with matching pinning
+ travis: update quiche builds for new boringssl layout
- If the requests have different CURLOPT_PINNEDPUBLICKEY strings set, the
- connection should not be reused.
+ This is required after https://github.com/cloudflare/quiche/pull/593
+ moved BoringSSL around slightly.
- Bug: https://curl.haxx.se/mail/lib-2019-09/0061.html
- Reported-by: Sebastian Haglund
+ This also means that Go is not needed to build BoringSSL anymore (the
+ one provided by quiche anyway).
- Closes #4347
+ Closes #5691
-- README: add OSS-Fuzz badge [skip ci]
+Marcel Raad (17 Jul 2020)
+- configure: allow disabling warnings
- Closes #4380
-
-Michael Kaufmann (18 Sep 2019)
-- http: merge two "case" statements
+ 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 (18 Sep 2019)
-- [Zenju brought this change]
+Daniel Stenberg (16 Jul 2020)
+- ngtcp2: adjust to recent sockaddr updates
+
+ Closes #5690
- FTP: remove trailing slash from path for LIST/MLSD
+- page-header: provide protocol details in the curl.1 man page
+
+ Add protocol and version specific information about all protocols curl
+ supports.
- Closes #4348
+ Fixes #5679
+ Reported-by: tbugfinder on github
+ Closes #5686
-- mime: when disabled, avoid C99 macro
+Daniel Gustafsson (16 Jul 2020)
+- docs: Update a few leftover mentions of DarwinSSL
- Closes #4368
+ Commit 76a9c3c4be10b3d4d379d5b23ca76806bbae536a renamed DarwinSSL to the
+ more correct/common name Secure Transport, but a few mentions in the docs
+ remained.
+
+ Closes #5688
+ Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-- url: cleanup dangling DOH request headers too
+Daniel Stenberg (16 Jul 2020)
+- file2memory: use a define instead of -1 unsigned value
- Follow-up to 9bc44ff64d9081
+ ... to use the maximum value for 'size_t' when detecting integer overflow.
+ Changed the limit to max/4 as already that seems unreasonably large.
- Credit to OSS-Fuzz
- Bug: https://crbug.com/oss-fuzz/17269
+ Codacy didn't like the previous approach.
- Closes #4372
+ Closes #5683
-- [Christoph M. Becker brought this change]
-
- http2: relax verification of :authority in push promise requests
+- CURL_PUSH_ERROROUT: allow the push callback to fail the parent stream
- If the :authority pseudo header field doesn't contain an explicit port,
- we assume it is valid for the default port, instead of rejecting the
- request for all ports.
+ ... by adding support for a new dedicated return code.
- Ref: https://curl.haxx.se/mail/lib-2019-09/0041.html
+ 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
- Closes #4365
+ 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
-- doh: clean up dangling DOH handles and memory on easy close
+- test1119: verify stdout in the test
- If you set the same URL for target as for DoH (and it isn't a DoH
- server), like "https://example.com" in both, the easy handles used for
- the DoH requests could be left "dangling" and end up not getting freed.
+ So that failures will be displayed in the terminal, as it makes test failures
+ visually displayed easier and faster.
- Reported-by: Paul Dreik
- Closes #4366
+ Closes #5644
-- unit1655: make it C90 compliant
+- curl: add %{method} to the -w variables
- Unclear why this was not detected in the CI.
+ Gets the CURLINFO_EFFECTIVE_METHOD from libcurl.
- Follow-up to b7666027296a
+ Added test 1197 to verify.
-- smb: check for full size message before reading message details
+- CURLINFO_EFFECTIVE_METHOD: added
- To avoid reading of uninitialized data.
+ 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.
- Assisted-by: Max Dymond
- Bug: https://crbug.com/oss-fuzz/16907
- Closes #4363
+ Closes #5511
-- quiche: persist connection details
+Viktor Szakats (14 Jul 2020)
+- windows: add unicode to feature list
- ... like we do for other protocols at connect time. This makes "curl -I"
- and other things work.
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Marc Hörsken
- Reported-by: George Liu
- Fixes #4358
- Closes #4360
+ Closes #5491
-- openssl: fix warning with boringssl and SSL_CTX_set_min_proto_version
+Daniel Stenberg (14 Jul 2020)
+- multi: remove two checks always true
- Follow-up to ffe34b7b59
- Closes #4359
+ Detected by Codacy
+ Closes #5676
-- [Paul Dreik brought this change]
+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
- doh: fix undefined behaviour and open up for gcc and clang optimization
+- appveyor: collect libcurl.dll variants with prefix or suffix
- The undefined behaviour is annoying when running fuzzing with
- sanitizers. The codegen is the same, but the meaning is now not up for
- dispute. See https://cppinsights.io/s/516a2ff4
+ On some platforms libcurl is build with a platform-specific
+ prefix and/or a version number suffix.
- By incrementing the pointer first, both gcc and clang recognize this as
- a bswap and optimizes it to a single instruction. See
- https://godbolt.org/z/994Zpx
+ Assisted-by: Jay Satiro
- Closes #4350
+ Closes #5659
-- [Paul Dreik brought this change]
+Daniel Stenberg (12 Jul 2020)
+- [ihsinme brought this change]
- doh: fix (harmless) buffer overrun
+ socks: use size_t for size variable
- Added unit test case 1655 to verify.
- Close #4352
+ Use the unsigned type (size_t) in the arithmetic of pointers. In this
+ context, the signed type (ssize_t) is used unnecessarily.
- the code correctly finds the flaws in the old code,
- if one temporarily restores doh.c to the old version.
+ Authored-by: ihsinme on github
+ Closes #5654
-Alessandro Ghedini (15 Sep 2019)
-- docs: remove trailing ':' from section names in CURLOPT_TRAILER* man
-
-- docs: fix typo in CURLOPT_HTTP_VERSION man
+- RELEASE-NOTES: synced
+
+ ... and bumped to 7.72.0 as the next release version number
-GitHub (14 Sep 2019)
-- [Daniel Stenberg brought this change]
+- [Gilles Vollant brought this change]
- CI: inintial github action job
+ content_encoding: add zstd decoding support
- First shot at a CI build on github actions
+ 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
-Daniel Stenberg (13 Sep 2019)
-- appveyor: add a winbuild
+- asyn.h: remove the Curl_resolver_getsock define
- Assisted-by: Marcel Raad
- Assisted-by: Jay Satiro
+ - not used
+ - used the wrong number of arguments
+ - confused the Codeacy code analyzer
- Closes #4324
+ Closes #5647
-- FTP: allow "rubbish" prepended to the SIZE response
-
- This is a protocol violation but apparently there are legacy proprietary
- servers doing this.
+- [Nicolas Sterchele brought this change]
+
+ configure.ac: Sort features name in summary
- Added test 336 and 337 to verify.
+ - Same as protocols
- Reported-by: Philippe Marguinaud
- Closes #4339
+ Closes #5656
-- [Zenju brought this change]
+- [Matthias Naegler brought this change]
- FTP: skip CWD to entry dir when target is absolute
+ cmake: fix windows xp build
- Closes #4332
+ Reviewed-by: Marcel Raad
+ Closes #5662
-Kamil Dudka (13 Sep 2019)
-- curl: fix memory leaked by parse_metalink()
+- ngtcp2: update to modified qlog callback prototype
- This commit fixes a regression introduced by curl-7_65_3-5-gb88940850.
- Detected by tests 2005, 2008, 2009, 2010, 2011, and 2012 with valgrind
- and libmetalink enabled.
-
- Closes #4326
+ Closes #5675
-Daniel Stenberg (13 Sep 2019)
-- parsedate: still provide the name arrays when disabled
+- transfer: fix memory-leak with CURLOPT_CURLU in a duped handle
- If FILE or FTP are enabled, since they also use them!
+ Added test case 674 to reproduce and verify the bug report.
- Reported-by: Roland Hieber
- Fixes #4325
- Closes #4343
+ Fixes #5665
+ Reported-by: NobodyXu on github
+ Closes #5673
-- [Gilles Vollant brought this change]
+- [Baruch Siach brought this change]
- curl:file2string: load large files much faster
+ bearssl: fix build with disabled proxy support
- ... by using a more efficient realloc scheme.
+ Avoid reference to fields that do not exist when CURL_DISABLE_PROXY is
+ defined.
- Bug: https://curl.haxx.se/mail/lib-2019-09/0045.html
- Closes #4336
+ Reviewed-by: Nicolas Sterchele
+ Closes #5666
-- openssl: close_notify on the FTP data connection doesn't mean closure
-
- For FTPS transfers, curl gets close_notify on the data connection
- without that being a signal to close the control connection!
+- RELEASE-NOTES: synced
+
+Jay Satiro (11 Jul 2020)
+- [Carlo Marcelo Arenas Belón brought this change]
+
+ cirrus-ci: upgrade 11-STABLE to 11.4
- Regression since 3f5da4e59a556fc (7.65.0)
+ 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.
- Reported-by: Zenju on github
- Reviewed-by: Jay Satiro
- Fixes #4329
- Closes #4340
+ Closes https://github.com/curl/curl/pull/5668
-- [Jimmy Gaussen brought this change]
+- [Filip Salomonsson brought this change]
- docs/HTTP3: fix `--with-ssl` ngtcp2 configure flag
+ CURLINFO_CERTINFO.3: fix typo
- Closes #4338
+ Closes https://github.com/curl/curl/pull/5655
-- RELEASE-NOTES: synced
-
-- curlver: bump to 7.66.1
+Daniel Stenberg (4 Jul 2020)
+- http2: only do the *done() cleanups for HTTP
+
+ Follow-up to ef86daf4d3
+
+ Closes #5650
+ Fixes #5646
-- [Zenju brought this change]
+- [Alex Kiernan brought this change]
- setopt: make it easier to add new enum values
+ gnutls: repair the build with `CURL_DISABLE_PROXY`
- ... by using the *_LAST define names better.
+ `http_proxy`/`proxy_ssl`/`tunnel_proxy` will not be available in `conn`
+ if `CURL_DISABLE_PROXY` is enabled. Repair the build with that
+ configuration.
- Closes #4321
+ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+ Closes #5645
-- asyn-thread: s/AF_LOCAL/AF_UNIX for Solaris
+Alex Kiernan (3 Jul 2020)
+- gnutls: Fetch backend when using proxy
- Reported-by: Dagobert Michelsen
- Fixes #4328
- Closes #4333
+ Fixes: 89865c149 ("gnutls: remove the BACKEND define kludge")
+ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-- [Bernhard Walle brought this change]
+Daniel Stenberg (3 Jul 2020)
+- [Laramie Leavitt brought this change]
- winbuild/MakefileBuild.vc: Add vssh
+ http2: close the http2 connection when no more requests may be sent
- Without that modification, the Windows build using the makefiles doesn't
- work.
+ 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.
- Signed-off-by: Bernhard Walle <bernhard.walle@posteo.eu>
+ 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.
- Fixes #4322
- Closes #4323
-
-Bernhard Walle (11 Sep 2019)
-- winbuild/MakefileBuild.vc: Fix line endings
+ It would be also be possible to put the connclose() call into the
+ on_http2_frame_recv() function that triggers on the GOAWAY message.
- The file had mixed line endings.
+ This fixes a bug seen when the client sees the following sequence of
+ frames:
- Signed-off-by: Bernhard Walle <bernhard.walle@posteo.eu>
-
-Jay Satiro (11 Sep 2019)
-- ldap: Stop using wide char version of ldapp_err2string
+ // advisory GOAWAY
+ HTTP2 GOAWAY [stream-id = 0, promised-stream-id = -1]
+ ... some additional frames
- Despite ldapp_err2string being documented by MS as returning a
- PCHAR (char *), when UNICODE it is mapped to ldap_err2stringW and
- returns PWCHAR (wchar_t *).
+ // final GOAWAY
+ HTTP2 GOAWAY [stream-id = 0, promised-stream-id = N ]
- We have lots of code that expects ldap_err2string to return char *,
- most of it failf used like this:
+ Before this change, curl will attempt to reuse the connection even
+ after the last stream, will encounter this error:
- failf(data, "LDAP local: Some error: %s", ldap_err2string(rc));
+ * 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
- Closes https://github.com/curl/curl/pull/4272
-
-Version 7.66.0 (10 Sep 2019)
+ 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
-Daniel Stenberg (10 Sep 2019)
-- RELEASE-NOTES: curl 7.66.0
+- 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
-- THANKS: from the 7.66.0 release
+- 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
-- curl: make sure the parallel transfers do them all
+Kamil Dudka (3 Jul 2020)
+- tool_getparam: make --krb option work again
- The logic could erroneously break the loop too early before all
- transfers had been transferred.
+ It was disabled by mistake in commit curl-7_37_1-23-ge38ba4301.
- Reported-by: Tom van der Woerdt
- Fixes #4316
- Closes #4317
+ Bug: https://bugzilla.redhat.com/1833193
+ Closes #5640
-- urlapi: one colon is enough for the strspn() input (typo)
+Daniel Stenberg (2 Jul 2020)
+- [Jeremy Maitin-Shepard brought this change]
-- urlapi: verify the IPv6 numerical address
+ http2: fix nghttp2_strerror -> nghttp2_http2_strerror in debug messages
- It needs to parse correctly. Otherwise it could be tricked into letting
- through a-f using host names that libcurl would then resolve. Like
- '[ab.be]'.
+ Confusingly, nghttp2 has two different error code enums:
- Reported-by: Thomas Vegas
- Closes #4315
-
-- [Clément Notin brought this change]
+ - nghttp2_error, to be used with nghttp2_strerror
+ - nghttp2_error_code, to be used with nghttp2_http2_strerror
+
+ Closes #5641
- openssl: use SSL_CTX_set_<min|max>_proto_version() when available
+Marcel Raad (2 Jul 2020)
+- url: silence MSVC warning
- OpenSSL 1.1.0 adds SSL_CTX_set_<min|max>_proto_version() that we now use
- when available. Existing code is preserved for older versions of
- OpenSSL.
+ 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
- Closes #4304
+ 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
-- [Clément Notin brought this change]
+Daniel Stenberg (1 Jul 2020)
+- RELEASE-NOTES: synced
- openssl: indent, re-organize and add comments
+Version 7.71.1 (30 Jun 2020)
-- [migueljcrum brought this change]
+Daniel Stenberg (30 Jun 2020)
+- RELEASE-NOTES: curl 7.71.1
- sspi: fix memory leaks
-
- Closes #4299
+- THANKS: add contributors to 7.71.1
-- travis: disable ngtcp2 builds (again)
+- scripts/copyright.pl: skip .dcignore
-- Curl_fillreadbuffer: avoid double-free trailer buf on error
+- Revert "multi: implement wait using winsock events"
- Reviewed-by: Jay Satiro
- Reported-by: Thomas Vegas
+ This reverts commit 8bc25c590e530de87595d1bb3577f699eb1309b9.
- Closes #4307
-
-- tool_setopt: handle a libcurl build without netrc support
+ That commit (from #5397) introduced a regression in 7.71.0.
- Reported-by: codesniffer13 on github
- Fixes #4302
- Closes #4305
+ Reported-by: tmkk on github
+ Fixes #5631
+ Closes #5632
-- security:read_data fix bad realloc()
-
- ... that could end up a double-free
-
- CVE-2019-5481
- Bug: https://curl.haxx.se/docs/CVE-2019-5481.html
+- TODO: Add flag to specify download directory
-- [Thomas Vegas brought this change]
+- TODO: return code to CURLMOPT_PUSHFUNCTION to fail connection
- tftp: Alloc maximum blksize, and use default unless OACK is received
+- cirrus-ci: disable FreeBSD 13 (again)
- Fixes potential buffer overflow from 'recvfrom()', should the server
- return an OACK without blksize.
+ 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.
- Bug: https://curl.haxx.se/docs/CVE-2019-5482.html
- CVE-2019-5482
+ Closes #5628
-- [Thomas Vegas brought this change]
+- ngtcp2: sync with current master
+
+ ngtcp2 added two new callbacks
+
+ Reported-by: Lucien Zürcher
+ Fixes #5624
+ Closes #5627
- tftp: return error when packet is too small for options
+- examples/multithread.c: call curl_global_cleanup()
+
+ Reported-by: qiandu2006 on github
+ Fixes #5622
+ Closes #5623
-- KNOWN_BUGS/TODO: cleanup and remove outdated issues
+- vtls: compare cert blob when finding a connection to reuse
+
+ Reported-by: Gergely Nagy
+ Fixes #5617
+ Closes #5619
- RELEASE-NOTES: synced
-- netrc: free 'home' on error
-
- Follow-up to f9c7ba9096ec2
+- terminology: call them null-terminated strings
- Coverity CID 1453474
+ 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).
- Closes #4291
+ Reported-by: coinhubs on github
+ Fixes #5598
+ Closes #5608
-- urldata: avoid 'generic', use dedicated pointers
+- http: fix proxy auth with blank password
- For the 'proto' union within the connectdata struct.
+ Regression in 7.71.0
- Closes #4290
+ Added test case 346 to verify.
+
+ Reported-by: Kristoffer Gleditsch
+ Fixes #5613
+ Closes #5616
-- cleanup: move functions out of url.c and make them static
+- .dcignore: ignore tests and docs directories
- Closes #4289
+ This is a config file for deepcode.ai, a static code analyzer.
-- smtp: check for and bail out on too short EHLO response
+Jay Satiro (26 Jun 2020)
+- tool_cb_hdr: Fix etag warning output and return code
- Otherwise, a three byte response would make the smtp_state_ehlo_resp()
- function misbehave.
+ - Return 'failure' on failure, to follow the existing style.
- Credit to OSS-Fuzz
- Bug: https://crbug.com/oss-fuzz/16918
+ - Put Warning: and the warning message on the same line.
- Assisted-by: Max Dymond
+ Ref: https://github.com/curl/curl/issues/5610
- Closes #4287
+ Closes https://github.com/curl/curl/pull/5612
-- smb: init *msg to NULL in smb_send_and_recv()
-
- ... it might otherwise return OK from this function leaving that pointer
- uninitialized.
+Daniel Stenberg (26 Jun 2020)
+- CURLOPT_READFUNCTION.3: provide the upload data size up front
- Bug: https://crbug.com/oss-fuzz/16907
-
- Closes #4286
+ Assisted-by: Jay Satiro
+ Closes #5607
-- ROADMAP: updated after recent user poll
+- test1539: do a HTTP 1.0 POST without a set size (fails)
- In rough prio order
+ Attempt to reproduce #5593. Test case 1514 is very similar but uses
+ HTTP/1.1 and thus switches to chunked.
+
+ Closes #5595
-- THANKS: remove duplicate
+- [Baruch Siach brought this change]
-- Curl_addr2string: take an addrlen argument too
+ mbedtls: fix build with disabled proxy support
- This allows the function to figure out if a unix domain socket has a
- file name or not associated with it! When a socket is created with
- socketpair(), as done in the fuzzer testing, the path struct member is
- uninitialized and must not be accessed.
+ Don't reference fields that do not exist. Fixes build failure:
- Bug: https://crbug.com/oss-fuzz/16699
+ vtls/mbedtls.c: In function 'mbed_connect_step1':
+ vtls/mbedtls.c:249:54: error: 'struct connectdata' has no member named 'http_proxy'
- Closes #4283
-
-- [Rolf Eike Beer brought this change]
-
- CMake: remove needless newlines at end of gss variables
+ Closes #5615
-- [Rolf Eike Beer brought this change]
-
- CI: remove duplicate configure flag for LGTM.com
+- codeql-analysis.yml: fix the 'languages' setting
+
+ It needs a 'with:' in front of it.
-- [Rolf Eike Beer brought this change]
+GitHub (26 Jun 2020)
+- [Daniel Stenberg brought this change]
- CMake: use platform dependent name for dlopen() library
+ gtihub: codeql-analysis.yml
- Closes #4279
+ enables code security scanning with github actions
-- quiche: expire when poll returned data
+Daniel Stenberg (25 Jun 2020)
+- tests: verify newline in username and password for HTTP
- ... to make sure we continue draining the queue until empty
+ test 1296 is a simply command line test
- Closes #4281
+ test 1910 is a libcurl test including a redirect
-- quiche: decrease available buffer size, don't assign it!
+- url: allow user + password to contain "control codes" for HTTP(S)
- Found-by: Jeremy Lainé
-
-- RELEASE-NOTES: synced
-
-- [Kyohei Kadota brought this change]
-
- curl: fix include conditions
-
-- [Kyohei Kadota brought this change]
+ Reported-by: Jon Johnson Jr
+ Fixes #5582
+ Closes #5592
- plan9: fix installation instructions
+- escape: make the URL decode able to reject only %00 bytes
- Closes #4276
-
-- ngtcp2: on h3 stream close, call expire
-
- ... to trigger a new read to detect the stream close!
+ ... or all "control codes" or nothing.
- Closes #4275
-
-- [Tatsuhiro Tsujikawa brought this change]
+ Assisted-by: Nicolas Sterchele
- ngtcp2: build latest ngtcp2 and ngtcp2_crypto_openssl
+- http2: set the correct URL in pushed transfers
- Closes #4278
-
-- ngtcp2: set flow control window to stream buffer size
+ ...previously CURLINFO_EFFECTIVE_URL would report the URL of the
+ original "mother transfer", not the actually pushed resource.
- Closes #4274
+ Reported-by: Jonathan Cardoso Machado
+ Fixes #5589
+ Closes #5591
-- [Christopher Head brought this change]
+Jay Satiro (25 Jun 2020)
+- [Javier Blazquez brought this change]
- CURLOPT_HEADERFUNCTION.3: clarify
+ 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 #4273
+ Closes https://github.com/curl/curl/pull/5606
-- CURLINFO docs: mention that in redirects times are added
+Daniel Stenberg (25 Jun 2020)
+- test543: extended to verify zero length input
- Suggested-by: Brandon Dong
- Fixes #4250
- Closes #4269
+ As was reported in #5601
-- travis: enable ngtcp2 builds again
+- escape: zero length input should return a zero length output
- Switched to the openssl-quic-draft-22 openssl branch.
+ Regression added in 7.71.0.
- Closes #4271
-
-- HTTP3: switched openssl branch to use
-
-- [Tatsuhiro Tsujikawa brought this change]
+ Fixes #5601
+ Reported-by: Kristoffer Gleditsch
+ Closes #5602
- ngtcp2: Build with latest ngtcp2 and ngtcp2_crypto_openssl
+- Curl_inet_ntop: always check the return code
- Closes #4270
+ Reported-by: Siva Sivaraman
+ Fixes #5412
+ Closes #5597
-- http2: when marked for closure and wanted to close == OK
+- sendf: improve the message on client write errors
- It could otherwise return an error even when closed correctly if GOAWAY
- had been received previously.
+ Replace "Failed writing body (X != Y)" with
+ "Failure writing output to destination". Possibly slightly less cryptic.
- Reported-by: Tom van der Woerdt
- Fixes #4267
- Closes #4268
+ Reported-by: coinhubs on github
+ Fixes #5594
+ Closes #5596
- RELEASE-NOTES: synced
-- build-openssl: fix build with Visual Studio 2019
-
- Reviewed-by: Marcel Raad
- Contributed-by: osabc on github
- Fixes #4188
- Closes #4266
+- curlver: start working on 7.71.1
-Kamil Dudka (26 Aug 2019)
-- vauth: return CURLE_AUTH_ERROR on gss_init_sec_context() failure
-
- This is a follow-up to https://github.com/curl/curl/pull/3864 .
-
- Closes #4224
+- [Denis Baručić brought this change]
-Daniel Stenberg (26 Aug 2019)
-- KNOWN_BUGS: USE_UNIX_SOCKETS on Windows
+ DYNBUF.md: fix a typo: trail => tail
- Closes #4040
+ Closes #5599
-- quiche: send the HTTP body correctly on callback uploads
-
- Closes #4265
+Version 7.71.0 (23 Jun 2020)
-- travis: disable ngtcp2 builds (temporarily)
-
- Just too many API changes right now
-
- Closes #4264
+Daniel Stenberg (23 Jun 2020)
+- RELEASE-NOTES: curl 7.71.0 release
-- ngtcp2: add support for SSLKEYLOGFILE
-
- Closes #4260
+- THANKS: curl 7.71.0 additions
-- ngtcp2: improve h3 response receiving
+- url: make sure pushed streams get an allocated download buffer
- Closes #4259
-
-- ngtcp2: use nghttp3_version()
-
-- ngtcp2: sync with upstream API changes
+ Follow-up to c4e6968127e876b0
- Assisted-by: Tatsuhiro Tsujikawa
-
-- [Kyle Abramowitz brought this change]
-
- scp: fix directory name length used in memcpy
+ When a new transfer is created, as a resuly of an acknowledged push,
+ that transfer needs a download buffer allocated.
- Fix read off end of array due to bad pointer math in getworkingpath for
- SCP home directory case.
-
- Closes #4258
+ Closes #5590
-- http: the 'closed' struct field is used by both ngh2 and ngh3
+Jay Satiro (22 Jun 2020)
+- openssl: Don't ignore CA paths when using Windows CA store
- and remove 'header_recvbuf', not used for anything
+ 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.
- Reported-by: Jeremy Lainé
+ 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.
- Closes #4257
+ Ref: bc052cc (parent commit)
+ Ref: https://github.com/curl/curl/issues/5585
-- ngtcp2: accept upload via callback
+- tool_operate: Don't use Windows CA store as a fallback
- Closes #4256
-
-- defines: avoid underscore-prefixed defines
+ Background:
- Double-underscored or underscore plus uppercase letter at least.
+ 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.
- ... as they're claimed to be reserved.
+ Problem:
- Reported-by: patnyb on github
+ 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.
- Fixes #4254
- Closes #4255
-
-- travis: add a build using ngtcp2 + nghttp3 (and a patched OpenSSL)
+ Solution:
- Runs no tests
+ A solution is still being discussed but since there's an impending
+ release this commit removes using CURLSSLOPT_NATIVE_CA in the curl tool.
- Closes #4253
+ Ref: https://github.com/curl/curl/issues/5585
-- travis: bump to using nghttp2 version 1.39.2
+- 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 #4252
+ Closes https://github.com/curl/curl/pull/5587
-- [Gisle Vanem brought this change]
+Daniel Stenberg (22 Jun 2020)
+- copyright: update mismatched copyright years
+
+- test1460: verify that -Ji is not ok
- docs/examples/curlx: fix errors
+- tool_getparam: -i is not OK if -J is used
- Initialise 'mimetype' and require the -p12 arg.
+ 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
- Closes #4248
+ Reviewed-by: Marcel Raad
+ Fixes #5512
+ Closes #5517
+
+- [Valentyn Korniienko brought this change]
-- cleanup: remove DOT_CHAR completely
+ multibyte: Fixed access-> waccess to file for Windows Plarform
- Follow-up to f9c7ba9096ec
+ Reviewed-by: Marcel Raad
+ Closes #5580
+
+- altsvc: bump to h3-29
- The use of DOT_CHAR for ".ssh" was probably a mistake and is removed
- now.
+ Closes #5584
+
+- urlglob: treat literal IPv6 addresses with zone IDs as a host name
- Pointed-out-by: Gisle Vanem
- Bug: https://github.com/curl/curl/pull/4230#issuecomment-522960638
+ ... 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.
- Closes #4247
+ Reported-by: puckipedia on github
+ Fixes #5576
+ Closes #5579
-- spnego_sspi: add typecast to fix build warning
+- test1179: verify error message for non-existing cmdline option
+
+- tool_getparam: repair the error message for unknown flag
- Reported in build "Win32 target on Debian Stretch (64-bit) -
- i686-w64-mingw32 - gcc-20170516"
+ Follow-up to 9e5669f3880674
+ Detected by Coverity CID 1464582 ("Logically dead code")
- Closes #4245
+ Closes #5577
-- openssl: build warning free with boringssl
-
- Closes #4244
+- FILEFORMAT: describe verify/stderr
-- curl: make --libcurl use CURL_HTTP_VERSION_3
+- 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.
- Closes #4243
+ Separated the timeout handling for IPv4 and IPv6 connections when they
+ both have a number of addresses to iterate over.
-- ngtcp2: make postfields-set posts work
+- ngtcp2: never call fprintf() in lib code in release version
+
+- ngtcp2: fix happy eyeballs quic connect crash
- Closes #4242
+ Reported-by: Peter Wu
+ Fixes #5565
+ Closes #5568
-- http: remove chunked-encoding and expect header use for HTTP/3
+- select: remove the unused ELAPSED_MS() macro
+
+ Closes #5573
-- [Alessandro Ghedini brought this change]
+Marc Hoersken (17 Jun 2020)
+- [rcombs brought this change]
- configure: use pkg-config to detect quiche
+ multi: implement wait using winsock events
- This removes the need to hard-code the quiche target path in
- configure.ac.
+ 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.
- This depends on https://github.com/cloudflare/quiche/pull/128
+ Reviewed-by: Gergely Nagy
+ Reviewed-by: Marc Hörsken
- Closes #4237
+ Closes #5397
-- CURLOPT_SSL_VERIFYHOST: treat the value 1 as 2
+Daniel Stenberg (17 Jun 2020)
+- manpage: add three missing environment variables
- For a long time (since 7.28.1) we've returned error when setting the
- value to 1 to make applications notice that we stopped supported the old
- behavior for 1. Starting now, we treat 1 and 2 exactly the same.
+ CURL_SSL_BACKEND, QLOGDIR and SSLKEYLOGFILE
- Closes #4241
+ Closes #5571
-- curl: use .curlrc (with a dot) on Windows as well
+- RELEASE-NOTES: synced
+
+- configure: for wolfSSL, check for the DES func needed for NTLM
- Fall-back to _curlrc if the dot-version is missing.
+ Also adds pkg-config support for the wolfSSL detection.
+
+- [Ruurd Beerstra brought this change]
+
+ ntlm: enable NTLM support with wolfSSL
- Co-Authored-By: Steve Holme
+ When wolfSSL is built with its OpenSSL API layer, it fetures the same DES*
+ functions that OpenSSL has. This change take advantage of that.
- Closes #4230
+ Co-authored-by: Daniel Stenberg
+ Closes #5556
+ Fixes #5548
-- netrc: make the code try ".netrc" on Windows as well
+- http: move header storage to Curl_easy from connectdata
- ... but fall back and try "_netrc" too if the dot version didn't work.
+ 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..
- Co-Authored-By: Steve Holme
+ Fixes #5566
+ Closes #5567
-- ngtcp2: use ngtcp2_version() to get the run-time version
+- CODE_REVIEW.md: how to do code reviews in curl
- ... which of course doesn't have to be the same used at build-time.
+ 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
- Function just recently merged in ngtcp2.
+ Closes #5555
-- ngtcp2: move the h3 initing to immediately after the rx key
+- altsvc: remove the num field from the altsvc struct
- To fix a segfault and to better deal with 0-RTT
+ It was superfluous since we have the list.size alredy
- Assisted-by: Tatsuhiro Tsujikawa
-
-- [Alessandro Ghedini brought this change]
+ Reported-by: Jay Satiro
+ Fixes #5553
+ Closes #5563
- quiche: register debug callback once and earlier
+- version.d: expanded and alpha-sorted
- The quiche debug callback is global and can only be initialized once, so
- make sure we don't do it multiple times (e.g. if multiple requests are
- executed).
+ Added a few missing features not previously mentioned. Ordered them
+ alphabetically.
- In addition this initializes the callback before the connection is
- created, so we get logs for the handshake as well.
+ Closes #5558
+
+- ABI.md: rename to .md and polish the markdown
- Closes #4236
+ Closes #5562
-- ssh: add a generic Curl_ssh_version function for SSH backends
+- 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 #4235
+ Closes #5560
-- base64: check for SSH, not specific SSH backends
+- TODO: retry on the redirected-to URL
+
+ Closes #5462
-- vssh: move ssh init/cleanup functions into backend code
+- mailmap: Nicolas Sterchele
-- vssh: create directory for SSH backend code
+- [Nicolas Sterchele brought this change]
-- TODO/ROADMAP: remove "refuse downgrade redirects" and HTTP/3
+ TODO: remove 19.3 section title
- HTTP3 is now already in full progress
+ Follow-up to ad6416986755e417c66e2c6, which caused wrong formatting on
+ curl documentation website
- Downgrade redirects can be achived almost exactly like that by setting
- CURLOPT_REDIR_PROTOCOLS.
+ Closes #5561
-- RELEASE-NOTES: synced
+- [Martin V brought this change]
-- travis: add a quiche build
+ test1560: avoid possibly negative association in wording
- Closes #4207
+ Closes #5549
-- http: fix use of credentials from URL when using HTTP proxy
+- share: don't set the share flag it something fails
- When a username and password are provided in the URL, they were wrongly
- removed from the stored URL so that subsequent uses of the same URL
- wouldn't find the crendentials. This made doing HTTP auth with multiple
- connections (like Digest) mishave.
+ 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.
- Regression from 46e164069d1a5230 (7.62.0)
+ Closes #5554
+
+- buildconf: remove -print from the find command that removes files
- Test case 335 added to verify.
+ It's just too annoying and unnecessary to get a long list of files shown
+
+- RELEASE-NOTES: synced
+
+- wording: avoid blacklist/whitelist stereotypes
- Reported-by: Mike Crowe
+ 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.
- Fixes #4228
- Closes #4229
+ Closes #5546
-- [Mike Crowe brought this change]
-
- tests: Replace outdated test case numbering documentation
+Jay Satiro (9 Jun 2020)
+- tool_getparam: fix memory leak in parse_args
- Tests are no longer grouped by numeric range[1]. Let's stop saying that
- and provide some alternative advice for numbering tests.
+ Prior to this change in Windows Unicode builds most parsed options would
+ not be freed.
- [1] https://curl.haxx.se/mail/lib-2019-08/0043.html
+ Found using _CrtDumpMemoryLeaks().
- Closes #4227
+ Ref: https://github.com/curl/curl/issues/5545
-- travis: reduce number of torture tests in 'coverage'
+Daniel Stenberg (8 Jun 2020)
+- socks: detect connection close during handshake
- ... to make it complete in time. This cut seems not almost not affect
- the coverage percentage and yet completes within 35 minutes on travis
- where the previous runs recently always timed out after 50.
+ The SOCKS4/5 state machines weren't properly terminated when the proxy
+ connection got closed, leading to a busy-loop.
- Closes #4223
+ Reported-By: zloi-user on github
+ Fixes #5532
+ Closes #5542
-- [Igor Makarov brought this change]
+- [James Fuller brought this change]
- configure: use -lquiche to link to quiche
+ multi: add defensive check on data->multi->num_alive
- Closes #4226
+ Closes #5540
-- ngtcp2: provide the callbacks as a static struct
+- Curl_addrinfo: use one malloc instead of three
- ... instead of having them in quicsocket
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: add missing nghttp3_conn_add_write_offset call
+ 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 #4225
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: deal with stream close
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: Consume QUIC STREAM data properly
+ Closes #5533
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: don't reinitialize SSL on Retry
+- [Alessandro Ghedini brought this change]
-- multi: getsock improvements for QUIC connecting
+ 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
-- connect: connections are persistent by default for HTTP/3
+- tests: add two simple tests for --login-options
+
+ Test 895 and 896 - as a follow-up to a3e972313b
+
+ Closes #5539
-- quiche: happy eyeballs
+- ngtcp2: update with recent API changes
+
+ Syncs with ngtcp2 commit 7e9a917d386d98 merged June 7 2020.
- Closes #4220
+ Assisted-by: Tatsuhiro Tsujikawa
+ Closes #5538
-- ngtcp2: do QUIC connections happy-eyeballs friendly
+- [James Fuller brought this change]
-- curl_version: bump string buffer size to 250
+ socks: remove unreachable breaks in socks.c and mime.c
- With HTTP/3 libs and plenty TLS libs, I manged to hit the limit (which
- causes a truncated output).
+ Closes #5537
-- CURLOPT_ALTSVC.3: use a "" file name to not load from a file
+- tool_cfgable: free login_options at exit
+
+ Memory leak
+ Reported-by: Geeknik Labs
+ Fixes #5535
+ Closes #5536
-Jay Satiro (14 Aug 2019)
-- vauth: Use CURLE_AUTH_ERROR for auth function errors
+- libssh2: keep sftp errors as 'unsigned long'
- - Add new error code CURLE_AUTH_ERROR.
+ Remove weird work-around for storing the SFTP errors as int instead of
+ the "unsigned long" that libssh2 actually returns for SFTP errors.
- Prior to this change auth function errors were signaled by
- CURLE_OUT_OF_MEMORY and CURLE_RECV_ERROR, and neither one was
- technically correct.
+ Closes #5534
+
+Marc Hoersken (6 Jun 2020)
+- timeouts: move ms timeouts to timediff_t from int and long
- Ref: https://github.com/curl/curl/pull/3848
+ 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.
- Co-authored-by: Dominik Hölzl
+ Avoiding conversions from time_t was already done in 842f73de.
- Closes https://github.com/curl/curl/pull/3864
+ Based upon #5262
+ Supersedes #5214, #5220 and #5221
+ Follow up to #5343 and #5479
+ Closes #5490
-Daniel Stenberg (13 Aug 2019)
-- curl_version_info: make the quic_version a const
+Daniel Stenberg (6 Jun 2020)
+- [François Rigault brought this change]
+
+ openssl: set FLAG_TRUSTED_FIRST unconditionally
- Follow-up from 1a2df1518ad8653f
+ 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.
- Closes #4222
-
-- examples: add http3.c, altsvc.c and http3-present.c
+ 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 #4221
+ Closes #5530
-Peter Wu (13 Aug 2019)
-- nss: use TLSv1.3 as default if supported
+- server/util: fix logmsg format using curl_off_t argument
- SSL_VersionRangeGetDefault returns (TLSv1.0, TLSv1.2) as supported
- range in NSS 3.45. It looks like the intention is to raise the minimum
- version rather than lowering the maximum, so adjust accordingly. Note
- that the caller (nss_setup_connect) initializes the version range to
- (TLSv1.0, TLSv1.3), so there is no need to check for >= TLSv1.0 again.
+ ... this caused segfaults on armv7.
- Closes #4187
- Reviewed-by: Daniel Stenberg
- Reviewed-by: Kamil Dudka
+ Regression added in dd0365d560aea5a (7.70.0)
+
+ Reviewed-by: Jay Satiro
+ Closes #5529
-Daniel Stenberg (13 Aug 2019)
-- quic.h: remove unused proto
+- RELEASE-NOTES: synced
-- curl_version_info.3: mentioned ALTSVC and HTTP3
-
- ... and sorted the list alphabetically
+- [Cherish98 brought this change]
-- lib/quic.c: unused - removed
+ 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
-- CURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED
+Marc Hoersken (5 Jun 2020)
+- .gitignore: add directory containing the stats repo
- Follow-up to 98c3f148 that removed it from the header file
+ 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.
-- [Junho Choi brought this change]
+Daniel Stenberg (5 Jun 2020)
+- [Adnan Khan brought this change]
- docs/HTTP3: simplify quiche build instruction
+ HTTP3.md: clarify cargo build directory
- Use --recursive to get boringssl in one line
+ Cargo needs to be called from within the 'quiche' directory.
- Closes #4219
+ Closes #5522
-- altsvc: make it use h3-22 with ngtcp2 as well
-
-- ngtcp2: initial h3 request work
+- user-agent.d: spell out what happens given a blank argument
- Closes #4217
+ Closes #5525
-- curl_version_info: offer quic (and h3) library info
+- trailers: switch h1-trailer logic to use dynbuf
- Closes #4216
-
-- HTTP3: use ngtcp2's draft-22 branch
-
-- RELEASE-NOTES: synced
+ In the continued effort to remove "manual" realloc schemes.
+
+ Closes #5524
-- CURLOPT_READFUNCTION.3: provide inline example
+- CURLINFO_ACTIVESOCKET.3: clarify the description
- ... instead of mentioning one in another place
+ Reported-by: Jay Satiro
+ Fixes #5299
+ Closes #5520
-- [Tatsuhiro Tsujikawa brought this change]
+- mailmap: Don J Olmstead
- ngtcp2: send HTTP/3 request with nghttp3
+- configure: only strip first -L from LDFLAGS
- This commit makes sending HTTP/3 request with nghttp3 work. It
- minimally receives HTTP response and calls nghttp3 callbacks, but no
- processing is made at the moment.
+ 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!
- Closes #4215
-
-- nghttp3: initial h3 template code added
+ 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
-- nghttp3: required when ngtcp2 is used for QUIC
+Peter Wu (4 Jun 2020)
+- quiche: advertise draft 28 support
- - checked for by configure
- - updated docs/HTTP3.md
- - shown in the version string
+ Fix the verbose message while at it, quiche currently supports draft
+ 27 and draft 28 simultaneously.
- Closes #4210
+ Closes #5518
-- [Eric Wong brought this change]
+Daniel Stenberg (4 Jun 2020)
+- KNOWN_BUGS: RTSP authentication breaks without redirect support
+
+ Closes #4750
- asyn-thread: issue CURL_POLL_REMOVE before closing socket
+Jay Satiro (4 Jun 2020)
+- projects: Add crypt32.lib to dependencies for all OpenSSL configs
- This avoids EBADF errors from EPOLL_CTL_DEL operations in the
- ephiperfifo.c example. EBADF is dangerous in multi-threaded
- applications where I rely on epoll_ctl to operate on the same
- epoll description from different threads.
+ Windows project configurations that use OpenSSL with USE_WIN32_CRYPTO
+ need crypt32.
- Follow-up to eb9a604f8d7db8
+ Follow-up to 148534d which added CURLSSLOPT_NATIVE_CA for 7.71.0.
- Bug: https://curl.haxx.se/mail/lib-2019-08/0026.html
- Closes #4211
-
-- [Carlo Marcelo Arenas Belón brought this change]
-
- configure: avoid undefined check_for_ca_bundle
+ The changes that are in this commit were made by script.
- instead of using a "greater than 0" test, check for variable being
- set, as it is always set to 1, and could be left unset if non of
- OPENSSL MBEDTLS GNUTLS WOLFSSL is being configured for.
+ Ref: https://gist.github.com/jay/a1861b50ecce2b32931237180f856e28
- Closes #4213
-
-- [Tatsuhiro Tsujikawa brought this change]
+ Closes https://github.com/curl/curl/pull/5516
- ngtcp2: Send ALPN h3-22
+Marc Hoersken (3 Jun 2020)
+- CI/macos: fix 'is already installed' errors by using bundle
- Closes #4212
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: use ngtcp2_settings_default and specify initial_ts
+ Avoid failing CI builds due to nghttp2 being already installed.
+
+ Closes #5513
-- curl_global_init_mem.3: mention it was added in 7.12.0
+Daniel Stenberg (3 Jun 2020)
+- altsvc: fix 'dsthost' may be used uninitialized in this function
-- [Tatsuhiro Tsujikawa brought this change]
+- RELEASE-NOTES: synced
- ngtcp2: make the QUIC handshake work
+- 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
- Closes #4209
+ Test 1633 added to verify.
+
+ Closes #5499
-- [Alex Mayorga brought this change]
+- hostip: fix the memory-leak introduced in 67d2802
+
+ Fixes #5503
+ Closes #5504
- HTTP3.md: Update quiche build instructions
+- test970: make it require proxy support
- Added cloning for quiche and BoringSSL and modified the build
- instructions so they work on a clean folder.
+ 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.
- Closes #4208
+ Reported-by: Marc Hörsken
+ Fixes #5501
+ Closes #5502
+
+- [Radoslav Georgiev brought this change]
-- CURLOPT_H3: removed
+ examples/http2-down/upload: add error checks
- There's no use for this anymore and it was never in a release.
+ 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).
- Closes #4206
+ In addition, mitigate some possible crashes of similar origin.
+
+ Closes #5463
+
+- [kotoriのねこ brought this change]
-- http3: make connection reuse work
+ examples/ephiperfifo: turn off interval when setting timerfd
- Closes #4204
+ Reported-by: therealhirudo on github
+ Fixes #5485
+ Closes #5497
-- quiche: add SSLKEYLOGFILE support
+- [Saleem Abdulrasool brought this change]
-- cleanup: s/curl_debug/curl_dbg_debug in comments and docs
+ vtls: repair the build with `CURL_DISABLE_PROXY`
- Leftovers from the function rename back in 76b63489495
+ `http_proxy` will not be available in `conndata` if `CURL_DISABLE_PROXY`
+ is enabled. Repair the build with that configuration.
- Reported-by: Gisle Vanem
- Bug: https://github.com/curl/curl/commit/f3e0f071b14fcb46a453f69bdf4e062bcaacf362#com
- mitcomment-34601751
+ Follow-up to f3d501dc67
- Closes #4203
-
-- RELEASE-NOTES: synced
+ Closes #5498
-- alt-svc: add protocol version selection masking
+- transfer: remove k->str NULL check
- So that users can mask in/out specific HTTP versions when Alt-Svc is
- used.
+ "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.
- - Removed "h2c" and updated test case accordingly
- - Changed how the altsvc struct is laid out
- - Added ifdefs to make the unittest run even in a quiche-tree
+ Detected by Coverity CID 1463884
- Closes #4201
+ Closes #5495
-- http3: fix the HTTP/3 in the request, make alt-svc set right versions
+Marc Hoersken (1 Jun 2020)
+- select: always use Sleep in Curl_wait_ms on Win32
- Closes #4200
+ 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
-- alt-svc: send Alt-Used: in redirected requests
+Daniel Stenberg (31 May 2020)
+- conncache: download buffer needs +1 size for trailing zero
- RFC 7838 section 5:
+ 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
- When using an alternative service, clients SHOULD include an Alt-Used
- header field in all requests.
+ This also includes the following changes:
- Removed CURLALTSVC_ALTUSED again (feature is still EXPERIMENTAL thus
- this is deemed ok).
+ - 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
- You can disable sending this header just like you disable any other HTTP
- header in libcurl.
+ Note: on Azure Pipelines the matrix strategy is basically
+ just a simple list of job copies and not really a matrix.
- Closes #4199
+ Closes #5468
-- CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly
+Daniel Stenberg (30 May 2020)
+- build: disable more code/data when built without proxy support
- Even though it cannot fall-back to a lower HTTP version automatically. The
- safer way to upgrade remains via CURLOPT_ALTSVC.
+ Added build to travis to verify
- CURLOPT_H3 no longer has any bits that do anything and might be removed
- before we remove the experimental label.
+ Closes #5466
+
+- url: alloc the download buffer at transfer start
- Updated the curl tool accordingly to use "--http3".
+ ... 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.
- Closes #4197
+ 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
-- docs/ALTSVC: remove what works and the experimental explanation
+- timeouts: change millisecond timeouts to timediff_t from time_t
- Also, put the TODO items at the bottom.
+ For millisecond timers we like timediff_t better. Also, time_t can be
+ unsigned so returning a negative value doesn't work then.
- Closes #4198
-
-- docs/EXPERIMENTAL: explain what it means and what's experimental now
+ Closes #5479
-- curl: make use of CURLINFO_RETRY_AFTER when retrying
+Marc Hoersken (30 May 2020)
+- select: add overflow checks for timeval conversions
- If a Retry-After: header was used in the response, that value overrides
- other retry timing options.
+ Using time_t and suseconds_t if suseconds_t is available,
+ long on Windows (maybe others in the future) and int elsewhere.
- Fixes #3794
- Closes #4195
-
-- curl: use CURLINFO_PROTOCOL to check for HTTP(s)
+ Also handle case of ULONG_MAX being greater or equal to INFINITE.
- ... instead of CURLINFO_EFFECTIVE_URL to avoid string operations.
+ Assisted-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+
+ Part of #5343
-- CURLINFO_RETRY_AFTER: parse the Retry-After header value
+- select: use timediff_t instead of time_t and int for timeout_ms
- This is only the libcurl part that provides the information. There's no
- user of the parsed value. This change includes three new tests for the
- parser.
+ 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.
- Ref: #3794
-
-- docs/ALTSVC.md: first basic file format description
-
-- curl: have -w's 'http_version' show '3' for HTTP/3
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
- Closes #4196
+ Replaces #5107 and partially #5262
+ Related to #5240 and #5286
+ Closes #5343
-- curl.h: add CURL_HTTP_VERSION_3 to the version enum
+- unit1604.c: fix implicit conv from 'SANITIZEcode' to 'CURLcode'
- It can't be set for CURLOPT_HTTP_VERSION, but it can be extracted with
- CURLINFO_HTTP_VERSION.
-
-- quiche: make use of the connection timeout API properly
-
-- quiche: make POSTFIELDS posts work
-
-- quiche: improved error handling and memory cleanups
-
-- quiche: flush egress in h3_stream_recv() too
-
-- RELEASE-NOTES: synced
-
-Jay Satiro (6 Aug 2019)
-- [Patrick Monnerat brought this change]
-
- os400: take care of CURLOPT_SASL_AUTHZID in curl_easy_setopt_ccsid().
+ GCC 10 warns about this with warning: implicit conversion
+ from 'SANITIZEcode' to 'CURLcode' [-Wenum-conversion]
- Ref: https://github.com/curl/curl/issues/3653
- Ref: https://github.com/curl/curl/pull/3790
+ Since 'expected_result' is not really of type 'CURLcode' and
+ it is not exposed in any way, we can just use 'SANITIZEcode'.
- NOTE: This commit was cherry-picked and is part of a series of commits
- that added the authzid feature for upcoming 7.66.0. The series was
- temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
- patch release.
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Marcel Raad
- Closes https://github.com/curl/curl/pull/4186
+ Closes #5476
-- tests: Fix the line endings for the SASL alt-auth tests
+- tests/libtest: fix undefined reference to 'curlx_win32_fopen'
- - Change data and protocol sections to CRLF line endings.
+ 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
- Prior to this change the tests would fail or hang, which is because
- certain sections such as protocol require CRLF line endings.
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Daniel Stenberg
- Follow-up to grandparent commit which added the tests.
+ Follow up to #3784 (ffdddb45d9)
+ Closes #5475
+
+- appveyor: add non-debug plain autotools-based build
- Ref: https://github.com/curl/curl/issues/3653
- Ref: https://github.com/curl/curl/pull/3790
+ This should enable us to catch linking issues with the
+ testsuite early, like the one described/fixed in #5475.
- NOTE: This commit was cherry-picked and is part of a series of commits
- that added the authzid feature for upcoming 7.66.0. The series was
- temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
- patch release.
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Marcel Raad
- Closes https://github.com/curl/curl/pull/4186
+ Closes #5477
-- [Steve Holme brought this change]
+Daniel Stenberg (29 May 2020)
+- RELEASE-NOTES: synced
- examples: Added SASL PLAIN authorisation identity (authzid) examples
+- Revert "buildconf: use find -execdir"
- Ref: https://github.com/curl/curl/issues/3653
- Ref: https://github.com/curl/curl/pull/3790
+ This partially reverts commit c712009838f44211958854de431315586995bc61.
- NOTE: This commit was cherry-picked and is part of a series of commits
- that added the authzid feature for upcoming 7.66.0. The series was
- temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
- patch release.
+ 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.
- Closes https://github.com/curl/curl/pull/4186
+ Reported-by: Max Peal
+ Fixes #5483
+ Closes #5484
-- [Steve Holme brought this change]
+- server/sws: fix asan warning on use of uninitialized variable
- curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool
+- libssh2: improved error output for wrong quote syntax
- Ref: https://github.com/curl/curl/issues/3653
- Ref: https://github.com/curl/curl/pull/3790
+ Reported-by: Werner Stolz
- NOTE: This commit was cherry-picked and is part of a series of commits
- that added the authzid feature for upcoming 7.66.0. The series was
- temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
- patch release.
-
- Closes https://github.com/curl/curl/pull/4186
+ Closes #5474
-- [Steve Holme brought this change]
+- mk-lib1521: generate code for testing BLOB options as well
+
+ Follow-up to cac5374298b3
+
+ Closes #5478
- sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID
+- configure: repair the check if argv can be written to
- Added the ability for the calling program to specify the authorisation
- identity (authzid), the identity to act as, in addition to the
- authentication identity (authcid) and password when using SASL PLAIN
- authentication.
+ 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.
- Fixes #3653
- Closes #3790
+ Regression from commit 2d4c2152c (7.60.0)
- NOTE: This commit was cherry-picked and is part of a series of commits
- that added the authzid feature for upcoming 7.66.0. The series was
- temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
- patch release.
+ Reported-by: huzunhao on github
+ Fixes #5470
+ Closes #5471
+
+Peter Wu (28 May 2020)
+- CMake: rebuild Makefile.inc.cmake when Makefile.inc changes
- Closes https://github.com/curl/curl/pull/4186
+ 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 (6 Aug 2019)
-- docs/HTTP3: refreshed as it is now in master and HTTP/3 can be tested
+Daniel Stenberg (28 May 2020)
+- urldata: fix comments: Curl_done() is called multi_done() now
+
+ ... since 575e885db
-- [Yiming Jing brought this change]
+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.
- mesalink: implement client authentication
+- 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`.
- Closes #4184
+ Full support for this feature requires certain wolfSSL build options,
+ see "Availability note" in lib/vtls/wolfssl.c for details.
+
+ Closes #5327
-- curl_multi_poll: a sister to curl_multi_wait() that waits more
+- vtls: Extract and simplify key log file handling from OpenSSL
- Repeatedly we see problems where using curl_multi_wait() is difficult or
- just awkward because if it has no file descriptor to wait for
- internally, it returns immediately and leaves it to the caller to wait
- for a small amount of time in order to avoid occasional busy-looping.
+ Create a set of routines for TLS key log file handling to enable reuse
+ with other TLS backends. Simplify the OpenSSL backend as follows:
- This is often missed or misunderstood, leading to underperforming
- applications.
+ - 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.
- This change introduces curl_multi_poll() as a replacement drop-in
- function that accepts the exact same set of arguments. This function
- works identically to curl_multi_wait() - EXCEPT - for the case when
- there's nothing to wait for internally, as then this function will by
- itself wait for a "suitable" short time before it returns. This
- effectiely avoids all risks of busy-looping and should also make it less
- likely that apps "over-wait".
+ 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:
- This also changes the curl tool to use this funtion internally when
- doing parallel transfers and changes curl_easy_perform() to use it
- internally.
+ # 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
- Closes #4163
-
-- quiche:h3_stream_recv return 0 at end of stream
+ 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'
- ... and remove some verbose messages we don't need. Made transfers from
- facebook.com work better.
+ A single connection can easily be identified via the `tcp.stream` field.
-- altsvc: make quiche use h3-22 now
+Daniel Stenberg (27 May 2020)
+- FILEFORMAT: add more features that tests can depend on
-- quiche: show the actual version number
+- [Michael Kaufmann brought this change]
-- quiche: first working HTTP/3 request
+ transfer: close connection after excess data has been read
- - enable debug log
- - fix use of quiche API
- - use download buffer
- - separate header/body
+ 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 #4193
+ Closes #5440
+
+- [Estanislau Augé-Pujadas brought this change]
-- http09: disable HTTP/0.9 by default in both tool and library
+ Revert "ssh: ignore timeouts during disconnect"
- As the plan has been laid out in DEPRECATED. Update docs accordingly and
- verify in test 1174. Now requires the option to be set to allow HTTP/0.9
- responses.
+ This reverts commit f31760e63b4e9ef1eb25f8f211390f8239388515. Shipped in
+ curl 7.54.1.
- Closes #4191
-
-- quiche: initial h3 request send/receive
+ Bug: https://curl.haxx.se/mail/lib-2020-05/0068.html
+ Closes #5465
-- lib/Makefile.am: make checksrc run in vquic too
-
-- altsvc: fix removal of expired cache entry
+- urldata: connect related booleans live in struct ConnectBits
- Closes #4192
-
-- RELEASE-NOTES: synced
+ And remove a few unused booleans!
+
+ Closes #5461
-Steve Holme (4 Aug 2019)
-- md4: Use our own MD4 implementation when no crypto libraries are available
+- 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.
- Closes #3780
+ Reported-by: Viktor Szakats
+ Fixes #5454
+ Closes #5459
-- md4: No need to include Curl_md4.h for each TLS library
+- ngtcp2: cleanup memory when failing to connect
+
+ Reported-by: Peter Wu
+ Fixes #5447 (the ngtcp2 side of it)
+ Closes #5451
-- md4: No need for the NTLM code to call Curl_md4it() for each TLS library
+- quiche: clean up memory properly when failing to connect
- As the NTLM code no longer calls any of TLS libraries' specific MD4
- functions, there is no need to call this function for each #ifdef.
+ Addresses the quiche side of #5447
+ Reported-by: Peter Wu
+ Closes #5450
-- md4: Move the mbed TLS MD4 implementation out of the NTLM code
+- cleanup: use a single space after equals sign in assignments
-- md4: Move the WinCrypt implementation out of the NTLM code
+- 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
-- md4: Move the SecureTransport implementation out of the NTLM code
+- [Maksim Stsepanenka brought this change]
-- md4: Use the Curl_md4it() function for OpenSSL based NTLM
+ test1167: fixes in badsymbols.pl
+
+ Closes #5442
-- md4: Move the GNU TLS gcrypt MD4 implementation out of the NTLM code
+- 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
-- md4: Move the GNU TLS Nettle MD4 implementation out of the NTLM code
+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
-Jay Satiro (4 Aug 2019)
-- OS400: Add CURLOPT_H3 symbols
+Peter Wu (25 May 2020)
+- ngtcp2: fix build with current ngtcp2 master implementing draft 28
- Follow-up to 3af0e76 which added experimental H3 support.
+ Based on client.cc changes from ngtcp2. Tested with current git master,
+ ngtcp2 commit c77d5731ce92, nghttp3 commit 65ff479d4380.
- Closes https://github.com/curl/curl/pull/4185
+ Fixes #5444
+ Closes #5443
-Daniel Stenberg (3 Aug 2019)
-- url: make use of new HTTP version if alt-svc has one
+Daniel Stenberg (25 May 2020)
+- RELEASE-NOTES: synced
+
+ moved the new setopts up to a "change"
-- url: set conn->transport to default TCP at init time
+- RELEASE-NOTES: synced
-- altsvc: with quiche, use the quiche h3 alpn string
+- copyright: updated year ranges out of sync
- Closes #4183
+ ... and whitelisted a few more files in the the copyright.pl script.
-- alt-svc: more liberal ALPN name parsing
-
- Allow pretty much anything to be part of the ALPN identifier. In
- particular minus, which is used for "h3-20" (in-progress HTTP/3
- versions) etc.
+- [Gilles Vollant brought this change]
+
+ setopt: add CURLOPT_PROXY_ISSUERCERT(_BLOB) for coherency
- Updated test 356.
- Closes #4182
+ Closes #5431
-- quiche: use the proper HTTP/3 ALPN
+- 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
-- quiche: add failf() calls for two error cases
+Peter Wu (22 May 2020)
+- travis: simplify quiche build instructions wrt boringssl
- To aid debugging
+ quiche builds boringssl as static library, reuse that instead of
+ building another shared library.
- Closes #4181
+ Closes #5438
-- mailmap: added Kyohei Kadota
+- 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.
-Kamil Dudka (1 Aug 2019)
-- http_negotiate: improve handling of gss_init_sec_context() failures
+Daniel Stenberg (22 May 2020)
+- Revert "sendf: make failf() use the mvsnprintf() return code"
- If HTTPAUTH_GSSNEGOTIATE was used for a POST request and
- gss_init_sec_context() failed, the POST request was sent
- with empty body. This commit also restores the original
- behavior of `curl --fail --negotiate`, which was changed
- by commit 6c6035532383e300c712e4c1cd9fdd749ed5cf59.
+ This reverts commit 74623551f306990e70c7c5515b88972005604a74.
- Add regression tests 2077 and 2078 to cover this.
+ 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...
- Fixes #3992
- Closes #4171
+ Closes #5441
-Daniel Stenberg (1 Aug 2019)
-- mailmap: added 4 more names
+- typecheck-gcc.h: CURLINFO_PRIVATE does not need a 'char *'
- Evgeny Grin, Peter Pih, Anton Malov and Marquis de Muesli
+ Reported-by: Billyzou0741326 on github
+ Fixes #5432
+ Closes #5436
-- mailmap: add Giorgos Oikonomou
+- tests/server/util.h: add extern to silence compiler warning
+
+ Follow-up from a3b0699d5c1
-- src/makefile: fix uncompressed hugehelp.c generation
+- typecheck-gcc.h: fix the OFF_T check
- Regression from 5cf5d57ab9 (7.64.1)
+ The option number also needs to be less than CURLOPTTYPE_BLOB.
- Fixed-by: Lance Ware
- Fixes #4176
- Closes #4177
+ Follow-up to cac5374298
+ Reported-by: Jeroen Ooms
+ Bug: https://github.com/curl/curl/pull/5365#issuecomment-631084114
-- appveyor: pass on -k to make
+- TODO: --dry-run
+
+ Closes #5426
-- timediff: make it 64 bit (if possible) even with 32 bit time_t
+- TODO: Ratelimit or wait between serial requests
- ... to make it hold microseconds too.
+ Closes #5406
+
+- tool_paramhlp: fixup C89 mistake
- Fixes #4165
- Closes #4168
+ Follow-up to c5f0a9db22.
-- ROADMAP: parallel transfers are merged now
+- [Siva Sivaraman brought this change]
-- getenv: support up to 4K environment variable contents on windows
+ tool_paramhlp: fixed potentially uninitialized strtol() variable
- Reported-by: Michal Čaplygin
- Fixes #4174
- Closes #4175
+ Seems highly unlikely to actually be possible, but better safe than
+ sorry.
+
+ Closes #5417
-- [Kyohei Kadota brought this change]
+- [Siva Sivaraman brought this change]
- plan9: add support for running on Plan 9
+ tool_operate: fixed potentially uninitialized variables
- Closes #3701
-
-- [Kyohei Kadota brought this change]
+ ... in curl_easy_getinfo() calls. They're harmless but clearing the
+ variables makes the code safer and comforts the reader.
+
+ Closes #5416
- ntlm: explicit type casting
+- sha256: move assign to the declaration line
+
+ Follow-up to fae30656. Should've been squashed with that commit...
-- [Justin brought this change]
+- [Siva Sivaraman brought this change]
- curl.h: fix outdated comment
+ sha256: fixed potentially uninitialized variable
- Closes #4167
+ Closes #5414
-- curl: remove outdated comment
+- sendf: make failf() use the mvsnprintf() return code
- Turned bad with commit b8894085000
+ ... and avoid a strlen() call. Fixes a MonocleAI warning.
- Reported-by: niallor on github
- Fixes #4172
- Closes #4173
+ Reported-by: MonocleAI
+ Fixes #5413
+ Closes #5420
-- cleanup: remove the 'numsocks' argument used in many places
+- hostip: make Curl_printable_address not return anything
- It was used (intended) to pass in the size of the 'socks' array that is
- also passed to these functions, but was rarely actually checked/used and
- the array is defined to a fixed size of MAX_SOCKSPEREASYHANDLE entries
- that should be used instead.
+ It was not used much anyway and instead we let it store a blank buffer
+ in case of failure.
- Closes #4169
+ Reported-by: MonocleAI
+ Fixes #5411
+ Closes #5418
-- readwrite_data: repair setting the TIMER_STARTTRANSFER stamp
-
- Regression, broken in commit 65eb65fde64bd5f (curl 7.64.1)
-
- Reported-by: Jonathan Cardoso Machado
- Assisted-by: Jay Satiro
+- ftp: mark return-ignoring calls to Curl_GetFTPResponse with (void)
- Fixes #4136
- Closes #4162
+ They're done on purpose, make that visible in the code.
+ Reported-by: MonocleAI
+ Fixes #5412
+ Closes #549
-- mailmap: Amit Katyal
-
-- asyn-thread: removed unused variable
+- TODO: forbid TLS post-handshake auth and do TLS record padding
- Follow-up to eb9a604f. Mistake caused by me when I edited the commit
- before push...
+ Closes #5396
+ Closes #5398
- RELEASE-NOTES: synced
-- [Amit Katyal brought this change]
-
- asyn-thread: create a socketpair to wait on
+- 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.
- Closes #4157
+ Reported-by: Brian Carpenter
+ Follow-up to ed35d6590e72c
+ Closes #5405
-- curl: cap the maximum allowed values for retry time arguments
+Peter Wu (16 May 2020)
+- travis: upgrade to bionic, clang-9, improve readability
- ... to avoid integer overflows later when multiplying with 1000 to
- convert seconds to milliseconds.
+ 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.
- Added test 1269 to verify.
+ 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.
- Reported-by: Jason Lee
- Closes #4166
+ Closes #5370
-- progress: reset download/uploaded counter
+- travis: whitespace-only changes for consistency
- ... to make CURLOPT_MAX_RECV_SPEED_LARGE and
- CURLOPT_MAX_SEND_SPEED_LARGE work correctly on subsequent transfers that
- reuse the same handle.
+ Automatically apply a consistent indentation with:
- Fixed-by: Ironbars13 on github
- Fixes #4084
- Closes #4161
-
-- http2_recv: trigger another read when the last data is returned
+ 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"))'
- ... so that end-of-stream is detected properly.
+ followed by manually re-indenting three comments.
- Reported-by: Tom van der Woerdt
- Fixes #4043
- Closes #4160
+ Closes #5370
-- curl: avoid uncessary libcurl timeouts (in parallel mode)
-
- When curl_multi_wait() returns OK without file descriptors to wait for,
- it might already have done a long timeout.
+- CMake: add libssh build support
- Closes #4159
-
-- [Balazs Kovacsics brought this change]
+ Closes #5372
- HTTP: use chunked Transfer-Encoding for HTTP_POST if size unknown
+Daniel Stenberg (15 May 2020)
+- KNOWN_BUGS: wolfssh: publickey auth doesn't work
- If using the read callback for HTTP_POST, and POSTFIELDSIZE is not set,
- automatically add a Transfer-Encoding: chunked header, same as it is
- already done for HTTP_PUT, HTTP_POST_FORM and HTTP_POST_MIME. Update
- test 1514 according to the new behaviour.
+ Closes #4820
+
+- KNOWN_BUGS: OS400 port requires deprecated IBM library
- Closes #4138
+ Closes #5176
-Jay Satiro (29 Jul 2019)
-- [Daniel Stenberg brought this change]
+- [Vyron Tsingaras brought this change]
- winbuild: add vquic to list of build directories
+ http2: keep trying to send pending frames after req.upload_done
- This fixes the winbuild build method which broke several days ago
- when experimental quic support was added in 3af0e76.
-
- Reported-by: Michael Lee
-
- Fixes https://github.com/curl/curl/issues/4158
+ Fixes #1410
+ Closes #5401
-- easy: resize receive buffer on easy handle reset
+- [Gilles Vollant brought this change]
+
+ setopt: support certificate options in memory with struct curl_blob
- - In curl_easy_reset attempt to resize the receive buffer to its default
- size. If realloc fails then continue using the previous size.
+ This change introduces a generic way to provide binary data in setopt
+ options, called BLOBs.
- Prior to this change curl_easy_reset did not properly handle resetting
- the receive buffer (data->state.buffer). It reset the variable holding
- its size (data->set.buffer_size) to the default size (READBUFFER_SIZE)
- but then did not actually resize the buffer. If a user resized the
- buffer by using CURLOPT_BUFFERSIZE to set the size smaller than the
- default, later called curl_easy_reset and attempted to reuse the handle
- then a heap overflow would very likely occur during that handle's next
- transfer.
+ This change introduces these new setopts:
- Reported-by: Felix Hädicke
+ CURLOPT_ISSUERCERT_BLOB, CURLOPT_PROXY_SSLCERT_BLOB,
+ CURLOPT_PROXY_SSLKEY_BLOB, CURLOPT_SSLCERT_BLOB and CURLOPT_SSLKEY_BLOB.
- Fixes https://github.com/curl/curl/issues/4143
- Closes https://github.com/curl/curl/pull/4145
-
-- [Brad Spencer brought this change]
+ Reviewed-by: Daniel Stenberg
+ Closes #5357
- examples: Avoid reserved names in hiperfifo examples
-
- - Trade in __attribute__((unused)) for the classic (void)x to silence
- unused symbols.
+- source cleanup: remove all custom typedef structs
- Because the classic way is not gcc specific. Also because the prior
- method mapped to symbol _Unused, which starts with _ and a capital
- letter which is reserved.
+ - Stick to a single unified way to use structs
+ - Make checksrc complain on 'typedef struct {'
+ - Allow them in tests, public headers and examples
- Assisted-by: The Infinnovation team
+ - Let MD4_CTX, MD5_CTX, and SHA256_CTX typedefs remain as they actually
+ typedef different types/structs depending on build conditions.
- Bug: https://github.com/curl/curl/issues/4120#issuecomment-512542108
+ Closes #5338
+
+- travis: remove the .checksrc fiddling
+
+- ftp: make domore_getsock() return the secondary socket properly
- Closes https://github.com/curl/curl/pull/4153
+ 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.
-Daniel Stenberg (25 Jul 2019)
-- RELEASE-NOTES: synced
+- test1632: verify FTP through HTTPS-proxy with connection re-use
-- [Felix Hädicke brought this change]
+- test1631: verify FTP download through HTTPS-proxy
- ssh-libssh: do not specify O_APPEND when not in append mode
+- sws: as last resort, get test number from server cmd file
- Specifying O_APPEND in conjunction with O_TRUNC and O_CREAT does not
- make much sense. And this combination of flags is not accepted by all
- SFTP servers (at least not Apache SSHD).
+ If it can't be found in the request. Also support --cmdfile to set it to
+ a custom file name.
- Fixes #4147
- Closes #4148
+ runtests.pl always writes this file with the test number in it since a
+ while back.
-- [Gergely Nagy brought this change]
+- ftp: shut down the secondary connection properly when SSL is used
+
+ Reported-by: Neal Poole
+ Fixes #5340
+ Closes #5385
- multi: call detach_connection before Curl_disconnect
+Marcel Raad (14 May 2020)
+- KNOWN_BUGS: adapt 5.5 to recent changes
- Curl_disconnect bails out if conn->easyq is not empty, detach_connection
- needs to be called first to remove the current easy from the queue.
+ It only applies to non-Unicode builds now.
+ Also merge 5.10 into it as it's effectively a duplicate.
- Fixes #4144
- Closes #4151
+ Closes https://github.com/curl/curl/pull/3784
-Jay Satiro (23 Jul 2019)
-- tool_operate: fix implicit call to easysrc_cleanup
-
- easysrc_cleanup is only defined when CURL_DISABLE_LIBCURL_OPTION is not
- defined, and prior to this change would be called regardless.
+- curl_setup: support Unicode functions to open files on Windows
- Bug: https://github.com/curl/curl/pull/3804#issuecomment-513922637
- Reported-by: Marcel Raad
+ 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/4142
+ Closes https://github.com/curl/curl/pull/3784
-Daniel Stenberg (22 Jul 2019)
-- curl:create_transfers check return code from curl_easy_setopt
+- tool: support UTF-16 command line on Windows
- From commit b8894085
+ - 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
- Pointed out by Coverity CID 1451703
+ 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.
- Closes #4134
+ [0] https://devblogs.microsoft.com/oldnewthing/?p=40643
+
+ Ref: https://github.com/curl/curl/issues/3747
+ Closes https://github.com/curl/curl/pull/3784
-- HTTP3: initial (experimental) support
+- curl_multibyte: add to curlx
- USe configure --with-ngtcp2 or --with-quiche
+ This will also be needed in the tool and tests.
- Using either option will enable a HTTP3 build.
- Co-authored-by: Alessandro Ghedini <alessandro@ghedini.me>
+ 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
- Closes #3500
+ 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
-- curl: remove dead code
+- tests: add https-proxy support to the test suite
- The loop never loops (since b889408500), pointed out by Coverity (CID
- 1451702)
+ 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 #4133
+ Closes #5399
-- docs/PARALLEL-TRANSFERS: correct the version number
+- mailmap: James Fuller
-- docs/PARALLEL-TRANSFERS: added
+- [Major_Tom brought this change]
-- curl: support parallel transfers
+ vauth/cleartext: fix theoretical integer overflow
+
+ Fix theoretical integer overflow in Curl_auth_create_plain_message.
- This is done by making sure each individual transfer is first added to a
- linked list as then they can be performed serially, or at will, in
- parallel.
+ 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 #3804
+ Closes #5391
-- docs/MANUAL.md: converted to markdown from plain text
+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.
- ... will make it render as a nicer web page.
+ Bug: https://github.com/curl/curl/issues/5388
+ Reported-by: John Simpson
- Closes #4131
+ Closes https://github.com/curl/curl/pull/5394
-- curl_version_info: provide nghttp2 details
+Daniel Stenberg (14 May 2020)
+- checksrc: enhance the ASTERISKSPACE and update code accordingly
- Introducing CURLVERSION_SIXTH with nghttp2 info.
+ Fine: "struct hello *world"
- Closes #4121
+ Not fine: "struct hello* world" (and variations)
+
+ Closes #5386
-- bump: start working on 7.66.0
+- 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
-- source: remove names from source comments
+- docs: unify protocol lists
- Several reasons:
+ We boast support for 25 transfer protocols. Make sure the lists are
+ consistent
- - we can't add everyone who's helping out so its unfair to just a few
- selected ones.
- - we already list all helpers in THANKS and in RELEASE-NOTES for each
- release
- - we don't want to give the impression that some parts of the code is
- "owned" or "controlled" by specific persons
+ Closes #5384
+
+- OpenSSL: have CURLOPT_CRLFILE imply CURLSSLOPT_NO_PARTIALCHAIN
- Assisted-by: Daniel Gustafsson
- Closes #4129
+ ... to avoid an OpenSSL bug that otherwise makes the CRL check to fail.
+
+ Reported-by: Michael Kaufmann
+ Fixes #5374
+ Closes #5376
-Version 7.65.3 (19 Jul 2019)
+- tls13-ciphers.d: shorten the Arg
-Daniel Stenberg (19 Jul 2019)
-- RELEASE-NOTES: 7.65.3
+- sasl-authzid.d: add Arg: and shorten the desc
-- THANKS: 7.65.3 status
+- cert-type.d: mention the available types in the desc
-- progress: make the progress meter appear again
+- tool: shorten 3 --help descriptions
+
+ --happy-eyeballs-timeout-ms, --resolve and --ssl-revoke-best-effort
- Fix regression caused by 21080e1
+ gen.pl already warned about these lines but we didn't listen
- Reported-by: Chih-Hsuan Yen
- Fixes #4122
- Closes #4124
+ Closes #5379
-- version: bump to 7.65.3
+- configure: the wolfssh backend does not provide SCP
+
+ Closes #5387
-- RELEASE-NOTES: Contributors or now 1990
+- RELEASE-NOTES: synced
-Version 7.65.2 (17 Jul 2019)
+- url: reject too long input when parsing credentials
+
+ Since input passed to libcurl with CURLOPT_USERPWD and
+ CURLOPT_PROXYUSERPWD circumvents the regular string length check we have
+ in Curl_setstropt(), the input length limit is enforced in
+ Curl_parse_login_details too, separately.
+
+ Reported-by: Thomas Bouzerar
+ Closes #5383
-Daniel Stenberg (17 Jul 2019)
-- RELEASE-NOTES: 7.65.2
+- list-only.d: this option existed already in 4.0
-- THANKS: add contributors from 7.65.2
+Jay Satiro (12 May 2020)
+- retry-all-errors.d: Shorten the summary line
+
+ Follow-up to b995bb5 from a few moments ago.
+
+ Reported-by: Daniel Stenberg
+
+ Ref: https://github.com/curl/curl/commit/b995bb5#r39108929
-Jay Satiro (17 Jul 2019)
-- [aasivov brought this change]
+- [denzor brought this change]
- cmake: Fix finding Brotli on case-sensitive file systems
+ easy: fix dangling pointer on easy_perform fail
- - Find package "Brotli" instead of "BROTLI" since the former is the
- casing used for CMake/FindBrotli.cmake, and otherwise find_package
- may fail on a case-sensitive file system.
+ Closes https://github.com/curl/curl/pull/5363
+
+- tool: Add option --retry-all-errors to retry on any error
- Fixes https://github.com/curl/curl/issues/4117
+ The "sledgehammer" of retrying.
+
+ Closes https://github.com/curl/curl/pull/5185
+
+Daniel Stenberg (12 May 2020)
+- [James Le Cuirot brought this change]
-- CURLOPT_RANGE.3: Caution against using it for HTTP PUT
+ libcurl.pc: Merge Libs.private into Libs for static-only builds
- AFAICT CURLOPT_RANGE does not support ranged HTTP PUT uploads so I've
- cautioned against using it for that purpose and included a workaround.
+ A project being built entirely statically will call pkg-config with
+ --static, which utilises the Libs.private field. Conversely it will
+ not use --static when not being built entirely statically, even if
+ there is only a static build of libcurl available. This will most
+ likely cause the build to fail due to underlinking unless we merge the
+ Libs fields.
- Bug: https://curl.haxx.se/mail/lib-2019-04/0075.html
- Reported-by: Christopher Head
+ Consider that this is what the Meson build system does when it
+ generates pkg-config files.
- Closes https://github.com/curl/curl/issues/3814
+ I have also reflected this in the --libs argument of curl-config even
+ though REQUIRE_LIB_DEPS always seems to be "yes" anyway.
+
+ Closes #5373
-- [Stefano Simonelli brought this change]
+- [Peter Wu brought this change]
- CURLOPT_SEEKDATA.3: fix variable name
-
- Closes https://github.com/curl/curl/pull/4118
+ CMake: fix runtests.pl with CMake, add new test targets
+
+ * runtests.pl:
+ - Fix out-of-tree build under CMake when srcdir is not set. Default
+ srcdir to the location of runtests.pl.
+ - Add a hack to allow CMake to use the TFLAGS option as documented
+ in tests/README and used in scripts/travis/script.sh.
+ * Bump CMake version to 3.2 for USES_TERMINAL, dropping Debian Jessie
+ support (no one should care, it is already EOL.).
+ * Remove CTest since it defines its own 'test' target with no tests
+ since all unittests are already broken and not built by default.
+ * Add new test targets based on the options from Makefile.am. Since
+ new test targets are rarely added, I opted for duplicating the
+ runtests.pl options as opposed to creating a new Makefile.inc file.
+ Use top-level target names (test-x) instead of x-test since that is
+ used by CI and others.
+
+ Closes #5358
-- [Giorgos Oikonomou brought this change]
+- [Peter Wu brought this change]
- CIPHERS.md: Explain Schannel error SEC_E_ALGORITHM_MISMATCH
+ CMake: do not build test programs by default
- If the SSL backend is Schannel and the user specifies an Schannel CALG_
- that is not supported by the protocol or the server then curl returns
- CURLE_SSL_CONNECT_ERROR (35) SEC_E_ALGORITHM_MISMATCH.
+ The default target should only build libcurl and curl. Add a dedicated
+ 'testdeps' target which will be used later when running tests. Note that
+ unittests are currently broken in CMake and already excluded.
- Fixes https://github.com/curl/curl/issues/3389
- Closes https://github.com/curl/curl/pull/4106
+ Closes #5368
-- [Daniel Gustafsson brought this change]
+- FILEFORMAT: moved up the variables section and further polished
- nss: inspect returnvalue of token check
+- runtests: remove ftp2 support, not used
- PK11_IsPresent() checks for the token for the given slot is available,
- and sets needlogin flags for the PK11_Authenticate() call. Should it
- return false, we should however treat it as an error and bail out.
+ We once supported two separate ftp instances in the test suite. Has not
+ been used the last decade.
- Closes https://github.com/curl/curl/pull/4110
+ Closes #5375
-- docs: Explain behavior change in --tlsv1. options since 7.54
+- url: sort the protocol schemes in rough popularity order
+
+ When looking for a protocol match among supported schemes, check the
+ most "popular" schemes first. It has zero functionality difference and
+ for all practical purposes a speed difference will not be measureable
+ but it still think it makes sense to put the least likely matches last.
- Since 7.54 --tlsv1. options use the specified version or later, however
- older versions of curl documented it as using just the specified version
- which may or may not have happened depending on the TLS library.
- Document this discrepancy to allay confusion for users familiar with the
- old documentation that expect just the specified version.
+ "Popularity" based on the 2019 user survey.
- Fixes https://github.com/curl/curl/issues/4097
- Closes https://github.com/curl/curl/pull/4119
+ Closes #5377
-- libcurl: Restrict redirect schemes (follow-up)
+Marc Hoersken (11 May 2020)
+- test1238: avoid tftpd being busy for tests shortly following
- - Allow FTPS on redirect.
+ The tftpd server may still be busy if the total timeout of
+ 25 seconds has not been reached or no sread error was received
+ during or after the execution of the timeout test 1238.
- - Update default allowed redirect protocols in documentation.
+ Once the next TFTP test comes around (eg. 1242 or 1243),
+ those will fail because the tftpd server is still waiting
+ on data from curl due to the UDP protocol being stateless
+ and having no connection close. On Linux this error may not
+ happen, because ICMP errors generated due to a swrite error
+ can also be returned async on the next sread call instead.
- Follow-up to 6080ea0.
+ Therefore we will now just kill the tftpd server after test
+ 1238 to make sure that the following tests are not affected.
- Ref: https://github.com/curl/curl/pull/4094
+ This enables us to no longer ignore tests 1242, 1243, 2002
+ and 2003 on the CI platforms CirrusCI and AppVeyor.
- Closes https://github.com/curl/curl/pull/4115
+ Assisted-by: Peter Wu
+ Closes #5364
-Daniel Stenberg (16 Jul 2019)
-- test1173: make it also check all libcurl option man pages
-
- ... and adjust those that cause errors
+Daniel Stenberg (11 May 2020)
+- write-out.d: added "response_code"
+
+- KNOWN_BUGS: Build with staticly built dependency
- Closes #4116
+ I rewrote the item 5.4 to be more generic about static dependencies.
-- curl: only accept COLUMNS less than 10000
+- ROADMAP: remove old entries
- ... as larger values would rather indicate something silly (and could
- potentially cause buffer problems).
+ MQTT - the start has already landed
- Reported-by: pendrek at hackerone
- Closes #4114
-
-- dist: add manpage-syntax.pl
+ tiny-curl - also mostly landed and is a continuous work
- follow-up to 7fb66c403
+ make menuconfig - basically no interest from users, not pushing there
-- test1173: detect some basic man page format mistakes
-
- Triggered by PR #4111
+- [Peter Wu brought this change]
+
+ travis: Add ngtcp2 and quiche tests for CMake
- Closes #4113
+ To avoid an explosion of jobs, extend the existing CMake tests with
+ ngtcp2 and quiche support. macOS was previously moved to GitHub actions,
+ so the non-Linux case can be dropped.
-Jay Satiro (15 Jul 2019)
-- [Bjarni Ingi Gislason brought this change]
+- [Peter Wu brought this change]
- docs: Fix missing lines caused by undefined macros
+ CMake: add ENABLE_ALT_SVC option
- - Escape apostrophes at line start.
+ Tested alt-svc with quiche. While at it, add missing MultiSSL reporting
+ (not tested).
+
+- [Peter Wu brought this change]
+
+ CMake: add HTTP/3 support (ngtcp2+nghttp3, quiche)
- Some lines begin with a "'" (apostrophe, single quote), which is then
- interpreted as a control character in *roff.
+ Add three new CMake Find modules (using the curl license, but I grant
+ others the right to apply the CMake BSD license instead).
- Such lines are interpreted as being a call to a macro, and if
- undefined, the lines are removed from the output.
+ This CMake config is simpler than the autotools one because it assumes
+ ngtcp2 and nghttp3 to be used together. Another difference is that this
+ CMake config checks whether QUIC is actually supported by the TLS
+ library (patched OpenSSL or boringssl) since this can be a common
+ configuration mistake that could result in build errors later.
- Bug: https://bugs.debian.org/926352
- Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+ Unlike autotools, CMake does not warn you that the features are
+ experimental. The user is supposed to already know that and read the
+ documentation. It requires a very special build environment anyway.
- Submitted-by: Alessandro Ghedini
+ Tested with ngtcp2+OpenSSL+nghttp3 and quiche+boringssl, both built from
+ current git master. Use `LD_DEBUG=files src/curl |& grep need` to figure
+ out which features (libldap-2.4, libssh2) to disable due to conflicts
+ with boringssl.
- Closes https://github.com/curl/curl/pull/4111
+ Closes #5359
-Daniel Stenberg (14 Jul 2019)
-- libcurl-security.3: update to new CURLOPT_REDIR_PROTOCOLS defaults
+Marc Hoersken (10 May 2020)
+- tests/server/tftpd.c: fix include and enhance debug logging
+
+ setjmp.h should only be included if HAVE_SETJMP_H is defined.
- follow-up to 6080ea098
+ Add additional log statements to see wether reads and writes
+ are blocking or finishing before an alarm signal is received.
+
+ Assisted-by: Peter Wu
+ Part of #5364
-- [Linos Giannopoulos brought this change]
+Daniel Stenberg (10 May 2020)
+- tool_operate: only set CURLOPT_SSL_OPTIONS if SSL support is present
+
+ Reported-by: Marcel Raad
+ Follow-up to 148534db5
+ Fixes #5367
+ Closes #5369
- libcurl: Add testcase for gopher redirects
+Marc Hoersken (9 May 2020)
+- appveyor: update comments to be clear about toolchain
- The testcase ensures that redirects to CURLPROTO_GOPHER won't be
- allowed, by default, in the future. Also, curl is being used
- for convenience while keeping the testcases DRY.
+ - CMake-based MSYS builds use mingw-w64 to cross-compile.
+ - autotools-based builds are compiled using msys2-devel.
- The expected error code is CURLE_UNSUPPORTED_PROTOCOL when the client is
- redirected to CURLPROTO_GOPHER
+ The difference is that the later ones are not cross-compiled
+ to Windows and instead require the msys2 runtime to be present.
- Signed-off-by: Linos Giannopoulos <lgian@skroutz.gr>
+ At the moment only the Azure Pipelines CI builds actually
+ run autotools-based cross-compilation builds for Windows.
-- [Linos Giannopoulos brought this change]
-
- libcurl: Restrict redirect schemes
+- TODO: update regarding missing Schannel features
- All protocols except for CURLPROTO_FILE/CURLPROTO_SMB and their TLS
- counterpart were allowed for redirect. This vastly broadens the
- exploitation surface in case of a vulnerability such as SSRF [1], where
- libcurl-based clients are forced to make requests to arbitrary hosts.
+ Some aspects have already been implemented over the years.
- For instance, CURLPROTO_GOPHER can be used to smuggle any TCP-based
- protocol by URL-encoding a payload in the URI. Gopher will open a TCP
- connection and send the payload.
+ 15.1 Client certificates are now supported:
- Only HTTP/HTTPS and FTP are allowed. All other protocols have to be
- explicitly enabled for redirects through CURLOPT_REDIR_PROTOCOLS.
+ - System stores via e35b0256eb34f1fe562e3e2a2615beb50a391c52
+ - PKCS#12 files via 0fdf96512613574591f501d63fe49495ba40e1d5
- [1]: https://www.acunetix.com/blog/articles/server-side-request-forgery-vulnerability/
+ 15.2 Ciphers can now be specified through:
- Signed-off-by: Linos Giannopoulos <lgian@skroutz.gr>
+ - Algorithms via 9aefbff30d280c60fc9d8cc3e0b2f19fc70a2f28
- Closes #4094
+ Reviewed-by: Daniel Stenberg and Marcel Raad
+ Closes #5358
-- [Zenju brought this change]
+Daniel Stenberg (8 May 2020)
+- checksrc: close the .checksrc file handle when done reading
- openssl: define HAVE_SSL_GET_SHUTDOWN based on version number
+- RELEASE-NOTES: synced
- Closes #4100
+ And bumped next version to 7.71.0
-- [Peter Simonyi brought this change]
+- [Gilles Vollant brought this change]
- http: allow overriding timecond with custom header
-
- With CURLOPT_TIMECONDITION set, a header is automatically added (e.g.
- If-Modified-Since). Allow this to be replaced or suppressed with
- CURLOPT_HTTPHEADER.
+ CURLOPT_SSL_OPTIONS: add *_NATIVE_CA to use Windows CA store (with openssl)
- Fixes #4103
- Closes #4109
+ Closes #4346
-Jay Satiro (11 Jul 2019)
-- [Juergen Hoetzel brought this change]
+- TODO: native IDN support on macOS
- smb: Use the correct error code for access denied on file open
-
- - Return CURLE_REMOTE_ACCESS_DENIED for SMB access denied on file open.
+- urlapi: accept :: as a valid IPv6 address
- Prior to this change CURLE_REMOTE_FILE_NOT_FOUND was returned instead.
+ Text 1560 is extended to verify.
- Closes https://github.com/curl/curl/pull/4095
+ Reported-by: Pavel Volgarev
+ Fixes #5344
+ Closes #5351
-- [Daniel Gustafsson brought this change]
+- THANKS-filter: Peter Wang
- DEPRECATE: fixup versions and spelling
+- [Peter Wang brought this change]
+
+ *_sspi: fix bad uses of CURLE_NOT_BUILT_IN
- Correctly set the July 17 version to 7.65.2, and update spelling to
- be consistent. Also fix a typo.
+ Return CURLE_AUTH_ERROR instead of CURLE_NOT_BUILT_IN for other
+ instances of QuerySecurityPackageInfo failing, as in
+ commit 2a81439553286f12cd04a4bdcdf66d8e026d8201.
- Closes https://github.com/curl/curl/pull/4107
+ Closes #5355
-- [Gisle Vanem brought this change]
+- docs/HTTP3: add qlog to the quiche build instruction
- system_win32: fix clang warning
+- ngtcp2: introduce qlog support
- - Declare variable in header as extern.
+ If the QLOGDIR environment variable is set, enable qlogging.
- Bug: https://github.com/curl/curl/commit/48b9ea4#commitcomment-34084597
-
-Daniel Gustafsson (10 Jul 2019)
-- headers: Remove no longer exported functions
+ ... and create Curl_qlogdir() in the new generic vquic/vquic.c file for
+ QUIC functions that are backend independent.
- There were a leftover few prototypes of Curl_ functions that we used to
- export but no longer do, this removes those prototypes and cleans up any
- comments still referring to them.
-
- Curl_write32_le(), Curl_strcpy_url(), Curl_strlen_url(), Curl_up_free()
- Curl_concat_url(), Curl_detach_connnection(), Curl_http_setup_conn()
- were made static in 05b100aee247bb9bec8e9a1b0166496aa4248d1c.
- Curl_http_perhapsrewind() made static in 574aecee208f79d391f10d57520b3.
+ Closes #5353
+
+- ntlm_sspi: fix bad use of CURLE_NOT_BUILT_IN
- For the remainder, I didn't trawl the Git logs hard enough to capture
- their exact time of deletion, but they were all gone: Curl_splayprint(),
- Curl_http2_send_request(), Curl_global_host_cache_dtor(),
- Curl_scan_cache_used(), Curl_hostcache_destroy(), Curl_second_connect(),
- Curl_http_auth_stage() and Curl_close_connections().
+ That return code is reserved for build-time conditional code not being
+ present while this was a regular run-time error from a Windows API.
- Closes #4096
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reported-by: wangp on github
+ Fixes #5349
+ Closes #5350
-- CMake: fix typos and spelling
+- runtests: show elapsed test time with higher precision (ms)
-- [Kyle Edwards brought this change]
+- RELEASE-NOTES: synced
- CMake: Convert errant elseif() to else()
+- http2: simplify and clean up trailer handling
- CMake interprets an elseif() with no arguments as elseif(FALSE),
- resulting in the elseif() block not being executed. That is not what
- was intended here. Change the empty elseif() to an else() as it was
- intended.
+ Triggered by a crash detected by OSS-Fuzz after the dynbuf introduction in
+ ed35d6590e72. This should make the trailer handling more straight forward and
+ hopefully less error-prone.
- Closes #4101
- Reported-by: Artalus <artalus-mail@yandex.ru>
- Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
-
-- buildconf: fix header filename
-
- The header file inclusion had a typo, it should be .h and not .hd.
- Fix by renaming.
+ Deliver the trailer header to the callback already at receive-time. No
+ longer caches the trailers to get delivered at end of stream.
- Fixes #4102
- Reported-by: AceCrow on Github
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=22030
+ Closes #5348
-- [Jan Chren brought this change]
+Marc Hoersken (7 May 2020)
+- appveyor: disable test 1139 instead of ignoring it
+
+ Spending time on manpage checking makes no sense
+ for these builds due to lacking manpage support.
- configure: fix --disable-code-coverage
+- appveyor: disable flaky test 1501 and ignore broken 1056
- This fixes the case when --disable-code-coverage supplied to ./configure
- would result in coverage="yes" being set.
+ Test 1501 is flaky on Windows CI due to being time sensitive
+ and the testsuite relying on taskkill.exe to check for the
+ existance of processes which can take to much time itself.
- Closes #4099
- Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
-
-- cleanup: fix typo in comment
+ Test 1056 is broken in autotools-based Windows builds due
+ to scope ID support missing in these builds at the moment.
-- RELEASE-NOTES: synced
-
-Jay Satiro (6 Jul 2019)
-- [Daniel Gustafsson brought this change]
-
- nss: support using libnss on macOS
+- test613.pl: make tests 613 and 614 work with OpenSSH for Windows
- The file suffix for dynamically loadable objects on macOS is .dylib,
- which need to be added for the module definitions in order to get the
- NSS TLS backend to work properly on macOS.
+ OpenSSH for Windows shows group and other/world permissions as *,
+ because those concepts do not exist on Windows. It also does not
+ show the current or parent directory, so we just ignore those.
- Closes https://github.com/curl/curl/pull/4046
+ Reviewed-by: Daniel Stenberg
+ Closes #5328
-- [Daniel Gustafsson brought this change]
+Daniel Stenberg (6 May 2020)
+- runtests: set +x mode again
- nss: don't set unused parameter
+- libssh2: convert over to use dynbuf
- The value of the maxPTDs parameter to PR_Init() has since at least
- NSPR 2.1, which was released sometime in 1998, been marked ignored
- as is accordingly not used in the initialization code. Setting it
- to a value when calling PR_Init() is thus benign, but indicates an
- intent which may be misleading. Reset the value to zero to improve
- clarity.
+ In my very basic test that lists sftp://127.0.0.1/tmp/, this patched
+ code makes 161 allocations compared to 194 in git master. A 17%
+ reduction.
- Closes https://github.com/curl/curl/pull/4054
+ Closes #5336
-- [Daniel Gustafsson brought this change]
+- travis: add "qlog" as feature in the quiche build
- nss: only cache valid CRL entries
+- quiche: enable qlog output
- Change the logic around such that we only keep CRLs that NSS actually
- ended up caching around for later deletion. If CERT_CacheCRL() fails
- then there is little point in delaying the freeing of the CRL as it
- is not used.
+ quiche has the potential to log qlog files. To enable this, you must
+ build quiche with the qlog feature enabled `cargo build --features
+ qlog`. curl then passes a file descriptor to quiche, which takes
+ ownership of the file. The FD transfer only works on UNIX.
- Closes https://github.com/curl/curl/pull/4053
-
-- [Gergely Nagy brought this change]
-
- lib: Use UTF-8 encoding in comments
+ The convention is to enable logging when the QLOGDIR environment is
+ set. This should be a path to a folder where files are written with the
+ naming template <SCID>.qlog.
- Some editors and IDEs assume that source files use UTF-8 file encodings.
- It also fixes the build with MSVC when /utf-8 command line option is
- used (this option is mandatory for some other open-source projects, this
- is useful when using the same options is desired for building all
- libraries of a project).
+ Co-authored-by: Lucas Pardue
+ Replaces #5337
+ Closes #5341
+
+- urldata.h: remove #define HEADERSIZE, not used anymore
- Closes https://github.com/curl/curl/pull/4087
+ Follow-up to ed35d6590e72c
-- [Caleb Raitto brought this change]
+- ngtcp2: convert to dynbuf
+
+ Closes #5335
- CURLOPT_HEADEROPT.3: Fix example
+- connect: make happy eyeballs work for QUIC (again)
- Fix an issue where example builds a curl_slist, but fails to actually
- use it, or free it.
+ Follow-up from dbd16c3e256c6c (regression in 7.70.0)
- Closes https://github.com/curl/curl/pull/4090
+ Closes #5334
-- [Shankar Jadhavar brought this change]
+- connect: add two asserts to clue code analyzers in a little
+
+- http_proxy: ported to use dynbuf instead of a static size buffer
+
+ Removes a 16K static buffer from the easy handle. Simplifies the code.
- winbuild: Change Makefile to honor ENABLE_OPENSSL_AUTO_LOAD_CONFIG
+- dynbuf: introduce internal generic dynamic buffer functions
- - Made changes so that ENABLE_OPENSSL_AUTO_LOAD_CONFIG will be honored.
+ A common set of functions instead of many separate implementations for
+ creating buffers that can grow when appending data to them. Existing
+ functionality has been ported over.
- - Also removed some ^M chars from file.
+ In my early basic testing, the total number of allocations seem at
+ roughly the same amount as before, possibly a few less.
- Prior to this change while building on Windows platform even if we pass
- the ENABLE_OPENSSL_AUTO_LOAD_CONFIG option with value as "no" it does
- not set the CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG flag.
+ See docs/DYNBUF.md for a description of the API.
- Closes https://github.com/curl/curl/pull/4086
+ Closes #5300
-Daniel Stenberg (4 Jul 2019)
-- doh-url.d: added in 7.62.0
+- runtests: remove sleep calls
+
+ Remove many one second sleeps that were done *after* each newly started
+ test server already has been verified. They should not have any purpose
+ there.
+
+ Closes #5323
-Jay Satiro (30 Jun 2019)
-- docs: Fix links to OpenSSL docs
+- asyn-*: remove support for never-used NULL entry pointers
- OpenSSL changed their manual locations and does not redirect to the new
- locations.
+ ... and instead convert those to asserts to make sure they are truly
+ never NULL.
- Bug: https://curl.haxx.se/mail/lib-2019-06/0056.html
- Reported-by: Daniel Stenberg
+ Closes #5324
-Daniel Stenberg (26 Jun 2019)
-- [Gaël PORTAY brought this change]
+- [Emil Engler brought this change]
- curl_multi_wait.3: escape backslash in example
-
- The backslash in the character Line Feed must be escaped.
+ doc: Rename VERSIONS to VERSIONS.md as it already has Markdown syntax
- The current man-page outputs the code as following:
+ Closes #5325
+
+Jay Satiro (2 May 2020)
+- asyn-thread: fix cppcheck warning
- fprintf(stderr, "curl_multi failed, code %d.0, mc);
+ - Check for NULL entry parameter before attempting to deref entry in
+ Curl_resolver_is_resolved, like is already done in asyn-ares.
- The commit fixes it as follow:
+ This is to silence cppcheck which does not seem to understand that
+ asyn-ares and asyn-thread have separate Curl_resolver_is_resolved
+ and those units are mutually exclusive. Prior to this change it warned
+ of a scenario where asyn-thread's Curl_resolver_is_resolved is called
+ with a NULL entry from asyn-ares, but that couldn't happen.
- fprintf(stderr, "curl_multi failed, code %d\n", mc);
+ Reported-by: rl1987@users.noreply.github.com
- Closes #4079
+ Fixes https://github.com/curl/curl/issues/5326
-- openssl: disable engine if OPENSSL_NO_UI_CONSOLE is defined
+- select: fix overflow protection in Curl_socket_check
+
+ Follow-up to a96c752 which changed the timeout_ms type from time_t to
+ timediff_t.
- ... since that needs UI_OpenSSL() which isn't provided when OpenSSL is
- built with OPENSSL_NO_UI_CONSOLE which happens when OpenSSL is built for
- UWP (with "VC-WIN32-UWP").
+ Ref: https://github.com/curl/curl/pull/5240
- Reported-by: Vasily Lobaskin
- Fixes #4073
- Closes #4077
+ Closes https://github.com/curl/curl/pull/5286
-- test1521: adapt to SLISTPOINT
+Marc Hoersken (2 May 2020)
+- sockfilt: make select_ws stop waiting on exit signal event
- The header now has the slist-using options marked as SLISTPOINT so this
- makes sure test 1521 understands that.
+ This makes sure that select_ws behaves similar to real select
+ which stops waiting on a signal handler being triggered.
- Follow-up to ae99b4de1c443ae989
+ This makes it possible to gracefully stop sockfilt.exe on
+ Windows with taskkill /IM sockfilt.exe (without /F force flag).
- Closes #4074
+ Reviewed-by: Jay Satiro
+ Part of #5260
-- win32: make DLL loading a no-op for UWP
+- tests/server/util.[ch]: add exit event to stop waiting on Windows
- Reported-by: Michael Brehm
- Fixes #4060
- Closes #4072
-
-- [1ocalhost brought this change]
-
- configure: fix typo '--disable-http-uath'
+ This commit adds a global exit event to the test servers that
+ Windows-specific wait routines can use to get triggered if the
+ program was signaled to be terminated, eg. select_ws in sockfilt.c
+
+ The exit event will be managed by the signal handling code and is
+ set to not reset automatically to support multiple wait routines.
- Closes #4076
+ Reviewed-by: Jay Satiro
+ Closes #5260
-- [Niklas Hambüchen brought this change]
+- tests/server/util.c: fix thread handle not being closed
+
+ Reviewed-by: Jay Satiro
+ Part of #5260
- docs: fix string suggesting HTTP/2 is not the default
+- tests/server/util.c: use raise instead of calling signal handler
- Commit 25fd1057c9c86e3 made HTTP2 the default, and further down in the
- man page that new default is mentioned, but the section at the top
- contradicted it until now.
+ Use raise to trigger signal handler instead of calling it
+ directly and causing potential unexpected control flow.
- Also remove claim that setting the HTTP version is not sensible.
+ Reviewed-by: Jay Satiro
+ Part of #5260
+
+- tests: add support for SSH server variant specific transfer paths
- Closes #4075
+ OpenSSH for Windows requires paths in the format of /C:/
+ instead of the pseudo-POSIX paths /cygdrive/c/ or just /c/
+
+ Reviewed-by: Daniel Stenberg
+ Closes #5298
+Daniel Stenberg (2 May 2020)
- RELEASE-NOTES: synced
-- [Stephan Szabo brought this change]
-
- tests: update fixed IP for hostip/clientip split
+- libssh2: set the expected total size in SCP upload init
- These tests give differences for me on linux when using a hostip
- pointing to the external ip address for the local machine.
+ ... as otherwise the progress callback gets called without that
+ information, making the progress meter have less info.
- Closes #4070
+ Reported-by: Murugan Balraj
+ Bug: https://curl.haxx.se/mail/archive-2020-05/0000.html
+ Closes #5317
-Daniel Gustafsson (24 Jun 2019)
-- http: clarify header buffer size calculation
+- runtests: make the logmsg from the ssh server only show in verbose
+
+- tests: make test 1248 + 1249 use %NOLISTENPORT
- The header buffer size calculation can from static analysis seem to
- overlow as it performs an addition between two size_t variables and
- stores the result in a size_t variable. Overflow is however guarded
- against elsewhere since the input to the addition is regulated by
- the maximum read buffer size. Clarify this with a comment since the
- question was asked.
+ ... instead of a port of a non-running server so that it works
+ stand-alone.
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Closes #5318
-Daniel Stenberg (24 Jun 2019)
-- KNOWN_BUGS: Don't clear digest for single realm
+- examples: remove asiohiper.cpp
- Closes #3267
-
-- KNOWN_BUGS: Schannel disable CURLOPT_SSL_VERIFYPEER and verify hostname
+ This example has repeatedly been reported to contain bugs, and as users
+ copy and paste code from this into production, I now deem it better to
+ not provide the example at all.
- Closes #3284
+ Closes #5090
+ Closes #5322
+
+- [Emil Engler brought this change]
-- http2: call done_sending on end of upload
+ doc: add missing closing parenthesis in CURLINFO_SSL_VERIFYRESULT.3
- To make sure a HTTP/2 stream registers the end of stream.
+ Closes #5320
+
+- [Emil Engler brought this change]
+
+ KNOWN_BUGS: Remove "curl --upload-file . hang if delay in STDIN"
- Bug #4043 made me find this problem but this fix doesn't correct the
- reported issue.
+ It was fixed in 9a2cbf3
- Closes #4068
-
-- [James Brown brought this change]
+ Closes #5319
- c-ares: honor port numbers in CURLOPT_DNS_SERVERS
+- cirrus: disable SFTP and SCP tests
- By using ares_set_servers_ports_csv on new enough c-ares.
+ ... as we can't seem to start the sshd server on it. Those problems
+ existed before d1239b50bececd (running the SSH server on a random port),
+ but they're more noticable now since there are more failed attempts in
+ the logs.
- Fixes #4066
- Closes #4067
+ Closes #5315
-Daniel Gustafsson (24 Jun 2019)
-- CURLMOPT_SOCKETFUNCTION.3: fix typo
+- [Emil Engler brought this change]
-Daniel Stenberg (24 Jun 2019)
-- [Koen Dergent brought this change]
+ runtests: fix typo in the existence of disabled tests checker
+
+ Closes #5316
- curl: skip CURLOPT_PROXY_CAPATH for disabled-proxy builds
+Dan Fandrich (30 Apr 2020)
+- test75: Remove precheck test
- Closes #4061
+ This has not been needed since commit 9fa42bed and often prevents it
+ from running at all with dynamic test ports.
-- test153: fix content-length to avoid occasional hang
+- tests: Stop referring to server ports when they're not used
- Closes #4065
+ Several tests referred to specific server ports even when the test
+ didn't actually use that server or specify that it's needed. In such
+ cases, the test harness substitutes the text "[not running]" as the port
+ number which causes many such tests to fail due to the inability to
+ parse the URL. These tests are changed to use %NOLISTENPORT which will
+ always be substituted correctly.
-- RELEASE-NOTES: synced
+Daniel Stenberg (30 Apr 2020)
+- [Emil Engler brought this change]
-- multi: enable multiplexing by default (again)
+ GnuTLS: Backend support for CURLINFO_SSL_VERIFYRESULT
- It was originally made default in d7c4213bd0c (7.62.0) but mistakenly
- reverted in commit 2f44e94efb3d (7.65.0). Now enabled again.
-
- Closes #4051
+ Closes #5287
-- typecheck: add 3 missing strings and a callback data pointer
+- conncache: various concept cleanups
- Closes #4050
-
-- tests: add disable-scan.pl to dist
+ More connection cache accesses are protected by locks.
+
+ CONNCACHE_* is a beter prefix for the connection cache lock macros.
- follow-up from 29177f422a5
+ Curl_attach_connnection: now called as soon as there's a connection
+ struct available and before the connection is added to the connection
+ cache.
- Closes #4059
+ Curl_disconnect: now assumes that the connection is already removed from
+ the connection cache.
+
+ Ref: #4915
+ Closes #5009
-- http2: don't call stream-close on already closed streams
+- tests: tests: run stunnel for HTTPS and FTPS on dynamic ports
+
+ As stunnel is an external tool and it has no specific option to export
+ the actually used port number when asked to listen to 0, runtests
+ instead iterates over ten randomly picked high number ports and sticks
+ to the first one stunnel can listen to.
- Closes #4055
+ Closes #5267
-Marcel Raad (20 Jun 2019)
-- travis: enable alt-svc for coverage build
+- tests: pick a random port number for SSH
- Closes
+ Since sshd doesn't have such an option by itself, we iterate over a
+ series of random ports until one works.
+
+ Closes #5273
+
+- [Rikard Falkeborn brought this change]
-- travis: enable libssh2 for coverage build
+ libtest/cmake: Remove commented code
- It was enabled by default before commit c92d2e14cfb.
+ These were commented out in e9dd0998706a when Makefile.inc was included
+ instead. 11 years have passed since then and the commented code is of
+ course very outdated. Remove it to avoid confusion.
+
+ Closes #5311
+
+- schannel: source code reindent
- Disable torture tests 600 and 601 because of
- https://github.com/curl/curl/issues/1678.
+ White space edits only. Conform better to standard curl source code
+ indenting style.
- Closes
+ Closes #5305
-- travis: disable threaded resolver for coverage build
+Kamil Dudka (29 Apr 2020)
+- test1177: look for curl.h in source directory
- This enables more tests.
+ If we use a separate build directory, there is no copy of the header.
- Closes
+ Closes #5310
-- travis: enable brotli for all xenial jobs
+- tests: look for preprocessed tests in build directory
- There's no need for a separate job, and no need to build it from source
- with Xenial.
+ ... which is not always the same directory as source directory
- Closes
+ Closes #5310
-- travis: enable warnings-as-errors for coverage build
+Daniel Stenberg (29 Apr 2020)
+- RELEASE-NOTES: synced
- Closes
+ ... and bumped curlver.h to 7.70.1
-GitHub (20 Jun 2019)
-- [Gisle Vanem brought this change]
+Version 7.70.0 (29 Apr 2020)
+
+Daniel Stenberg (29 Apr 2020)
+- RELEASE-NOTES: 7.70.0
- system_win32: fix typo
+- THANKS: synced with the 7.70.0 release
-Daniel Stenberg (20 Jun 2019)
-- typecheck: CURLOPT_CONNECT_TO takes an slist too
+- headers: copyright range fix
+
+- [Rikard Falkeborn brought this change]
+
+ doh: Constify some input pointers
+
+ Closes #5306
+
+- nss: check for PK11_CreateDigestContext() returning NULL
- Additionally, add an alias in curl.h for slist-using options so that
- we can grep/parse those out at will.
+ ... to avoid crashes!
- Closes #4042
+ Reported-by: Hao Wu
+ Fixes #5302
+ Closes #5303
-- [Stephan Szabo brought this change]
+- travis: bump the wolfssl CI build to use 4.4.0
+
+ Closes #5301
+
+- copyright updates: adjust year ranges
- tests: support non-localhost HOSTIP for dict/smb servers
+Marc Hoersken (26 Apr 2020)
+- CI: do not include */ci branches in PR builds
- smbserver.py/dictserver.py were explicitly using localhost/127.0.0.1 for
- binding the server which when we were running the tests with a separate
- HOSTIP and CLIENTIP had failures verifying the server from the device we
- were testing.
+ Align Azure Pipelines with GitHub Actions.
+
+Daniel Stenberg (25 Apr 2020)
+- runtests: check for the disabled tests relative srcdir
- This changes them to take the address from runtests.py and default to
- localhost/127.0.0.1 if none is given.
+ To make it work correctly for out-of-tree builds.
- Closes #4048
+ Follow-up to 75e8feb6fb08b
+
+ Bug: https://github.com/curl/curl/pull/5288#issuecomment-619346389
+ Reported-by: Marcel Raad
+ Closes #5297
-- test1523: basic test of CURLOPT_LOW_SPEED_LIMIT
+- runtests: revert commenting out a line I did for debugging
+
+ Follow-up to 11091cd4d. It was not meant to be pushed!
-- configure: --disable-progress-meter
+- smtp: set auth correctly
- Builds libcurl without support for the built-in progress meter.
+ Regression since 7.69.0 and 68fb25fa3fcff.
- Closes #4023
-
-- curl: improved skip-setopt-options when built with disabled features
+ The code wrongly assigned 'from' instead of 'auth' which probably was a
+ copy and paste mistake from other code, leading to that auth could
+ remain NULL and later cause an error to be returned.
- Reduces #ifdefs in src/tool_operate.c
+ Assisted-by: Eric Sauvageau
+ Fixes #5294
+ Closes #5295
+
+Marcel Raad (25 Apr 2020)
+- lib: clean up whitespace
- Follow-up from 4e86f2fc4e6
- Closes #3936
+ This fixes CodeFactor warnings.
-Steve Holme (18 Jun 2019)
-- netrc: Return the correct error code when out of memory
+Daniel Stenberg (25 Apr 2020)
+- [Anderson Toshiyuki Sasaki brought this change]
+
+ libssh: avoid options override by configuration files
- Introduced in 763c5178.
+ Previously, options set explicitly through command line options could be
+ overridden by the configuration files parsed automatically when
+ ssh_connect() was called.
- Closes #4036
-
-Daniel Stenberg (18 Jun 2019)
-- config-os400: add getpeername and getsockname defines
+ By calling ssh_options_parse_config() explicitly, the configuration
+ files are parsed before setting the options, avoiding the options
+ override. Once the configuration files are parsed, the automatic
+ configuration parsing is not executed.
- Reported-by: jonrumsey on github
- Fixes #4037
- Closes #4039
+ Fixes #4972
+ Closes #5283
+ Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
-- runtests: keep logfiles around by default
+- runtests: when <killserver> mentions http, kill http/2 too
- Make '-k' a no-op. The singletest function now clears the log directory
- BEFORE each individual test and not after, which makes it possible to
- always keep the logfiles around after a test has been run. No need to
- specify -k anymore. Keeping the option parsing around to work with users
- of old habits.
+ Since the http2 test server is a mere proxy that needs to know about the
+ dynamic port the HTTP server is using, it too needs to get restarted
+ when the http server is killed.
- Some tests also didn't work properly when -k was used (since the old
- logs would be kep when a new test starts) which this change also fixes.
+ A regression caused by 80d6515.
- Closes #4035
+ Fixes #5289
+ Closes #5291
-- [Gergely Nagy brought this change]
+- [Yuri Slobodyanyuk brought this change]
- openssl: fix pubkey/signature algorithm detection in certinfo
+ docs: fix two typos
- Certinfo gives the same result for all OpenSSL versions.
- Also made printing RSA pubkeys consistent with older versions.
+ Closes #5292
+
+- [Emil Engler brought this change]
+
+ tests/git: ignore mqttd and port files
- Reported-by: Michael Wallner
- Fixes #3706
- Closes #4030
+ Closes #5290
-- conn_maxage: move the check to prune_dead_connections()
+- tests: make runtests check that disabled tests exists
- ... and avoid the locking issue.
+ ... and error out if so. Removed '536' from DISABLED as there is no such
+ test file.
- Reported-by: Kunal Ekawde
- Fixes #4029
- Closes #4032
+ Closes #5288
+
+- test1154: set a proper name
-- tests: have runtests figure out disabled features
+- select: make Curl_socket_check take timediff_t timeout
- ... so that runtests can skip individual test cases that test features
- that are explicitly disabled in this build. This new logic is intended
- for disabled features that aren't otherwise easily visible through the
- curl_version_info() or other API calls.
+ Coverity found CID 1461718:
- tests/server/disabled is a newly built executable that will output a
- list of disabled features. Outputs nothing for a default build.
+ Integer handling issues (CONSTANT_EXPRESSION_RESULT) "timeout_ms >
+ 9223372036854775807L" is always false regardless of the values of its
+ operands. This occurs as the logical second operand of "||".
- Closes #3950
+ Closes #5240
-- test188/189: fix Content-Length
-
- This cures the flaky test results
+- [i-ky brought this change]
+
+ libcurl-multi.3: added missing full stop
- Closes #4034
+ Closes #5285
-- [Thomas Gamper brought this change]
+Jay Satiro (22 Apr 2020)
+- transfer: Switch PUT to GET/HEAD on 303 redirect
+
+ Prior to this change if there was a 303 reply to a PUT request then
+ the subsequent request to respond to that redirect would also be a PUT.
+ It was determined that was most likely incorrect based on the language
+ of the RFCs. Basically 303 means "see other" resource, which implies it
+ is most likely not the same resource, therefore we should not try to PUT
+ to that different resource.
+
+ Refer to the discussions in #5237 and #5248 for more information.
+
+ Fixes https://github.com/curl/curl/issues/5237
+ Closes https://github.com/curl/curl/pull/5248
- winbuild: use WITH_PREFIX if given
+Daniel Stenberg (22 Apr 2020)
+- lib/mk-ca-bundle: skip empty certs
- Closes #4031
+ Reviewed-by: Emil Engler
+ Reported-by: Ashwin Metpalli
+ Fixes #5278
+ Closes #5280
-Daniel Gustafsson (17 Jun 2019)
-- openssl: remove outdated comment
+- version: skip idn2_check_version() check and add precaution
- OpenSSL used to call exit(1) on syntax errors in OPENSSL_config(),
- which is why we switched to CONF_modules_load_file() and introduced
- a comment stating why. This behavior was however changed in OpenSSL
- commit abdd677125f3a9e3082f8c5692203590fdb9b860, so remove the now
- outdated and incorrect comment. The mentioned commit also declares
- OPENSSL_config() deprecated so keep the current coding.
+ A gcc-10's -fanalyze complaint made me spot and do these improvements.
- Closes #4033
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Closes #5281
-Daniel Stenberg (16 Jun 2019)
- RELEASE-NOTES: synced
-Patrick Monnerat (16 Jun 2019)
-- os400: make vsetopt() non-static as Curl_vsetopt() for os400 support.
+- [Brian Bergeron brought this change]
+
+ curl.h: update comment typo
- Use it in curl_easy_setopt_ccsid().
+ "routines with be invoked" -> "routines will be invoked"
- Reported-by: jonrumsey on github
- Fixes #3833
- Closes #4028
+ Closes #5279
-Daniel Stenberg (15 Jun 2019)
-- runtests: report single test time + total duration
-
- ... after each successful test.
+- [Emil Engler brought this change]
+
+ GnuTLS: Don't skip really long certificate fields
- Closes #4027
+ Closes #5271
-- multi: fix the transfer hash function
+- gnutls: bump lowest supported version to 3.1.10
- Follow-up from 8b987cc7eb
+ GnuTLS 3.1.10 added new functions we want to use. That version was
+ released on Mar 22, 2013. Removing support for older versions also
+ greatly simplifies the code.
- Reported-by: Tom van der Woerdt
- Fixes #4018
- Closes #4024
+ Ref: #5271
+ Closes #5276
+
+- mqtt: make NOSTATE get within the debug name array
-- unit1654: cleanup on memory failure
+- tests: run the RTSP test server on a dynamic port number
- ... to make it handle torture tests properly.
+ To avoid port collisions.
- Reported-by: Marcel Raad
- Fixes #4021
- Closes #4022
+ Closes #5272
-Marcel Raad (13 Jun 2019)
-- krb5: fix compiler warning
+- tests: add %NOLISTENPORT and use it
- Even though the variable was used in a DEBUGASSERT, GCC 8 warned in
- debug mode:
- krb5.c:324:17: error: unused variable 'maj' [-Werror=unused-variable]
+ The purpose with this variable is to provide a port number that is
+ reasonably likely to not have a listener on the local host so that tests
+ can try connect failures against it. It uses port 47 - "reserved"
+ according to IANA.
- Just suppress the warning and declare the variable unconditionally
- instead of only for DEBUGBUILD (which also missed the check for
- HAVE_ASSERT_H).
+ Updated six tests to use it instead of the previous different ports.
- Closes https://github.com/curl/curl/pull/4020
+ Assisted-by: Emil Engler
+ Closes #5270
-Daniel Stenberg (13 Jun 2019)
-- quote.d: asterisk prefix works for SFTP as well
+- mqtt: remove code with no purpose
- Reported-by: Ben Voris
- Fixes #4017
- Closes #4019
-
-- multi: fix the transfer hashes in the socket hash entries
+ Detected by Coverity. CID 1462319.
- - The transfer hashes weren't using the correct keys so removing entries
- failed.
+ "The same code is executed when the condition result is true or false,
+ because the code in the if-then branch and after the if statement is
+ identical."
- - Simplified the iteration logic over transfers sharing the same socket and
- they now simply are set to expire and thus get handled in the "regular"
- timer loop instead.
+ Closes #5275
+
+- mqtt: fix Curl_read() error handling while reading remaining length
- Reported-by: Tom van der Woerdt
- Fixes #4012
- Closes #4014
+ Detected by Coverity. CID 1462320.
+
+ Closes #5274
-Jay Satiro (12 Jun 2019)
-- [Cliff Crosland brought this change]
+- server/tftpd: fix compiler warning
+
+ Follow-up from 369ce38ac1d
+ Reported-by: Marc Hörsken
- url: Fix CURLOPT_MAXAGE_CONN time comparison
+- http: free memory when Alt-Used header creation fails due to OOM
- Old connections are meant to expire from the connection cache after
- CURLOPT_MAXAGE_CONN seconds. However, they actually expire after 1000x
- that value. This occurs because a time value measured in milliseconds is
- accidentally divided by 1M instead of by 1,000.
+ Reported-by: James Fuller
+ Fixes #5268
+ Closes #5269
+
+Daniel Gustafsson (20 Apr 2020)
+- lib: fix typos in comments and errormessages
- Closes https://github.com/curl/curl/pull/4013
+ This fixes a few randomly spotted typos in recently merged code, most
+ notably one in a userfacing errormessage the schannel code.
-Daniel Stenberg (11 Jun 2019)
-- test1165: verify that CURL_DISABLE_ symbols are in sync
+Daniel Stenberg (20 Apr 2020)
+- tests: run the SOCKS test server on a dynamic port number
- between configure.ac and source code. They should be possible to switch
- on/off in configure AND be used in source code.
+ Closes #5266
-- configure: remove CURL_DISABLE_TLS_SRP
+- [Johannes Schindelin brought this change]
+
+ multi-ssl: reset the SSL backend on `Curl_global_cleanup()`
- It isn't used by code so stop providing the define.
+ When cURL is compiled with support for multiple SSL backends, it is
+ possible to configure an SSL backend via `curl_global_sslset()`, but
+ only *before* `curl_global_init()` was called.
- Closes #4010
-
-- Revert "cmake: add SMB to list of disabled protocols if HTTP_ONLY is specified"
+ If another SSL backend should be used after that, a user might be
+ tempted to call `curl_global_cleanup()` to start over. However, we did
+ not foresee that use case and forgot to reset the SSL backend in that
+ cleanup.
- This reverts commit 36738caeb78603ce24e3ea089a167b8c216fb938.
+ Let's allow that use case.
- Apparently several of the appveyor windows builds broke.
+ Fixes #5255
+ Closes #5257
+ Reported-by: davidedec on github
+ Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
-- [sergey-raevskiy brought this change]
+- tests: run the TFTP test server on a dynamic port number
+
+ Picking a dynamic unused port is better than a fixed to avoid the
+ collision risk.
+
+ Closes #5265
- cmake: add SMB to list of disabled protocols if HTTP_ONLY is specified
+- mqtt: improve the state machine
+
+ To handle PUBLISH before SUBACK and more.
- Reviewed-by: Jakub Zakrzewski
- Closes #3770
+ Updated the existing tests and added three new ones.
+
+ Reported-by: Christoph Krey
+ Bug: https://curl.haxx.se/mail/lib-2020-04/0021.html
+ Closes #5246
+
+- runtests: always put test number in servercmd file
- RELEASE-NOTES: synced
-- http2: remove CURL_DISABLE_TYPECHECK define
+- release-notes.pl: fix parsing typo
+
+James Fuller (20 Apr 2020)
+- ensure all references to ports are replaced by vars
+
+- add more alt-svc test coverage
+
+Daniel Stenberg (20 Apr 2020)
+- test1247: use http server to get the port number set
- ... in http2-less builds as it served no use.
+ Follow-up to 0f5db7b263f
-- configure: more --disable switches to toggle off individual features
+- runtests: use a unix domain socket path with the pid in the name
- ... actual support in the code for disabling these has already landed.
+ To make it impossible for test cases to access the file name without
+ using the proper variable for the purpose.
- Closes #4009
+ Closes #5264
-- wolfssl: fix key pinning build error
-
- follow-up from deb9462ff2de8
+Daniel Gustafsson (19 Apr 2020)
+- [Mipsters on github brought this change]
-- CURLMOPT_SOCKETFUNCTION.3: clarified
+ src: Remove C99 constructs to ensure C89 compliance
- Moved away the callback explanation from curl_multi_socket_action.3 and
- expanded it somewhat.
+ This fixes the error: 'for' loop initial declaration used outside C99
+ mode by declaring the loop increment variable in the beginning of the
+ block instead of inside the for loop.
- Closes #4006
+ Fixes #5254
+ Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
-- wolfssl: fixup for SNI use
-
- follow-up from deb9462ff2de8
+Daniel Stenberg (19 Apr 2020)
+- runtests: dummy init the ports variables to avoid warnings
- Closes #4007
+ ... and generate something that can help debug test cases.
-- CURLOPT_CAINFO.3: polished wording
+- [Patrick Monnerat brought this change]
+
+ mime: properly check Content-Type even if it has parameters
- Clarify the functionality when built to use Schannel and Secure
- Transport and stop calling it the "recommended" or "preferred" way and
- instead rather call it the default.
+ New test 669 checks this fix is effective.
- Removed the reference to the ssl comparison table as it isn't necessary.
+ Fixes #5256
+ Closes #5258
+ Reported-by: thanhchungbtc on github
+
+- tests/FILEFORMAT: converted to markdown and extended
- Reported-by: Richard Alcock
- Bug: https://curl.haxx.se/mail/lib-2019-06/0019.html
- Closes #4005
+ Closes #5261
-GitHub (10 Jun 2019)
-- [Daniel Stenberg brought this change]
+- test1245: make it work with dynamic FTP server port
- SECURITY.md: created
-
- Brief security policy description for use/display on github.
+- test1055: make it work with dynamic FTP port
+
+- test1028: make it run on dynamic FTP server port
-Daniel Gustafsson (10 Jun 2019)
-- tool_cb_prg: Fix integer overflow in progress bar
+- tests: move pingpong server to dynamic listening port
- Commit 61faa0b420c236480bc9ef6fd52b4ecc1e0f8d17 fixed the progress bar
- width calculation to avoid integer overflow, but failed to account for
- the fact that initial_size is initialized to -1 when the file size is
- retrieved from the remote on an upload, causing another signed integer
- overflow. Fix by separately checking for this case before the width
- calculation.
+ FTP, IMAP, POP3, SMTP and their IPv6 versions are now all on dynamic
+ ports
- Closes #3984
- Reported-by: Brian Carpenter (Geeknik Labs)
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Test 842-845 are unfortunately a bit hard to move over to this concept
+ right now and require "default port" still...
+
+- test1056: work with dynamic HTTP ipv6 port
-Daniel Stenberg (10 Jun 2019)
-- wolfssl: refer to it as wolfSSL only
+- test1448: work with dynamic HTTP server port
+
+- tests: introduce preprocessed test cases
- Remove support for, references to and use of "cyaSSL" from the source
- and docs. wolfSSL is the current name and there's no point in keeping
- references to ancient history.
+ The runtests script now always performs variable replacement on the
+ entire test source file before the test gets executed, and saves the
+ updated version in a temporary file (log/test[num]) so that all test
+ case readers/servers can use that version (if present) and thus enjoy
+ the powers of test case variable substitution.
- Assisted-by: Daniel Gustafsson
+ This is necessary to allow complete port number freedom.
- Closes #3903
+ Test 309 is updated to work with a non-fixed port number thanks to this.
-- RELEASE-NOTES: synced
+- tests: make 2006-2010 handle different port number lengths
-- bindlocal: detect and avoid IP version mismatches in bind()
+- tests: run the sws server on "any port"
- Reported-by: Alex Grebenschikov
- Fixes #3993
- Closes #4002
-
-- multi: make sure 'data' can present in several sockhash entries
+ Makes the test servers for HTTP and Gopher pop up on a currently unused
+ port and runtests adapts to that!
- Since more than one socket can be used by each transfer at a given time,
- each sockhash entry how has its own hash table with transfers using that
- socket.
+ Closes #5247
+
+Marc Hoersken (18 Apr 2020)
+- sockfilt: tidy variable naming and data structure in select_ws
- In addition, the sockhash entry can now be marked 'blocked = TRUE'"
- which then makes the delete function just set 'removed = TRUE' instead
- of removing it "for real", as a way to not rip out the carpet under the
- feet of a parent function that iterates over the transfers of that same
- sockhash entry.
+ This commit does not introduce any logical changes to the code.
- Reported-by: Tom van der Woerdt
- Fixes #3961
- Fixes #3986
- Fixes #3995
- Fixes #4004
- Closes #3997
+ Reviewed-by: Jay Satiro and Marcel Raad
+ Closes #5238
-- [Sorcus brought this change]
+Daniel Stenberg (17 Apr 2020)
+- [Anderson Toshiyuki Sasaki brought this change]
- libcurl-tutorial.3: Fix small typo (mutipart -> multipart)
+ libssh: Use new ECDSA key types to check known hosts
+
+ From libssh 0.9.0, ssh_key_type() returns different key types for ECDSA
+ keys depending on the curve.
- Fixed-by: MrSorcus on github
- Closes #4000
+ Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
+ Fixes #5252
+ Closes #5253
-- unpause: trigger a timeout for event-based transfers
+Marcel Raad (17 Apr 2020)
+- appveyor: add Unicode winbuild jobs
- ... so that timeouts or other state machine actions get going again
- after a changing pause state. For example, if the last delivery was
- paused there's no pending socket activity.
+ These are cheap as they don't build tests.
- Reported-by: sstruchtrup on github
- Fixes #3994
- Closes #4001
+ Closes https://github.com/curl/curl/pull/5063
-Marcel Raad (9 Jun 2019)
-- travis: use xenial LLVM package for scan-build
+Daniel Stenberg (16 Apr 2020)
+- mqttd: s/errno/SOCKERRNO
- I missed that in commit 99a49d6.
+ To behave proper on Windows
+ Reported-by: Gisle Vanem
+ Bug: https://github.com/curl/curl/commit/5e855bbd18f84a02c951be7cac6188276818cdac#r38507132
+ Closes #5241
-- travis: update scan-build job to xenial
+- buildconf: use find -execdir instead, remove -print and the ares files
- Closes https://github.com/curl/curl/pull/3999
+ Follow-up to 1e41bec96a6e
+
+ Suggested-by: Marc Hörsken
-Daniel Stenberg (8 Jun 2019)
-- bump: start working on 7.65.2
+- [Alexander V. Tikhonov brought this change]
-Marcel Raad (5 Jun 2019)
-- examples/htmltitle: use C++ casts between pointer types
+ buildconf: avoid using tempfile when removing files
- Compilers and static analyzers warn about using C-style casts here.
+ Closes #5213
+
+- copyright: bump the copyright year range
+
+- scripts/release-notes.pl: accept colon after the Fixes/Closes keywords
+
+- [JP Mens brought this change]
+
+ docs/MQTT: replace confusing 80 by 75
+
+ I was a bit surprised by the `80`: first thought: what's HTTP doing
+ here? ;)
- Closes https://github.com/curl/curl/pull/3975
+ Closes #5236
-- examples/fopen: fix comparison
+- [Brad King brought this change]
+
+ cmake: Avoid MSVC C4273 warnings in send/recv checks
+
+ We use `check_c_source_compiles` to check possible send/recv signatures
+ by reproducing the forward declarations from system headers. On Windows
+ the `winsock2.h` header adds dll linkage settings to its forward
+ declaration. If ours does not match the compiler warns:
- As want is size_t, (file->buffer_pos - want) is unsigned, so checking
- if it's less than zero makes no sense.
- Check if file->buffer_pos is less than want instead to avoid the
- unsigned integer wraparound.
+ warning C4273: 'recv': inconsistent dll linkage
- Closes https://github.com/curl/curl/pull/3975
+ Add `WINSOCK_API_LINKAGE` to our test signatures when it is defined so
+ that our linkage is consistent with that from `winsock2.h`.
+
+ Fixes #4764
+ Closes #5232
-- build: fix Codacy warnings
+Jay Satiro (14 Apr 2020)
+- KNOWN_BUGS: Add entry 'Blocking socket operations'
+
+ - Add threaded resolver cleanup and GSSAPI for FTP to the TODO list of
+ known blocking operations.
+
+ - New known bugs entry 'Blocking socket operations in non-blocking API'
+ that directs to the TODO's list of known blocking operations.
- Reduce variable scopes and remove redundant variable stores.
+ Ref: https://github.com/curl/curl/pull/5214#issuecomment-612488021
- Closes https://github.com/curl/curl/pull/3975
+ Reported-by: Marc Hoersken
+
+ Closes https://github.com/curl/curl/pull/5216
-- sws: remove unused variables
+Marc Hoersken (14 Apr 2020)
+- test2043: use revoked.badssl.com instead of revoked.grc.com
+
+ The certificate of revoked.grc.com has expired on 2020-04-13.
- Unused since commit 2f44e94.
+ Reviewed-by: Jay Satiro
+
+ Closes #5233
+
+- sockfilt: fix broken pipe on Windows to be ready in select_ws
- Closes https://github.com/curl/curl/pull/3975
+ Closes #5228
+
+Daniel Stenberg (14 Apr 2020)
+- RELEASE-NOTES: synced
-Version 7.65.1 (4 Jun 2019)
+- scripts/release-notes: fix duplicate output header
-Daniel Stenberg (4 Jun 2019)
-- RELEASE-NOTES: 7.65.1
+- github/workflow: enable MQTT in the macOS debug build
-- THANKS: new contributors from 7.65.1
+- azure: add mqtt support to one of the Windows builds
-Steve Holme (4 Jun 2019)
-- [Frank Gevaerts brought this change]
+- travis: add mqtt job on Linux
- ssl: Update outdated "openssl-only" comments for supported backends
+- tests: add four MQTT tests 1190 - 1193
+
+- tests: add the mqtt test server mqttd
+
+- tests: support hex encoded data and mqtt server
- These are for features that used to be openssl-only but were expanded
- over time to support other SSL backends.
+ The mqtt server is started using a "random" port.
+
+- [Björn Stenberg brought this change]
+
+ mqtt: add new experimental protocol
- Closes #3985
+ Closes #5173
-Daniel Stenberg (4 Jun 2019)
-- curl_share_setopt.3: improve wording [ci ship]
+- TODO: Consider convenience options for JSON and XML?
- Reported-by: Carlos ORyan
+ Closes #5203
-Steve Holme (4 Jun 2019)
-- tool_parsecfg: Use correct return type for GetModuleFileName()
+- tool: do not declare functions with Curl_ prefix
- GetModuleFileName() returns a DWORD which is a typedef of an unsigned
- long and not an int.
+ To avoid collision risks with private libcurl symbols when linked with
+ static versions (or just versions not hiding internal symbols).
- Closes #3980
+ Reported-by: hydra3333 on github
+ Fixes #5219
+ Closes #5234
-Daniel Stenberg (3 Jun 2019)
-- TODO: "at least N milliseconds between requests" [ci skip]
-
- Suggested-by: dkwolfe4 on github
- Closes #3920
+- [Nathaniel R. Lewis brought this change]
-Steve Holme (2 Jun 2019)
-- tests/server/.gitignore: Add socksd to the ignore list
-
- Missed in 04fd6755.
+ cmake: add aliases so exported target names are available in tree
- Closes #3978
+ Reviewed-by: Brad King
+ Closes #5206
-- tool_parsecfg: Fix control flow issue (DEADCODE)
+- version: increase buffer space for ssl version output
- Follow-up to 8144ba38.
+ To avoid it getting truncated, especially when several SSL backends are
+ built-in.
- Detected by Coverity CID 1445663
- Closes #3976
+ Reported-by: Gisle Vanem
+ Fixes #5222
+ Closes #5226
-Daniel Stenberg (2 Jun 2019)
-- [Sergey Ogryzkov brought this change]
+Marc Hoersken (13 Apr 2020)
+- cirrus: no longer ignore test 504 which is working again
+
+ The test is working again, because TCP blackholing is disabled.
- NTLM: reset proxy "multipass" state when CONNECT request is done
+- appveyor: completely disable tests that fail to timeout early
- Closes #3972
+ The tests changed from ignored to disabled are tests that are
+ about connecting to non-listening socket. On AppVeyor these
+ tests are not reliable, because for some unknown reason the
+ connect is not timing out before the test time limit is reached.
-- test334: verify HTTP 204 response with chunked coding header
+Daniel Stenberg (13 Apr 2020)
+- test1908: avoid using fixed port number in test data
- Verifies that a bodyless response don't parse this content-related
- header.
+ Closes #5225
-- [Michael Kaufmann brought this change]
+Jay Satiro (12 Apr 2020)
+- [Andrew Kurushin brought this change]
- http: don't parse body-related headers bodyless responses
+ schannel: Fix blocking timeout logic
- Responses with status codes 1xx, 204 or 304 don't have a response body. For
- these, don't parse these headers:
+ - Fix schannel_send for the case when no timeout was set.
- - Content-Encoding
- - Content-Length
- - Content-Range
- - Last-Modified
- - Transfer-Encoding
+ Prior to this change schannel would error if the socket was not ready
+ to send data and no timeout was set.
- This change ensures that HTTP/2 upgrades work even if a
- "Content-Length: 0" or a "Transfer-Encoding: chunked" header is present.
+ This commit is similar to parent commit 89dc6e0 which recently made the
+ same change for SOCKS, for the same reason. Basically it was not well
+ understood that when Curl_timeleft returns 0 it is not a timeout of 0 ms
+ but actually means no timeout.
- Co-authored-by: Daniel Stenberg
- Closes #3702
- Fixes #3968
- Closes #3977
+ Fixes https://github.com/curl/curl/issues/5177
+ Closes https://github.com/curl/curl/pull/5221
-- tls13-docs: mention it is only for OpenSSL >= 1.1.1
+- socks: Fix blocking timeout logic
- Reported-by: Jay Satiro
- Co-authored-by: Jay Satiro
- Fixes #3938
- Closes #3946
-
-- dump-header.d: spell out that no headers == empty file [ci skip]
+ - Document in Curl_timeleft's comment block that returning 0 signals no
+ timeout (ie there's infinite time left).
- Reported-by: wesinator at github
- Fixes #3964
- Closes #3974
-
-- singlesocket: use separate variable for inner loop
+ - Fix SOCKS' Curl_blockread_all for the case when no timeout was set.
- An inner loop within the singlesocket() function wrongly re-used the
- variable for the outer loop which then could cause an infinite
- loop. Change to using a separate variable!
+ Prior to this change if the timeout had a value of 0 and that was passed
+ to SOCKET_READABLE it would return right away instead of blocking. That
+ was likely because it was not well understood that when Curl_timeleft
+ returns 0 it is not a timeout of 0 ms but actually means no timeout.
- Reported-by: Eric Wu
- Fixes #3970
- Closes #3973
-
-- RELEASE-NOTES: synced
+ Ref: https://github.com/curl/curl/pull/5214#issuecomment-612512360
+
+ Closes https://github.com/curl/curl/pull/5220
-- [Josie Huddleston brought this change]
+- [Marc Hoersken brought this change]
- http2: Stop drain from being permanently set on
+ gopher: check remaining time left during write busy loop
- Various functions called within Curl_http2_done() can have the
- side-effect of setting the Easy connection into drain mode (by calling
- drain_this()). However, the last time we unset this for a transfer (by
- calling drained_transfer()) is at the beginning of Curl_http2_done().
- If the Curl_easy is reused for another transfer, it is then stuck in
- drain mode permanently, which in practice makes it unable to write any
- data in the new transfer.
+ Prior to this change gopher's blocking code would block forever,
+ ignoring any set timeout value.
- This fix moves the last call to drained_transfer() to later in
- Curl_http2_done(), after the functions that could potentially call for a
- drain.
+ Assisted-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
- Fixes #3966
- Closes #3967
- Reported-by: Josie-H
+ Similar to #5220 and #5221
+ Closes #5214
-Steve Holme (29 May 2019)
-- conncache: Remove the DEBUGASSERT on length check
+Daniel Stenberg (13 Apr 2020)
+- [Dirkjan Bussink brought this change]
+
+ gnutls: ensure TLS 1.3 when SRP isn't requested
- We trust the calling code as this is an internal function.
+ When SRP is requested in the priority string, GnuTLS will disable
+ support for TLS 1.3. Before this change, curl would always add +SRP to
+ the priority list, effectively always disabling TLS 1.3 support.
- Closes #3962
-
-Jay Satiro (29 May 2019)
-- [Gisle Vanem brought this change]
+ With this change, +SRP is only added to the priority list when SRP
+ authentication is also requested. This also allows updating the error
+ handling here to not have to retry without SRP. This is because SRP is
+ only added when requested and in that case a retry is not needed.
+
+ Closes #5223
- system_win32: fix function prototype
+Marc Hoersken (12 Apr 2020)
+- tests/server: add hidden window to gracefully handle WM_CLOSE
- - Change if_nametoindex parameter type from char * to const char *.
+ Forward Window events as signals to existing signal event handler.
+
+- tests/server: add CTRL event handler for Win32 consoles
- Follow-up to 09eef8af from this morning.
+ Forward CTRL events as signals to existing signal event handler.
+
+- tests/server: move all signal handling routines to util.[ch]
- Bug: https://github.com/curl/curl/commit/09eef8af#r33716067
+ Avoid code duplication to prepare for portability enhancements.
-Marcel Raad (29 May 2019)
-- appveyor: add Visual Studio solution build
+Daniel Stenberg (12 Apr 2020)
+- compressed.d: stress that the headers are not modified
- Closes https://github.com/curl/curl/pull/3941
+ Suggested-by: Michael Osipov
+ Assisted-by: Jay Satiro
+ Bug: https://github.com/curl/curl/issues/5182#issuecomment-611638008
+ Closes #5217
-- appveyor: add support for other build systems
+Marc Hoersken (11 Apr 2020)
+- tests/server/util.c: use curl_off_t instead of long for pid
- Introduce BUILD_SYSTEM variable, which is currently always CMake.
+ Avoid potential overflow of huge PIDs on Windows.
- Closes https://github.com/curl/curl/pull/3941
+ Related to #5188
+ Assisted-by: Marcel Raad
-Steve Holme (29 May 2019)
-- url: Load if_nametoindex() dynamically from iphlpapi.dll on Windows
+- tests: use Cygwin/msys PIDs for stunnel and sshd on Windows
- This fixes the static dependency on iphlpapi.lib and allows curl to
- build for targets prior to Windows Vista.
+ Since the Windows versions of both programs would write Windows
+ PIDs to their pidfiles which we cannot handle, we need to use
+ our known perl.exe Cygwin/msys PID together with exec() in order
+ to tie the spawned processes to the existance of our perl.exe
- This partially reverts 170bd047.
+ The perl.exe that is executing secureserver.pl and sshserver.pl
+ has a Cygwin/msys PID, because it is started inside Cygwin/msys.
- Fixes #3960
- Closes #3958
+ Related to #5188
-Daniel Stenberg (29 May 2019)
-- http: fix "error: equality comparison with extraneous parentheses"
+- tests: add Windows compatible pidwait like pidkill and pidterm
+
+ Related to #5188
-- parse_proxy: make sure portptr is initialized
+- tests: fix conflict between Cygwin/msys and Windows PIDs
- Reported-by: Benbuck Nason
+ Add 65536 to Windows PIDs to allow Windows specific treatment
+ by having disjunct ranges for Cygwin/msys and Windows PIDs.
- fixes #3959
-
-- url: default conn->port to the same as conn->remote_port
+ See also:
+ - https://cygwin.com/git/?p=newlib-cygwin.git;a=commit; ↵
+ h=b5e1003722cb14235c4f166be72c09acdffc62ea
+ - https://cygwin.com/git/?p=newlib-cygwin.git;a=commit; ↵
+ h=448cf5aa4b429d5a9cebf92a0da4ab4b5b6d23fe
- ... so that it has a sensible value when ConnectionExists() is called which
- needs it set to differentiate host "bundles" correctly on port number!
+ Replaces #5178
+ Closes #5188
+
+Daniel Stenberg (11 Apr 2020)
+- RELEASE-NOTES: synced
+
+- release-notes.pl: detect the start of the references in cleanup mode
+
+- Revert "file: on Windows, refuse paths that start with \\"
- Also, make conncache:hashkey() use correct port for bundles that are proxy vs
- host connections.
+ This reverts commit 1b71bc532bde8621fd3260843f8197182a467ff2.
- Probably a regression from 7.62.0
+ Reminded-by: Chris Roberts
+ Bug: https://curl.haxx.se/mail/archive-2020-04/0013.html
- Reported-by: Tom van der Woerdt
- Fixes #3956
- Closes #3957
+ Closes #5215
-- conncache: make "bundles" per host name when doing proxy tunnels
+Jay Satiro (11 Apr 2020)
+- lib: fix conversion warnings for SOCKET_WRITABLE/READABLE
- Only HTTP proxy use where multiple host names can be used over the same
- connection should use the proxy host name for bundles.
+ - If loss of data may occur converting a timediff_t to time_t and
+ the time value is > TIME_T_MAX then treat it as TIME_T_MAX.
- Reported-by: Tom van der Woerdt
- Fixes #3951
- Closes #3955
+ This is a follow-up to 8843678 which removed the (time_t) typecast
+ from the macros so that conversion warnings could be identified.
+
+ Closes https://github.com/curl/curl/pull/5199
-- multi: track users of a socket better
+- test1148: tolerate progress updates better (again)
+
+ - Ignore intermediate progress updates.
- They need to be removed from the socket hash linked list with more care.
+ - Support locales that use a character other than period as decimal
+ separator (eg 100,0%).
- When sh_delentry() is called to remove a sockethash entry, remove all
- individual transfers from the list first. To enable this, each Curl_easy struct
- now stores a pointer to the sockethash entry to know how to remove itself.
+ test1148 checks that the progress finishes at 100% and has the right
+ bar width. Prior to this change the test assumed that the only progress
+ reported for such a quick transfer was 100%, however in rare instances
+ (like in the CI where transfer time can slow considerably) there may be
+ intermediate updates. For example, below is stderrlog1148 from a failed
+ CI run with explicit \r and \n added (it is one line; broken up so that
+ it's easier to understand).
- Reported-by: Tom van der Woerdt and Kunal Ekawde
+ \r
+ \r################################## 48.3%
+ \r######################################################################## 100.0%
+ \n
- Fixes #3952
- Fixes #3904
- Closes #3953
+ Closes https://github.com/curl/curl/pull/5194
-Steve Holme (28 May 2019)
-- curl-win32.h: Enable Unix Domain Sockets based on the Windows SDK version
+Marc Hoersken (10 Apr 2020)
+- sshserver.pl: use cached Win32 environment check variable
+
+- appveyor: partially revert 3413a110 to keep build without proxy
- Microsoft added support for Unix Domain Sockets in Windows 10 1803
- (RS4). Rather than expect the user to enable Unix Domain Sockets by
- uncommenting the #define that was added in 0fd6221f we use the RS4
- pre-processor variable that is present in newer versions of the
- Windows SDK.
+ Ref: #5211 and #4526
+ Reported-by: Marcel Raad
+
+- appveyor: ignore failing 'connect to non-listening proxy' tests
- Closes #3939
+ Closes #5211
-Daniel Stenberg (28 May 2019)
-- [Jonas Vautherin brought this change]
+- CI/macos: convert CRLF to LF and align indentation
- cmake: support CMAKE_OSX_ARCHITECTURES when detecting SIZEOF variables
+Daniel Stenberg (9 Apr 2020)
+- url: allow non-HTTPS altsvc-matching for debug builds
- Closes #3945
+ This is already partly supported but this part was missing.
+ Reported-by: James Fuller
+
+ Closes #5205
-Marcel Raad (27 May 2019)
-- HAProxy tests: add keywords
+- server/resolve: remove AI_CANONNAME to make macos tell the truth
- Add the proxy and haproxy keywords in order to be able to exclude or
- run these specific tests.
+ With this bit set, my mac successfully resolves "ip6-localhost" when in
+ fact there is no such host known to my machine! That in turn made test
+ 241 wrongly execute and fail.
- Closes https://github.com/curl/curl/pull/3949
+ Closes #5202
-Daniel Stenberg (27 May 2019)
-- [Maksim Stsepanenka brought this change]
-
- tests: make test 1420 and 1406 work with rtsp-disabled libcurl
+- runtests: fix warning about using an undefined variable
- Closes #3948
+ Follow-up from 4d939ef6ceb2db1
-Kamil Dudka (27 May 2019)
-- [Hubert Kario brought this change]
+- release-notes: fix the initial reference list output
- nss: allow to specify TLS 1.3 ciphers if supported by NSS
+- github actions: run when pushed to master or */ci + PRs
+
+ Avoid double-builds when using "local" branches for PRs. For both macos
+ and fuzz jobs.
- Closes #3916
+ Closes #5201
-Daniel Stenberg (26 May 2019)
-- RELEASE-NOTES: synced
+- runtests: provide nicer errormsg when protocol "dump" file is empty
-- [Jay Satiro brought this change]
+- [Gilles Vollant brought this change]
- Revert all SASL authzid (new feature) commits
-
- - Revert all commits related to the SASL authzid feature since the next
- release will be a patch release, 7.65.1.
+ schannel: support .P12 or .PFX client certificates
- Prior to this change CURLOPT_SASL_AUTHZID / --sasl-authzid was destined
- for the next release, assuming it would be a feature release 7.66.0.
- However instead the next release will be a patch release, 7.65.1 and
- will not contain any new features.
+ Used with curl command line option like this: --cert
+ <filename>:<password> --cert-type p12
- After the patch release after the reverted commits can be restored by
- using cherry-pick:
+ Closes #5193
+
+- tests: verify split initial HTTP requests with CURL_SMALLREQSEND
- git cherry-pick a14d72c a9499ff 8c1cc36 c2a8d52 0edf690
+ test1294: "split request" being when the entire request isn't sent in
+ the first go, and the remainder is sent in the PERFORM state. A GET
+ request is otherwise not sending anything during PERFORM.
- Details for all reverted commits:
+ test1295: same kind of split but with POST
- Revert "os400: take care of CURLOPT_SASL_AUTHZID in curl_easy_setopt_ccsid()."
+ Closes #5197
+
+- http: don't consider upload done if the request isn't completely sent off
- This reverts commit 0edf6907ae37e2020722e6f61229d8ec64095b0a.
+ Fixes #4919
+ Closes #5197
+
+- http: allow Curl_add_buffer_send() to do a short first send by force
- Revert "tests: Fix the line endings for the SASL alt-auth tests"
+ In a debug build, settting the environment variable "CURL_SMALLREQSEND"
+ will make the first HTTP request send not send more bytes than the set
+ amount, thus ending up verifying that the logic for handling a split
+ HTTP request send works correctly.
+
+- connect: store connection info for QUIC connections
- This reverts commit c2a8d52a1356a722ff9f4aeb983cd4eaf80ef221.
+ Restores the --head functionality to the curl utility which extracts
+ 'protocol' that is stored that way.
- Revert "examples: Added SASL PLAIN authorisation identity (authzid) examples"
+ Reported-by: James Fuller
+ Fixes #5196
+ Closes #5198
+
+- tests/README: update the port numbers list
- This reverts commit 8c1cc369d0c7163c6dcc91fd38edfea1f509ae75.
+ Since the pipelining server is long gone.
+ Reported-by: James Fuller
+
+- select: remove typecast from SOCKET_WRITABLE/READABLE macros
- Revert "curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool"
+ So that they don't hide conversions-by-mistake
- This reverts commit a9499ff136d89987af885e2d7dff0a066a3e5817.
+ Reviewed-by: Jay Satiro
+ Closes #5190
+
+- CURLOPT_WRITEFUNCTION.3: add inline example and new see-also
- Revert "sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID"
+ Closes #5192
+
+- release-notes: output trailing references sorted numerically
+
+- cleanup: correct copyright year range on a few files
+
+- configure: remove use of -vec-report0 from CFLAGS with icc
- This reverts commit a14d72ca2fec5d4eb5a043936e4f7ce08015c177.
+ ... as it apparently isn't (always) supported.
+ Reported-by: Alain Miniussi
+ Fixes #5096
+ Closes #5191
-- [dbrowndan brought this change]
+- warnless: remove code block for icc that didn't work
+
+ Reported-by: Alain Miniussi
+ Fixes #5096
- FAQ: more minor updates and spelling fixes
+Marc Hoersken (6 Apr 2020)
+- dist: add missing setup-win32.h
- Closes #3937
+ Follow up to d820224b8b
+Daniel Stenberg (6 Apr 2020)
- RELEASE-NOTES: synced
-- sectransp: handle errSSLPeerAuthCompleted from SSLRead()
+- scripts/release-notes.pl: add helper script for RELEASE-NOTES maintenance
- Reported-by: smuellerDD on github
- Fixes #3932
- Closes #3933
+ This script helps putting entries in the RELEASE-NOTES using a coherent
+ style and sorting with a minimal human editing effort - as long as the
+ first line in the commit message is good enough! There's a short howto
+ at the top of the file.
-GitHub (24 May 2019)
-- [Gisle Vanem brought this change]
+- [Dennis Felsing brought this change]
- Fix typo.
-
-Daniel Stenberg (23 May 2019)
-- tool_setopt: for builds with disabled-proxy, skip all proxy setopts()
+ configure: don't check for Security.framework when cross-compiling
- Reported-by: Marcel Raad
- Fixes #3926
- Closes #3929
-
-Steve Holme (23 May 2019)
-- winbuild: Use two space indentation
+ Since it checks for the local file, not the cross-compiled one.
- Closes #3930
+ Closes #5189
-GitHub (23 May 2019)
-- [Gisle Vanem brought this change]
+- TODO: Option to make -Z merge lined based outputs on stdout
+
+ Closes #5175
- tool_parse_cfg: Avoid 2 fopen() for WIN32
+- lib: never define CURL_CA_BUNDLE with a getenv
- Using the memdebug.h mem-leak feature, I noticed 2 calls like:
- FILE tool_parsecfg.c:70 fopen("c:\Users\Gisle\AppData\Roaming\_curlrc","rt")
- FILE tool_parsecfg.c:114 fopen("c:\Users\Gisle\AppData\Roaming\_curlrc","rt")
+ - it breaks the build (since 6de756c9b1de34b7a1)
+ - it's not documented and not consistent across platforms
+ - the curl tool does that getenv magic
- No need for 'fopen(), 'fclose()' and a 'fopen()' yet again.
+ Bug: https://github.com/curl/curl/commit/6de756c#r38127030
+ Reported-by: Gisle Vanem
+
+ Closes #5187
-Daniel Stenberg (23 May 2019)
-- md4: include the mbedtls config.h to get the MD4 info
+Marc Hoersken (5 Apr 2020)
+- lib670: use the same Win32 API check as all other lib tests
-- md4: build correctly with openssl without MD4
+- appveyor: use random test server ports based upon APPVEYOR_API_URL
+
+ Avoid conflicts of test server ports with AppVeyor API on localhost.
- Reported-by: elsamuko at github
- Fixes #3921
- Closes #3922
+ Closes #5034
-Patrick Monnerat (23 May 2019)
-- os400: take care of CURLOPT_SASL_AUTHZID in curl_easy_setopt_ccsid().
+- appveyor: sort builds by type and add two new variants
+
+ Related to #5034 and #5063
-Daniel Stenberg (23 May 2019)
-- .github/FUNDING: mention our opencollective "home" [ci skip]
+- appveyor: show failed tests in log even if test is ignored
+
+ And print API response with newline only if there is one
-Marcel Raad (23 May 2019)
-- [Zenju brought this change]
+- appveyor: turn disabled tests into ignored result tests
- config-win32: add support for if_nametoindex and getsockname
+Daniel Stenberg (5 Apr 2020)
+- KNOWN_BUGS: fixed "USE_UNIX_SOCKETS on Windows"
- Closes https://github.com/curl/curl/pull/3923
+ Fixed with #5170 (commit 23a870f2fd041278)
-Jay Satiro (23 May 2019)
-- tests: Fix the line endings for the SASL alt-auth tests
-
- - Change data and protocol sections to CRLF line endings.
+- test1566: verify --etag-compare that gets a 304 back
- Prior to this change the tests would fail or hang, which is because
- certain sections such as protocol require CRLF line endings.
+ Verifies the fix in #5183
- Follow-up to a9499ff from today which added the tests.
-
- Ref: https://github.com/curl/curl/pull/3790
+ Closes #5186
+
+- [Kwon-Young Choi brought this change]
-Daniel Stenberg (23 May 2019)
-- url: fix bad #ifdef
+ CURLINFO_CONDITION_UNMET: return true for 304 http status code
- Regression since e91e48161235272ff485.
+ In libcurl, CURLINFO_CONDITION_UNMET is used to avoid writing to the
+ output file if the server did not transfered a file based on time
+ condition. In the same manner, getting a 304 HTTP response back from the
+ server, for example after passing a custom If-Match-* header, also
+ fulfill this condition.
- Reported-by: Tom Greenslade
- Fixes #3924
- Closes #3925
+ Fixes #5181
+ Closes #5183
-- Revert "progress: CURL_DISABLE_PROGRESS_METER"
+- [Kwon-Young Choi brought this change]
+
+ curl: allow both --etag-compare and --etag-save with same file name
+
+ This change inverse the order of processing for the --etag-compare and
+ --etag-save option to process first --etag-compare. This in turn allows
+ to use the same file name to compare and save an etag.
- This reverts commit 3b06e68b7734cb10a555f9d7e804dd5d808236a4.
+ The original behavior of not failing if the etag file does not exists is
+ conserved.
- Clearly this change wasn't good enough as it broke CURLOPT_LOW_SPEED_LIMIT +
- CURLOPT_LOW_SPEED_TIME
+ Fixes #5179
+ Closes #5180
+
+Viktor Szakats (4 Apr 2020)
+- windows: enable UnixSockets with all build toolchains
- Reported-by: Dave Reisner
+ Extend existing unix socket support in Windows builds to be
+ enabled for all toolchain vendors or versions. (Previously
+ it was only supported with certain MSVC versions + more recent
+ Windows 10 SDKs)
- Fixes #3927
- Closes #3928
+ Ref: https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
+ Ref: https://github.com/curl/curl/issues/5162
+ Closes: https://github.com/curl/curl/pull/5170
-Steve Holme (22 May 2019)
-- examples: Added SASL PLAIN authorisation identity (authzid) examples
+Daniel Stenberg (4 Apr 2020)
+- KNOWN_BUGS: Store TLS context per transfer instead of per connection
+
+ Closes #5102
-- curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool
+Marc Hoersken (3 Apr 2020)
+- sockfilt: remove redundancy in timeout handling
+
+ And update other logmsg output in select_ws on Windows.
-- sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID
+- sockfilt: fix handling of ready closed sockets on Windows
- Added the ability for the calling program to specify the authorisation
- identity (authzid), the identity to act as, in addition to the
- authentication identity (authcid) and password when using SASL PLAIN
- authentication.
+ Replace the incomplete workaround regarding FD_CLOSE
+ only signalling once by instead doing a pre-check with
+ standard select and storing the result for later use.
- Fixed #3653
- Closes #3790
+ select keeps triggering on closed sockets on Windows while
+ WSAEventSelect fires only once with data still available.
+ By doing the pre-check we do not run in a deadlock
+ due to waiting forever for another FD_CLOSE event.
-Marc Hoersken (22 May 2019)
-- tests: add support to test against OpenSSH for Windows
+- sockfilt: fix race-condition of waiting threads and event handling
- Testing against OpenSSH for Windows requires v7.7.0.0 or newer
- due to the use of AllowUsers and DenyUsers. For more info see:
- https://github.com/PowerShell/Win32-OpenSSH/wiki/sshd_config
+ Fix race-condition of waiting threads finishing while events are
+ already being processed which lead to invalid or skipped events.
+
+ Use mutex to check for one event at a time or do post-processing.
+ In addition to mutex-based locking use specific event as signal.
+
+ Closes #5156
-Daniel Stenberg (22 May 2019)
-- bump: start on the next release
+Daniel Stenberg (2 Apr 2020)
+- [Leo Neat brought this change]
-Marcel Raad (22 May 2019)
-- examples: fix "clarify calculation precedence" warnings
+ CI-fuzz: increase fuzz time to 40 minutes
- Closes https://github.com/curl/curl/pull/3919
+ Closes #5174
-- hiperfifo: remove unused variable
+Marc Hoersken (2 Apr 2020)
+- CI: increase Azure Pipelines timeouts due to performance issues
- Closes https://github.com/curl/curl/pull/3919
+ The current demand on Azure negatively impacts the CI performance.
-- examples: remove dead variable stores
-
- Closes https://github.com/curl/curl/pull/3919
+- runtests.pl: log host OS as detected by Perl environment
-- examples: reduce variable scopes
-
- Closes https://github.com/curl/curl/pull/3919
+- ftpserver.pl: log before and after data connection is closed
-- http2-download: fix format specifier
-
- Closes https://github.com/curl/curl/pull/3919
+Daniel Stenberg (1 Apr 2020)
+- RELEASE-NOTES: synced
+
+- RELEASE-PROCEDURE.md: run the copyright.pl script!
-Daniel Stenberg (22 May 2019)
-- PolarSSL: deprecate support step 1. Removed from configure.
+- vquic/ngtcp2.h: update copyright year range
- Also removed mentions from most docs.
+ Follow-up to 0736ee73d346a52
+
+- [Daiki Ueno brought this change]
+
+ CI: add build with ngtcp2 + gnutls on Travis CI
+
+- [Daiki Ueno brought this change]
+
+ vquic: add support for GnuTLS backend of ngtcp2
- Discussed: https://curl.haxx.se/mail/lib-2019-05/0045.html
+ Currently, the TLS backend used by vquic/ngtcp2.c is selected at compile
+ time. Therefore OpenSSL support needs to be explicitly disabled.
- Closes #3888
+ Signed-off-by: Daiki Ueno <dueno@redhat.com>
+ Closes #5148
-- configure/cmake: check for if_nametoindex()
+- [Gisle Vanem brought this change]
+
+ examples/sessioninfo.c: add include to fix compiler warning
- - adds the check to cmake
+ Fixes #5171
+
+- misc: copyright year updates
- - fixes the configure check to work for cross-compiled windows builds
+ Follow-up to 7a71965e9
+
+- [Harry Sintonen brought this change]
+
+ build: fixed build for systems with select() in unistd.h
- Closes #3917
+ Closes #5169
-- parse_proxy: use the IPv6 zone id if given
+- memdebug: don't log free(NULL)
- If the proxy string is given as an IPv6 numerical address with a zone
- id, make sure to use that for the connect to the proxy.
+ ... it serves no purpose and fills up the log.
+
+- cleanup: insert newline after if() conditions
- Reported-by: Edmond Yu
+ Our code style mandates we put the conditional block on a separate
+ line. These mistakes are now detected by the updated checksrc.
+
+- checksrc: warn on obvious conditional blocks on the same line as if()
- Fixes #3482
- Closes #3918
+ Closes #5164
-Version 7.65.0 (22 May 2019)
+- [Roger Orr brought this change]
-Daniel Stenberg (22 May 2019)
-- RELEASE-NOTES: 7.65.0 release
+ cmake: add CMAKE_MSVC_RUNTIME_LIBRARY
+
+ Fixes #5165
+ Closes #5167
-- THANKS: from the 7.65.0 release-notes
+- [Daiki Ueno brought this change]
-- url: convert the zone id from a IPv6 URL to correct scope id
+ ngtcp2: update to git master for the key installation API change
- Reported-by: GitYuanQu on github
- Fixes #3902
- Closes #3914
-
-- configure: detect getsockname and getpeername on windows too
+ This updates the ngtcp2 OpenSSL backend to follow the API change in
+ commit 32e703164 of ngtcp2.
- Made detection macros for these two functions in the same style as other
- functions possibly in winsock in the hope this will work better to
- detect these functions when cross-compiling for Windows.
+ Notable changes are:
+ - ngtcp2_crypto_derive_and_install_{rx,tx}_key have been added to replace
+ ngtcp2_crypto_derive_and_install_key
+ - the 'side' argument of ngtcp2_crypto_derive_and_install_initial_key
+ has been removed
- Follow-up to e91e4816123
+ Fixes #5166
+ Closes #5168
+
+- [Cyrus brought this change]
+
+ SECURITY.md: minor rephrase
- Fixes #3913
- Closes #3915
+ Closes #5158
-Marcel Raad (21 May 2019)
-- examples: remove unused variables
+- output.d: quote the URL when globbing
- Fixes Codacy/CppCheck warnings.
+ Some shells do globbing of their own unless the URL is quoted, so maybe
+ encourage this.
- Closes
+ Co-authored-by: Jay Satiro
+ Closes #5160
-Daniel Gustafsson (21 May 2019)
-- udpateconninfo: mark variable unused
+- dist: add tests/version-scan.pl to tarball
- When compiling without getpeername() or getsockname(), the sockfd
- paramter to Curl_udpateconninfo() became unused after commit e91e481612
- added ifdef guards.
+ ... used in test 1177.
- Closes #3910
- Fixes https://curl.haxx.se/dev/log.cgi?id=20190520172441-32196
- Reviewed-by: Marcel Raad, Daniel Stenberg
+ Follow-up to a97d826f6de3
+
+- test1177: verify that all the CURL_VERSION_ bits are documented
-- ftp: move ftp_ccc in under featureflag
+- curl.h: remnove CURL_VERSION_ESNI. Never supported nor documented
- Commit e91e48161235272ff485ff32bd048c53af731f43 moved ftp_ccc in under
- the FTP featureflag in the UserDefined struct, but vtls callsites were
- still using it unprotected.
+ Considered experimental and therefore we can do this.
- Closes #3912
- Fixes: https://curl.haxx.se/dev/log.cgi?id=20190520044705-29865
- Reviewed-by: Daniel Stenberg, Marcel Raad
+ Closes #5157
-Daniel Stenberg (20 May 2019)
-- curl: report error for "--no-" on non-boolean options
+- KNOWN_BUGS: DoH doesn't inherit all transfer options
- Reported-by: Olen Andoni
- Fixes #3906
- Closes #3907
+ Closes #4578
+ Closes #4579
-- [Guy Poizat brought this change]
-
- mbedtls: enable use of EC keys
+- KNOWN_BUGS: DoH leaks memory after followlocation
- Closes #3892
+ Closes #4592
-- lib1560: add tests for parsing URL with too long scheme
+- KNOWN_BUGS: "FTPS needs session reuse"
- Ref: #3905
+ Closes #4654
-- [Omar Ramadan brought this change]
+- KNOWN_BUGS: "stick to same family over SOCKS pro" is presumed fixed
- urlapi: increase supported scheme length to 40 bytes
-
- The longest currently registered URI scheme at IANA is 36 bytes long.
+- TODO: Set custom client ip when using haproxy protocol
- Closes #3905
- Closes #3900
+ Closes #5125
-Marcel Raad (20 May 2019)
-- lib: reduce variable scopes
+Michael Kaufmann (27 Mar 2020)
+- writeout_json: Fix data type issues
- Fixes Codacy/CppCheck warnings.
+ Load long values correctly (e.g. for http_code).
- Closes https://github.com/curl/curl/pull/3872
-
-- tool_formparse: remove redundant assignment
+ Use curl_off_t (not long) for:
+ - size_download (CURLINFO_SIZE_DOWNLOAD_T)
+ - size_upload (CURLINFO_SIZE_UPLOAD_T)
- Just initialize word_begin with the correct value.
+ The unit for these values is bytes/second, not microseconds:
+ - speed_download (CURLINFO_SPEED_DOWNLOAD_T)
+ - speed_upload (CURLINFO_SPEED_UPLOAD_T)
- Closes https://github.com/curl/curl/pull/3873
+ Fixes #5131
+ Closes #5152
-- ssh: move variable declaration to where it's used
-
- This way, we need only one call to free.
+Daniel Stenberg (27 Mar 2020)
+- mailmap: fixup a few author names/fields
- Closes https://github.com/curl/curl/pull/3873
+ Douglas Steinwand, Gökhan Şengün, Jessa Chandler, Julian Z and
+ Svyatoslav Mishyn
-- ssh-libssh: remove unused variable
+- version: add 'cainfo' and 'capath' to version info struct
- sock was only used to be assigned to fd_read.
+ Suggested-by: Timothe Litt
+ URL: https://curl.haxx.se/mail/lib-2020-03/0090.html
+ Reviewed-by: Jay Satiro
- Closes https://github.com/curl/curl/pull/3873
+ Closes #5150
-Daniel Stenberg (20 May 2019)
-- test332: verify the blksize fix
+- RELEASE-NOTES: synced
-- tftp: use the current blksize for recvfrom()
+Jay Satiro (26 Mar 2020)
+- SSLCERTS.md: Fix example code for setting CA cert file
+
+ Prior to this change the documentation erroneously said use
+ CURLOPT_CAPATH to set a CA cert file.
+
+ Bug: https://curl.haxx.se/mail/lib-2020-03/0121.html
+ Reported-by: Timothe Litt
- bug: https://curl.haxx.se/docs/CVE-2019-5436.html
- Reported-by: l00p3r on hackerone
- CVE-2019-5436
+ Closes https://github.com/curl/curl/pull/5151
-Daniel Gustafsson (19 May 2019)
-- version: make ssl_version buffer match for multi_ssl
+Marc Hoersken (26 Mar 2020)
+- sockfilt: add logmsg output to select_ws_wait_thread on Windows
- When running a multi TLS backend build the version string needs more
- buffer space. Make the internal ssl_buffer stack buffer match the one
- in Curl_multissl_version() to allow for the longer string. For single
- TLS backend builds there is no use in extended to buffer. This is a
- fallout from #3863 which fixes up the multi_ssl string generation to
- avoid a buffer overflow when the buffer is too small.
+ Assisted-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
- Closes #3875
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Closes #5086
-Steve Holme (18 May 2019)
-- http_ntlm_wb: Handle auth for only a single request
+Daniel Stenberg (26 Mar 2020)
+- docs/make: generate curl.1 from listed files only
- Currently when the server responds with 401 on NTLM authenticated
- connection (re-used) we consider it to have failed. However this is
- legitimate and may happen when for example IIS is set configured to
- 'authPersistSingleRequest' or when the request goes thru a proxy (with
- 'via' header).
+ Previously it rendered the page from files matching "*.d" in the correct
+ directory, which worked fine in git builds when the files were added but
+ made it easy to forget adding the files to the dist.
- Implemented by imploying an additional state once a connection is
- re-used to indicate that if we receive 401 we need to restart
- authentication.
+ Now, only man page sections listed in DPAGES in Makefile.inc will be
+ used, thus "forcing" us to update this to get the man page right and get
+ it included in the dist at the same time.
- Missed in fe6049f0.
+ Ref: #5146
+ Closes #5149
-- http_ntlm_wb: Cleanup handshake after clean NTLM failure
+- openssl: adapt to functions marked as deprecated since version 3
- Missed in 50b87c4e.
-
-- http_ntlm_wb: Return the correct error on receiving an empty auth message
+ OpenSSL 3 deprecates SSL_CTX_load_verify_locations and the MD4, DES
+ functions we use.
- Missed in fe20826b as it wasn't implemented in http.c in b4d6db83.
+ Fix the MD4 and SSL_CTX_load_verify_locations warnings.
- Closes #3894
-
-Daniel Stenberg (18 May 2019)
-- curl: make code work with protocol-disabled libcurl
+ In configure, detect OpenSSL v3 and if so, inhibit the deprecation
+ warnings. OpenSSL v3 deprecates the DES functions we use for NTLM and
+ until we rewrite the code to use non-deprecated functions we better
+ ignore these warnings as they don't help us.
- Closes #3844
+ Closes #5139
-- libcurl: #ifdef away more code for disabled features/protocols
-
-- progress: CURL_DISABLE_PROGRESS_METER
-
-- hostip: CURL_DISABLE_SHUFFLE_DNS
+- dist: add mail-rcpt-allowfails.d to the tarball
+
+ Reported-by: Maksim Stsepanenka
+ Reviewed-by: Jat Satiro
+
+ Closes #5146
-- netrc: CURL_DISABLE_NETRC
+- travis: update the ngtcp2 build to use the latest OpenSSL patch
+
+ ... which also makes it OpenSSL 1.1.1d based and not v3.
-Viktor Szakats (16 May 2019)
-- docs: Markdown and misc improvements [ci skip]
+Marc Hoersken (24 Mar 2020)
+- CI: remove default Ubuntu build from GitHub Actions
- Approved-by: Daniel Stenberg
- Closes #3896
+ We are already running a very similar Ubuntu build on Travis CI.
+ The macOS variant of this default build is kept on Github Actions.
-- docs/RELEASE-PROCEDURE: link to live iCalendar [ci skip]
+- CI: bring GitHub Actions fuzzing job in line with macOS jobs
- Ref: https://github.com/curl/curl/commit/0af41b40b2c7bd379b2251cbe7cd618e21fa0ea1#commitcomment-33563135
- Approved-by: Daniel Stenberg
- Closes #3895
+ Update YAML formatting, job naming and triggers.
-Daniel Stenberg (16 May 2019)
-- travis: add an osx http-only build
+- CI: migrate macOS jobs from Azure and Travis CI to GitHub Actions
+
+ Reduce workload on Azure Pipelines and Travis CI while
+ consolidating macOS jobs onto less utilized GitHub Actions.
+
+ Reviewed-by: Daniel Stenberg
- Closes #3887
+ Closes #5124
-- cleanup: remove FIXME and TODO comments
+Daniel Stenberg (24 Mar 2020)
+- config: remove all defines of HAVE_DES_H
- They serve very little purpose and mostly just add noise. Most of them
- have been around for a very long time. I read them all before removing
- or rephrasing them.
+ As there's no code using it.
- Ref: #3876
- Closes #3883
+ Closes #5144
-- curl: don't set FTP options for FTP-disabled builds
+- copyright: fix out-of-date copyright ranges and missing headers
- ... since libcurl has started to be totally unaware of options for
- disabled protocols they now return error.
+ Reported by the new script 'scripts/copyright.pl'. The script has a
+ regex whitelist for the files that don't need copyright headers.
- Bug: https://github.com/curl/curl/commit/c9c5304dd4747cbe75d2f24be85920d572fcb5b8#commitcomment-33533937
+ Removed three (mostly usesless) README files from docs/
- Reported-by: Marcel Raad
- Closes #3886
+ Closes #5141
+
+- packages: add OS400/chkstrings.c to the dist
+
+ Reported-by: Jon Rumsey
+ Fixes #5142
+ Closes #5143
-Steve Holme (16 May 2019)
-- http_ntlm_wb: Move the type-2 message processing into a dedicated function
+- [Clément Notin brought this change]
+
+ nghttp2: 1.12.0 required
- This brings the code inline with the other HTTP authentication mechanisms.
+ since nghttp2_session_set_local_window_size is needed
- Closes #3890
+ Closes #5140
-Daniel Stenberg (15 May 2019)
- RELEASE-NOTES: synced
-- docs/RELEASE-PROCEDURE: updated coming releases dates [ci skip]
+- [Calvin Buckley brought this change]
-- CURLOPT_READFUNCTION.3: see also CURLOPT_UPLOAD_BUFFERSIZE [ci skip]
+ OS400: Update strings for ccsid-ifier
- Reported-by: Roy Bellingan
- Bug: #3885
-
-- parse_proxy: use the URL parser API
+ Fixes build.
- As we treat a given proxy as a URL we should use the unified URL parser
- to extract the parts out of it.
-
- Closes #3878
+ Closes #5132
-Steve Holme (15 May 2019)
-- http_negotiate: Move the Negotiate state out of the negotiatedata structure
+- cirrus: make freebsd ignore the tests instead of skipping
- Given that this member variable is not used by the SASL based protocols
- there is no need to have it here.
+ To allow us to see in the CI logs how they actually behave
- Closes #3882
+ Closes #5091
-- http_ntlm: Move the NTLM state out of the ntlmdata structure
-
- Given that this member variable is not used by the SASL based protocols
- there is no need to have it here.
+- cirrus: move the sanitizer build from freebsd 13 to freebsd 12
-- url: Move the negotiate state type into a dedicated enum
+- Revert "cirrus-ci: disable the FreeBSD 13 builds"
+
+ This reverts commit 691b71be930f0e285c8f7a76efd56bbe0576cda6.
-- url: Remove duplicate clean up of the winbind variables in conn_shutdown()
+- getinfo: provide CURLINFO_HEADER_SIZE and CURLINFO_REQUEST_SIZE override
- Given that Curl_disconnect() calls Curl_http_auth_cleanup_ntlm() prior
- to calling conn_shutdown() and it in turn performs this, there is no
- need to perform the same action in conn_shutdown().
+ To let debug-builds return fake values, like in test 970.
- Closes #3881
+ Ref: #5131
+ Closes #5136
-Daniel Stenberg (14 May 2019)
-- urlapi: require a non-zero host name length when parsing URL
+- test970: improve the test
- Updated test 1560 to verify.
+ - send more data to make problems more obvious
+ - don't start the data with minus, it makes diffs harder to read
+ - skip the headers in the stdout comparison
+ - save to a file name to also verify 'filename_effective'
- Closes #3880
+ Ref: #5131
-- configure: error out if OpenSSL wasn't detected when asked for
+- CURLINFO_NUM_CONNECTS: improve accuracy
- If --with-ssl is used and configure still couldn't enable SSL this
- creates an error instead of just silently ignoring the fact.
+ The counter was not bumped in all cases correctly.
- Suggested-by: Isaiah Norton
- Fixes #3824
- Closes #3830
+ Reported-by: Marcel Raad
+ Ref: #5131
+ Closes #5135
-Daniel Gustafsson (14 May 2019)
-- imap: Fix typo in comment
+- TODO: Use "random" ports for the test servers
-Steve Holme (14 May 2019)
-- url: Remove unnecessary initialisation from allocate_conn()
-
- No need to set variables to zero as calloc() does this for us.
+- lib/curl_setup: adjust the copyright year range
- Closes #3879
+ Follow-up from d820224b8
-Daniel Stenberg (14 May 2019)
-- CURLOPT_CAINFO.3: with Schannel, you want Windows 8 or later [ci skip]
+Jay Satiro (21 Mar 2020)
+- curl_setup: define _WIN32_WINNT_[OS] symbols
- Clues-provided-by: Jay Satiro
- Clues-provided-by: Jeroen Ooms
- Fixes #3711
- Closes #3874
-
-Daniel Gustafsson (13 May 2019)
-- vtls: fix potential ssl_buffer stack overflow
+ .. because not all Windows build systems have those symbols, and even
+ those that do may be missing newer symbols (eg the Windows 7 SDK does
+ not define _WIN32_WINNT_WIN10).
- In Curl_multissl_version() it was possible to overflow the passed in
- buffer if the generated version string exceeded the size of the buffer.
- Fix by inverting the logic, and also make sure to not exceed the local
- buffer during the string generation.
+ Those symbols are used in build-time logic to decide which API to use
+ and prior to this change if the symbols were missing it would have
+ resulted in deprecated API being used when more recent functions were
+ available (eg GetVersionEx used instead of VerifyVersionInfo).
- Closes #3863
- Reported-by: nevv on HackerOne/curl
- Reviewed-by: Jay Satiro
- Reviewed-by: Daniel Stenberg
+ Reported-by: FuccDucc@users.noreply.github.com
+
+ Probably fixes https://github.com/curl/curl/issues/4995
+ Closes https://github.com/curl/curl/pull/5057
-Daniel Stenberg (13 May 2019)
-- RELEASE-NOTES: synced
+- [Ross Burton brought this change]
-- appveyor: also build "/ci" branches like travis
+ curl-functions.m4: remove inappropriate AC_REQUIRE
+
+ AC_REQUIRE means "if this macro hasn't been executed already, execute
+ it". So in a wrapper around AC_RUN_IFELSE, AC_REQUIRE(AC_RUN_IFELSE)
+ isn't correct at that will execute AC_RUN_IFELSE without any arguments.
+
+ With autoconf 2.69 this is basically a no-op, but with autoconf 2.70,
+ AC_RUN_IFELSE without a default value when cross-compiling is fatal.
+ The result is that curl with autoconf 2.70 cannot cross-compile.
+
+ Fixes https://github.com/curl/curl/issues/5126
+ Closes https://github.com/curl/curl/pull/5130
+
+Marc Hoersken (20 Mar 2020)
+- ci/tests: fix Azure Pipelines not running Windows containers
+
+ Workaround posted here: microsoft/azure-pipelines-agent#2864
+
+ Assisted-by: Simon Chalifoux
+ Assisted-by: Tommy Petty
+
+ Fixes #5117
+ Closes #5129
-- pingpong: disable more when no pingpong enabled
+Daniel Stenberg (20 Mar 2020)
+- tests: add test 430, 431 and 432 to verify the --config fix
+
+ Verify the fixes in 4e0b4fee4
-- proxy: acknowledge DISABLE_PROXY more
+- [Rici Lake brought this change]
-- parsedate: CURL_DISABLE_PARSEDATE
+ cmdline: fix handling of OperationConfig linked list (--next)
+
+ Ensures that -K/--config inserts new items at the end of the list
+ instead of overwriting the second item, and that after a -K/--config
+ option has been parsed, the option parser's view of the current config
+ is update.
+
+ Fixes #5120
+ Closes #5123
-- sasl: only enable if there's a protocol enabled using it
+Marc Hoersken (20 Mar 2020)
+- test2100: fix static port instead of dynamic value being used
-- mime: acknowledge CURL_DISABLE_MIME
+- test970: fix static ip:port instead of dynamic values being used
-- wildcard: disable from build when FTP isn't present
+Daniel Stenberg (19 Mar 2020)
+- secure transport: remove the BACKEND define kludge
+
+ Closes #5122
-- http: CURL_DISABLE_HTTP_AUTH
+- mbedtls: remove the BACKEND define kludge
-- base64: build conditionally if there are users
+- bearssl: remove the BACKEND define kludge
-- doh: CURL_DISABLE_DOH
+- wolfssl: remove the BACKEND define kludge
-Steve Holme (12 May 2019)
-- auth: Rename the various authentication clean up functions
-
- For consistency and to a avoid confusion.
-
- Closes #3869
+- nss: remove the BACKEND define kludge
-Daniel Stenberg (12 May 2019)
-- [Jay Satiro brought this change]
+- gnutls: remove the BACKEND define kludge
- docs/INSTALL: fix broken link [ci skip]
+- openssl: remove the BACKEND define kludge
- Reported-by: Joombalaya on github
- Fixes #3818
+ Use a proper variable instead to make it easier to use a debugger and
+ read the code.
-Marcel Raad (12 May 2019)
-- easy: fix another "clarify calculation precedence" warning
+Marc Hoersken (19 Mar 2020)
+- tests: make Python-based servers compatible with Python 2 and 3
- I missed this one in commit 6b3dde7fe62ea5a557fd1fd323fac2bcd0c2e9be.
-
-- build: fix "clarify calculation precedence" warnings
+ Update smbserver.py and negtelnetserver.py to be compatible with
+ Python 3 while staying backwards-compatible to support Python 2.
- Codacy/CppCheck warns about this. Consistently use parentheses as we
- already do in some places to silence the warning.
+ Fix string encoding and handling of echoed and transferred data.
- Closes https://github.com/curl/curl/pull/3866
-
-- cmake: restore C89 compatibility of CurlTests.c
+ Tested with both Python 2.7.17 and Python 3.7.7
- I broke it in d1b5cf830bfe169745721b21245d2217d2c2453e and
- 97de97daefc2ed084c91eff34af2426f2e55e134.
+ Reported-by: Daniel Stenberg
+ Assisted-by: Kamil Dudka
+ Reviewed-by: Marcel Raad
- Reported-by: Viktor Szakats
- Ref: https://github.com/curl/curl/commit/97de97daefc2ed084c91eff34af2426f2e55e134#commitcomment-33499044
- Closes https://github.com/curl/curl/pull/3868
+ Fixes #5104
+ Closes #5110
-Steve Holme (11 May 2019)
-- http_ntlm: Corrected the name of the include guard
+Daniel Stenberg (18 Mar 2020)
+- writeout_json: use curl_off_t printf() option for the time output
- Missed in f0bdd72c.
+ Follow-up to: 04c03416e68fd635a15
- Closes #3867
+ Closes #5115
-- http_digest: Don't expose functions when HTTP and Crypto Auth are disabled
+- RELEASE-NOTES: synced
- Closes #3861
-
-- http_negotiate: Don't expose functions when HTTP is disabled
+ Uh, I missed this in 1a46b218db
-Daniel Stenberg (11 May 2019)
-- SECURITY-PROCESS: fix links [ci skip]
-
-Marcel Raad (11 May 2019)
-- CMake: suppress unused variable warnings
+- RELEASE-NOTES: synced
- I missed these in commit d1b5cf830bfe169745721b21245d2217d2c2453e.
+ ... and bumped curlver.h to 7.70.0
-Daniel Stenberg (11 May 2019)
-- doh: disable DOH for the cases it doesn't work
+Jay Satiro (18 Mar 2020)
+- http2: Fix erroneous debug message that h2 connection closed
- Due to limitations in Curl_resolver_wait_resolv(), it doesn't work for
- DOH resolves. This fix disables DOH for those.
+ Prior to this change in libcurl debug builds http2 stream closure was
+ erroneously referred to as connection closure.
- Limitation added to KNOWN_BUGS.
+ Before:
+ * nread <= 0, server closed connection, bailing
- Fixes #3850
- Closes #3857
-
-Jay Satiro (11 May 2019)
-- checksrc.bat: Ignore snprintf warnings in docs/examples
+ After:
+ * nread == 0, stream closed, bailing
- .. because we allow snprintf use in docs/examples.
+ Closes https://github.com/curl/curl/pull/5118
+
+Daniel Stenberg (18 Mar 2020)
+- tool_setopt: correct the copyright year range
- Closes https://github.com/curl/curl/pull/3862
+ Follow-up to 5450428491
+
+Jay Satiro (18 Mar 2020)
+- [Johannes Schindelin brought this change]
-Steve Holme (10 May 2019)
-- vauth: Fix incorrect function description for Curl_auth_user_contains_domain()
+ schannel: add "best effort" revocation check option
- ...and misalignment of these comments. From a78c61a4.
+ - Implement new option CURLSSLOPT_REVOKE_BEST_EFFORT and
+ --ssl-revoke-best-effort to allow a "best effort" revocation check.
- Closes #3860
-
-Jay Satiro (10 May 2019)
-- Revert "multi: support verbose conncache closure handle"
+ A best effort revocation check ignores errors that the revocation check
+ was unable to take place. The reasoning is described in detail below and
+ discussed further in the PR.
- This reverts commit b0972bc.
+ ---
- - No longer show verbose output for the conncache closure handle.
+ When running e.g. with Fiddler, the schannel backend fails with an
+ unhelpful error message:
- The offending commit was added so that the conncache closure handle
- would inherit verbose mode from the user's easy handle. (Note there is
- no way for the user to set options for the closure handle which is why
- that was necessary.) Other debug settings such as the debug function
- were not also inherited since we determined that could lead to crashes
- if the user's per-handle private data was used on an unexpected handle.
+ Unknown error (0x80092012) - The revocation function was unable
+ to check revocation for the certificate.
- The reporter here says he has a debug function to capture the verbose
- output, and does not expect or want any output to stderr; however
- because the conncache closure handle does not inherit the debug function
- the verbose output for that handle does go to stderr.
+ Sadly, many enterprise users who are stuck behind MITM proxies suffer
+ the very same problem.
- There are other plausible scenarios as well such as the user redirects
- stderr on their handle, which is also not inherited since it could lead
- to crashes when used on an unexpected handle.
+ This has been discussed in plenty of issues:
+ https://github.com/curl/curl/issues/3727,
+ https://github.com/curl/curl/issues/264, for example.
- Short of allowing the user to set options for the conncache closure
- handle I don't think there's much we can safely do except no longer
- inherit the verbose setting.
+ In the latter, a Microsoft Edge developer even made the case that the
+ common behavior is to ignore issues when a certificate has no recorded
+ distribution point for revocation lists, or when the server is offline.
+ This is also known as "best effort" strategy and addresses the Fiddler
+ issue.
- Bug: https://curl.haxx.se/mail/lib-2019-05/0021.html
- Reported-by: Kristoffer Gleditsch
+ Unfortunately, this strategy was not chosen as the default for schannel
+ (and is therefore a backend-specific behavior: OpenSSL seems to happily
+ ignore the offline servers and missing distribution points).
- Ref: https://github.com/curl/curl/pull/3598
- Ref: https://github.com/curl/curl/pull/3618
+ To maintain backward-compatibility, we therefore add a new flag
+ (`CURLSSLOPT_REVOKE_BEST_EFFORT`) and a new option
+ (`--ssl-revoke-best-effort`) to select the new behavior.
- Closes https://github.com/curl/curl/pull/3856
-
-Steve Holme (10 May 2019)
-- ntlm: Fix misaligned function comments for Curl_auth_ntlm_cleanup()
+ Due to the many related issues Git for Windows and GitHub Desktop, the
+ plan is to make this behavior the default in these software packages.
- From 6012fa5a.
+ The test 2070 was added to verify this behavior, adapted from 310.
- Closes #3858
-
-Daniel Stenberg (9 May 2019)
-- BUG-BOUNTY: minor formatting fixes [ci skip]
-
-- RELEASE-NOTES: synced
+ Based-on-work-by: georgeok <giorgos.n.oikonomou@gmail.com>
+ Co-authored-by: Markus Olsson <j.markus.olsson@gmail.com>
+ Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
+
+ Closes https://github.com/curl/curl/pull/4981
-- BUG-BOUNTY.md: add the Dropbox "bonus" extra payout ability [ci skip]
+- multi: Improve parameter check for curl_multi_remove_handle
+
+ - If an easy handle is owned by a multi different from the one specified
+ then return CURLM_BAD_EASY_HANDLE.
+
+ Prior to this change I assume user error could cause corruption.
- Closes #3839
+ Closes https://github.com/curl/curl/pull/5116
-Kamil Dudka (9 May 2019)
-- http_negotiate: do not treat failure of gss_init_sec_context() as fatal
+Viktor Szakats (17 Mar 2020)
+- windows: suppress UI in all CryptAcquireContext() calls
- Fixes #3726
- Closes #3849
+ Ref: https://docs.microsoft.com/windows/win32/api/wincrypt/nf-wincrypt-cryptacquirecontexta#parameters
+ Reviewed-by: Marc Hörsken
+ Closes https://github.com/curl/curl/pull/5088
-- spnego_gssapi: fix return code on gss_init_sec_context() failure
+Daniel Stenberg (17 Mar 2020)
+- writeout_json: add missing comma to fix the HTTP version
- Fixes #3726
- Closes #3849
+ Follow-up to 04c03416e68fd635a15
-Steve Holme (9 May 2019)
-- gen_resp_file.bat: Removed unnecessary @ from all but the first command
+- test 970: verify --write-out '%{json}'
- There is need to use @ on every command once echo has been turned off.
+ Makes curl_easy_getinfo() of "variable" numerical content instead return
+ the number set in the env variable `CURL_TIME`.
- Closes #3854
-
-Jay Satiro (8 May 2019)
-- http: Ignore HTTP/2 prior knowledge setting for HTTP proxies
+ Makes curl_version() of "variable" textual content. This guarantees a
+ stable version string which can be tested against. Environment variable
+ `CURL_VERSION` defines the content.
- - Do not switch to HTTP/2 for an HTTP proxy that is not tunnelling to
- the destination host.
+ Assisted-by: Mathias Gumz
+
+- [Mathias Gumz brought this change]
+
+ writeout: support to generate JSON output
- We already do something similar for HTTPS proxies by not sending h2. [1]
+ This commit adds support to generate JSON via the writeout feature:
- Prior to this change setting CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE would
- incorrectly use HTTP/2 to talk to the proxy, which is not something we
- support (yet?). Also it's debatable whether or not that setting should
- apply to HTTP/2 proxies.
+ -w "%{json}"
- [1]: https://github.com/curl/curl/commit/17c5d05
+ It leverages the existing infrastructure as much as possible. Thus,
+ generating the JSON on STDERR is possible by:
- Bug: https://github.com/curl/curl/issues/3570
- Bug: https://github.com/curl/curl/issues/3832
+ -w "%{stderr}%{json}"
- Closes https://github.com/curl/curl/pull/3853
-
-Marcel Raad (8 May 2019)
-- travis: update mesalink build to xenial
+ This implements a variant of
+ https://github.com/curl/curl/wiki/JSON#--write-out-json.
- Closes https://github.com/curl/curl/pull/3842
+ Closes #4870
-Daniel Stenberg (8 May 2019)
-- [Ricky Leverence brought this change]
+- CI: stop ignoring 323, it is disabled
- OpenSSL: Report -fips in version if OpenSSL is built with FIPS
+- DISABLED: disable test 323
+
+ The test uses SRP to "a server not supporting it" but modern stunnel
+ versions will silently accept it and remain happy. The test is therefore
+ faulty.
- Older versions of OpenSSL report FIPS availabilty via an OPENSSL_FIPS
- define. It uses this define to determine whether to publish -fips at
- the end of the version displayed. Applications that utilize the version
- reported by OpenSSL will see a mismatch if they compare it to what curl
- reports, as curl is not modifying the version in the same way. This
- change simply adds a check to see if OPENSSL_FIPS is defined, and will
- alter the reported version to match what OpenSSL itself provides. This
- only appears to be applicable in versions of OpenSSL <1.1.1
+ I haven't figured out how to make stunnel explicitly reject SRP-using
+ connects.
- Closes #3771
+ Reported-by: Marc Hörsken
+ Fixes #5105
+ Closes #5113
-Kamil Dudka (7 May 2019)
-- [Frank Gevaerts brought this change]
+Marc Hoersken (17 Mar 2020)
+- ci/tests: increase timeouts for torture builds on Azure Pipelines
+
+ For some reason the torture builds have slowed down recently.
+
+ Reported-by: Daniel Stenberg
- nss: allow fifos and character devices for certificates.
+Daniel Stenberg (16 Mar 2020)
+- cmake: add support for building with wolfSSL
- Currently you can do things like --cert <(cat ./cert.crt) with (at least) the
- openssl backend, but that doesn't work for nss because is_file rejects fifos.
+ My working build cmdline:
- I don't actually know if this is sufficient, nss might do things internally
- (like seeking back) that make this not work, so actual testing is needed.
+ $ cmake -DCMAKE_PREFIX_PATH=$HOME/build-wolfssl -DCMAKE_USE_WOLFSSL=ON .
- Closes #3807
+ Assisted-by: Brad King
+ Closes #5095
-Daniel Gustafsson (6 May 2019)
-- test2100: Fix typos in test description
-
-Daniel Stenberg (6 May 2019)
-- ssh: define USE_SSH if SSH is enabled (any backend)
+- tool_operate: fix add_parallel_transfers when more are in queue
- Closes #3846
-
-Steve Holme (5 May 2019)
-- winbuild: Add our standard copyright header to the winbuild batch files
-
-- makedebug: Fix ERRORLEVEL detection after running where.exe
+ Trying to return early from the function if no new transfers were added
+ would break the "morep" argument and cause issues. This could lead to
+ zero content "transfers" (within quotes since they would never be
+ started) when parallel-max was reduced.
- Closes #3838
+ Reported-by: Gavin Wong
+ Analyzed-by: Jay Satiro
+ Fixes #4937
+ Closes #5112
-Daniel Stenberg (5 May 2019)
-- urlapi: add CURLUPART_ZONEID to set and get
+- vtls: free ssl_config leftovers on out-of-memory
- The zoneid can be used with IPv6 numerical addresses.
+ Torture testing 2034 and 2037 found this.
- Updated test 1560 to verify.
+ Reported-by: Marc Hörsken
+ Fixes #5108
+ Closes #5109
+
+Marc Hoersken (16 Mar 2020)
+- ci/tests: fix Azure Pipelines not running for pull requests
- Closes #3834
+ Closes #5111
-- [Taiyu Len brought this change]
+Daniel Stenberg (15 Mar 2020)
+- gskit: update the copyright year range
+
+ Follow-up from 083603c63a3
- WRITEFUNCTION: add missing set_in_callback around callback
+Marc Hoersken (15 Mar 2020)
+- gskit: use our internal select wrapper for portability
- Closes #3837
+ Follow up to c52b342
+ Closes #5106
-- RELEASE-NOTES: synced
+- tests: fix verification of stdout in test 1452 due to newline
+
+ Fixes test1452:41:1: error: missing </stdout> tag before </verify>
-- CURLMOPT_TIMERFUNCTION.3: warn about the recursive risk [ci skip]
+- ci/tests: install impacket for SMB tests on FreeBSD using CirrusCI
+
+ Also force the package index/cache to be updated before installing.
- Reported-by: Ricardo Gomes
+ Closes #5103
+
+- tests/README: add note about manually installing python-impacket
- Bug: #3537
- Closes #3836
+ Follow up to 4be2560
-- CURLOPT_CHUNK_BGN_FUNCTION.3: document the struct and time value
+Daniel Stenberg (15 Mar 2020)
+- transfer: cap retries of "dead connections" to 5
+
+ When libcurl retries a connection due to it being "seemingly dead" or by
+ REFUSED_STREAM, it will now only do it up five times before giving up,
+ to avoid never-ending loops.
- The time field in the curl_fileinfo struct will always be zero. No code
- was ever implemented to actually convert the date string to a time_t.
+ Reported-by: Dima Tisnek
+ Bug: https://curl.haxx.se/mail/lib-2020-03/0044.html
+ Closes #5074
+
+- TODO: TLS-PSK with OpenSSL
- Fixes #3829
- Closes #3835
+ Closes #5081
-- OS400/ccsidcurl.c: code style fixes
+Marc Hoersken (15 Mar 2020)
+- select: add 'timeout_ms' wrap-around precaution to Curl_select
-- OS400/ccsidcurl: replace use of Curl_vsetopt
+- select: fix 'pending_ms' is assigned a value that is never used
- (and make the code style comply)
+ Detected by Codacy
+
+- select: move duplicate select preparation code into Curl_select
- Fixes #3833
+ Reviewed by Daniel Stenberg
+ Reviewed by Marcel Raad
+ Closes #5078
-- urlapi: strip off scope id from numerical IPv6 addresses
+Daniel Stenberg (15 Mar 2020)
+- connect: happy eyeballs cleanup
- ... to make the host name "usable". Store the scope id and put it back
- when extracting a URL out of it.
+ Make sure each separate index in connn->tempaddr[] is used for a fixed
+ family (and only that family) during the connection process.
- Also makes curl_url_set() syntax check CURLUPART_HOST.
+ If family one takes a long time and family two fails immediately, the
+ previous logic could misbehave and retry the same family two address
+ repeatedly.
- Fixes #3817
- Closes #3822
+ Reported-by: Paul Vixie
+ Reported-by: Jay Satiro
+ Fixes #5083
+ Fixes #4954
+ Closes #5089
-- RELEASE-NOTES: synced
+Marc Hoersken (15 Mar 2020)
+- ci/tests: fix and align setting TFLAGS for make test-nonflaky
-- multiif.h: remove unused protos
+- ci/tests: install test suite dependencies stunnel and impacket
+
+- tests: remove python_dependencies for smbserver from our tree
- ... for functions related to pipelining. Those functions were removed in
- 2f44e94efb3df.
+ Users of the SMB tests will have to install impacket manually.
- Closes #3828
-
-- [Yiming Jing brought this change]
-
- travis: mesalink: temporarily disable test 3001
+ Reasoning: our in-tree version of impacket was quite outdated
+ and only compatible with Python 2 which is already end-of-life.
+ Upgrading to Python 3 and a compatible impacket version would
+ require to import additional Python-only and CPython-extension
+ dependencies. This would have hindered portability enormously.
- ... due to SHA-1 signatures in test certs
-
-- [Yiming Jing brought this change]
+ Closes #5094
- travis: upgrade the MesaLink TLS backend to v1.0.0
+Jay Satiro (14 Mar 2020)
+- Makefile.m32: Improve windres parameter compatibility
- Closes #3823
- Closes #3776
-
-- ConnectionExists: improve non-multiplexing use case
+ - s/COFF/coff/
- - better log output
+ Some versions of windres do not recognize uppercase COFF as a valid
+ way to specify the COFF output format.
- - make sure multiplex is enabled for it to be used
-
-- multi: provide Curl_multiuse_state to update information
+ Reported-by: Steven Penny
- As soon as a TLS backend gets ALPN conformation about the specific HTTP
- version it can now set the multiplex situation for the "bundle" and
- trigger moving potentially queued up transfers to the CONNECT state.
+ Fixes https://github.com/curl/curl/issues/5099
+ Closes https://github.com/curl/curl/pull/5101
-- process_pending_handles: mark queued transfers as previously pending
+- easy: Fix curl_easy_duphandle for builds missing IPv6 that use c-ares
- With transfers being queued up, we only move one at a a time back to the
- CONNECT state but now we mark moved transfers so that when a moved
- transfer is confirmed "successful" (it connected) it will trigger the
- move of another pending transfer. Previously, it would otherwise wait
- until the transfer was done before doing this. This makes queued up
- pending transfers get processed (much) faster.
-
-- http: mark bundle as not for multiuse on < HTTP/2 response
+ - Ignore CURLE_NOT_BUILT_IN errors returned by c-ares functions in
+ curl_easy_duphandle.
- Fixes #3813
- Closes #3815
-
-Daniel Gustafsson (1 May 2019)
-- cookie: Guard against possible NULL ptr deref
+ Prior to this change if c-ares was used as the resolver backend and
+ either it was too old or libcurl was built without IPv6 support then
+ some of our resolver functions could return CURLE_NOT_BUILT_IN to
+ curl_easy_duphandle causing it to fail.
- In case the name pointer isn't set (due to memory pressure most likely)
- we need to skip the prefix matching and reject with a badcookie to avoid
- a possible NULL pointer dereference.
+ Caused by c8f086b which shipped in 7.69.1.
- Closes #3820 #3821
- Reported-by: Jonathan Moerman
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-
-Patrick Monnerat (30 Apr 2019)
-- os400: Add CURLOPT_MAXAGE_CONN to ILE/RPG bindings
-
-Kamil Dudka (29 Apr 2019)
-- nss: provide more specific error messages on failed init
+ Reported-by: Karl Chen
- Closes #3808
-
-Daniel Stenberg (29 Apr 2019)
-- [Reed Loden brought this change]
+ Fixes https://github.com/curl/curl/issues/5097
+ Closes https://github.com/curl/curl/pull/5100
- docs: minor polish to the bug bounty / security docs
+Daniel Stenberg (13 Mar 2020)
+- docs: add warnings about FILE: URLs on Windows
- Closes #3811
+ - --url man page section
+ - libcurl-security.3 gets the full text
+ - CURLOPT_URL.3
+
+ Reported-by: Tim Sedlmeyer
-- CURL_MAX_INPUT_LENGTH: largest acceptable string input size
+- server/getpart: make the "XML-parser" stricter
- This limits all accepted input strings passed to libcurl to be less than
- CURL_MAX_INPUT_LENGTH (8000000) bytes, for these API calls:
- curl_easy_setopt() and curl_url_set().
+ When extracting a <section> <part> and there's no </part> before
+ </section>, this now outputs an error and returns a wrong string to
+ make users spot the mistake.
- The 8000000 number is arbitrary picked and is meant to detect mistakes
- or abuse, not to limit actual practical use cases. By limiting the
- acceptable string lengths we also reduce the risk of integer overflows
- all over.
+ Ref: #5070
+ Closes #5071
+
+Marc Hoersken (13 Mar 2020)
+- impacket: some more Python 3 code compatibility updates
- NOTE: This does not apply to `CURLOPT_POSTFIELDS`.
+ This makes smbserver load on Python 3, but still not work completely.
+
+- smbserver: pin Python version to 2 since we are not yet 3 compatible
- Test 1559 verifies.
+ Even though the existing code can be fixed to run on Python 3, the
+ tests will fail due to the Unicode transition the protocol is invalid.
- Closes #3805
+ Follow up to ee63837
+ Closes #5085
-- [Tseng Jun brought this change]
+Daniel Stenberg (12 Mar 2020)
+- [Viktor Szakats brought this change]
- curlver.h: use parenthesis in CURL_VERSION_BITS macro
+ cleanup: fix some text/comment typos
- Closes #3809
+ Closes #5087
-Marcel Raad (27 Apr 2019)
-- [Simon Warta brought this change]
-
- cmake: rename CMAKE_USE_DARWINSSL to CMAKE_USE_SECTRANSP
+Marc Hoersken (12 Mar 2020)
+- smbserver: fix Python version specific ConfigParser import
- Closes https://github.com/curl/curl/pull/3769
-
-Steve Holme (23 Apr 2019)
-- ntlm: Missed pre-processor || (or) during rebase for cd15acd0
+ Follow up to ee63837 and 8c7c4a6
+ Fixes #5077
-- ntlm: Support the NT response in the type-3 when OpenSSL doesn't include MD4
+Daniel Stenberg (11 Mar 2020)
+- RELEASE-NOTES: synced
- Just like we do for mbed TLS, use our local implementation of MD4 when
- OpenSSL doesn't support it. This allows a type-3 message to include the
- NT response.
+ bumped to 7.69.2
-Daniel Gustafsson (23 Apr 2019)
-- INTERNALS: fix misindentation of ToC item
+Dan Fandrich (11 Mar 2020)
+- tests/data: Fix some XML formatting issues in test cases
- Kerberos was incorrectly indented as a subsection under FTP, which is
- incorrect as they are both top level sections. A fix for this was first
- attempted in commit fef38a0898322f285401c5ff2f5e7c90dbf3be63 but that
- was a few paddles short of being complete.
+ This allows these test files to pass xmllint.
-- [Aron Bergman brought this change]
+Daniel Stenberg (11 Mar 2020)
+- [Muhammad Herdiansyah brought this change]
- INTERNALS: Add structs to ToC
+ Makefile: run the cd commands in a subshell
- Add the subsections under "Structs in libcurl" to the table of contents.
+ In bmake, if the directory is changed (with cd or anything else), bmake
+ won't return to the "root directory" on the next command (in the same
+ Makefile rule). This commit runs the cd command in a subshell so it
+ would work in bmake.
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
- Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
-
-- [Aron Bergman brought this change]
+ Closes #5073
- INTERNALS: Add code highlighting
+- configure: convert -I to -isystem as a last step
- Make all struct members under the Curl_handler section
- print in monospace font.
+ As all the -I uses in CFLAGS at that point are for system headers and
+ third party libraries this helps us remove/ignore warnings on those!
- Closes #3801
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
- Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
+ Closes #5060
-Daniel Stenberg (22 Apr 2019)
-- docs/BUG-BOUNTY: bug bounty time [skip ci]
+- configure: fix -pedantic-errors for GCC 5 and later
- Introducing the curl bug bounty program on hackerone. We now recommend
- filing security issues directly in the hackerone ticket system which
- only is readable to curl security team members.
+ If --enable-werror is used.
- Assisted-by: Daniel Gustafsson
+ Follow-up to d5c0351055d5709da which added it too early in the configure
+ script before $compiler_num was set correctly and thus this option was
+ never used.
- Closes #3488
+ Reported-by: Stepan Efremov
+ Fixes #5067
+ Closes #5068
-Steve Holme (22 Apr 2019)
-- sasl: Don't send authcid as authzid for the PLAIN mechanism as per RFC 4616
+- configure: document 'compiler_num' for gcc
+
+ The CURL_CHECK_COMPILER_GNU_C function sets the number to MAJOR*100 +
+ MINOR and ignores the patch version, and since gcc version 7 it only
+ sets it to MAJOR*100.
- RFC 4616 specifies the authzid is optional in the client authentication
- message and that the server will derive the authorisation identity
- (authzid) from the authentication identity (authcid) when not specified
- by the client.
+ Reported-by: Stepan Efremov
+ Ref: #5067
+ Closes #5069
-Jay Satiro (22 Apr 2019)
-- [Gisle Vanem brought this change]
+Version 7.69.1 (11 Mar 2020)
- memdebug: fix variable name
-
- Follow-up to 76b6348 which renamed logfile as curl_dbg_logfile.
-
- Ref: https://github.com/curl/curl/commit/76b6348#r33259088
+Daniel Stenberg (11 Mar 2020)
+- RELEASE-NOTES: 7.69.1
-Steve Holme (21 Apr 2019)
-- vauth/cleartext: Don't send the authzid if it is empty
-
- Follow up to 762a292f.
+- THANKS: from the 7.69.1 release
-Daniel Stenberg (21 Apr 2019)
-- test 196,197,198: add 'retry' keyword [skip ci]
+- [Marc Hoersken brought this change]
-- RELEASE-NOTES: synced
+ test1129: fix invalid case of closing XML-tag and Content-Length
+
+ Fixes #5070
+ Closes #5072
-- CURLOPT_MAXAGE_CONN: set the maximum allowed age for conn reuse
+Marc Hoersken (10 Mar 2020)
+- tests/data: fix static ip instead of dynamic value being used
- ... and disconnect too old ones instead of trying to reuse.
+ Follow up to 94ced8e
+
+- tests/data: fix static ip:port instead of dynamic values being used
- Default max age is set to 118 seconds.
+ Closes #5065
+
+- tests/server: fix missing use of exe_ext helper function
- Ref: #3722
- Closes #3782
+ Follow up to 9819984 and 3dce984
+ Reviewed-By: Daniel Stenberg
+ Closes #5064
+
+- runtests: log minimal and maximal used port numbers
-Daniel Gustafsson (20 Apr 2019)
-- [Po-Chuan Hsieh brought this change]
+Daniel Stenberg (9 Mar 2020)
+- [James Fuller brought this change]
- altsvc: Fix building with cookies disables
+ sftp: fix segfault regression introduced by #4747
- ALTSVC requires Curl_get_line which is defined in lib/cookie.c inside a #if
- check of HTTP and COOKIES. That makes Curl_get_line undefined if COOKIES is
- disabled. Fix by splitting out the function into a separate file which can
- be included where needed.
+ This fix adds a defensive check for the case where the char *name in
+ struct libssh2_knownhost is NULL
- Closes #3717
- Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
- Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
+ Fixes #5041
+ Closes #5062
-Daniel Stenberg (20 Apr 2019)
-- test1002: correct the name [skip ci]
+- RELEASE-NOTES: synced
-- test660: verify CONNECT_ONLY with IMAP
+- socks4: fix host resolve regression
- which basically just makes sure LOGOUT is *not* issued on disconnect
-
-- Curl_disconnect: treat all CONNECT_ONLY connections as "dead"
+ 1. The socks4 state machine was broken in the host resolving phase
- Since the connection has been used by the "outside" we don't know the
- state of it anymore and curl should not use it anymore.
+ 2. The code now insists on IPv4-only when using SOCKS4 as the protocol
+ only supports that.
- Bug: https://curl.haxx.se/mail/lib-2019-04/0052.html
+ Regression from #4907 and 4a4b63d, shipped in 7.69.0
- Closes #3795
+ Reported-by: amishmm on github
+ Bug: https://github.com/curl/curl/issues/5053#issuecomment-596191594
+ Closes #5061
-- multi: fix the statenames (follow-up fix from 2f44e94efb3df8e)
+- [Patrick Monnerat brought this change]
+
+ silly web server: silent a compilation warning
+
+ Recent gcc warns when byte count of strncpy() equals the destination
+ buffer size. Since the destination buffer is previously cleared and
+ the source string is always shorter, reducing the byte count by one
+ silents the warning without affecting the result.
- The list of names must be in sync with the defined states in the header
- file!
+ Closes #5059
-Steve Holme (16 Apr 2019)
-- openvms: Remove pre-processors for Windows as VMS cannot support them
+- [Patrick Monnerat brought this change]
-- openvms: Remove pre-processor for SecureTransport as VMS cannot support it
+ cookie: get_top_domain() sets zero length for null domains
- Fixes #3768
- Closes #3785
+ This silents a compilation warning with gcc -O3.
-Jay Satiro (16 Apr 2019)
-- TODO: Add issue link to an existing entry
-
-Daniel Stenberg (16 Apr 2019)
-- RELEASE-NOTES: synced
+- [Patrick Monnerat brought this change]
-Jay Satiro (16 Apr 2019)
-- tool_help: Warn if curl and libcurl versions do not match
-
- .. because functionality may be affected if the versions differ.
-
- This commit implements TODO 18.7 "warning if curl version is not in sync
- with libcurl version".
+ test 1560: avoid valgrind false positives
- Ref: https://github.com/curl/curl/blob/curl-7_64_1/docs/TODO#L1028-L1033
+ When using maximum code optimization level (-O3), valgrind wrongly
+ detects uses of uninitialized values in strcmp().
- Closes https://github.com/curl/curl/pull/3774
+ Preset buffers with all zeroes to avoid that.
-Steve Holme (16 Apr 2019)
-- md5: Update the function signature following d84da52d
+Steve Holme (8 Mar 2020)
+- sha256: Added WinCrypt implementation
+
+ Closed #5030
-- md5: Forgot to update the code alignment in d84da52d
+- sha256: Added SecureTransport implementation
-- md5: Return CURLcode from the internally accessible functions
+Daniel Stenberg (7 Mar 2020)
+- lib1564: reduce number of mid-wait wakeup calls
- Following 28f826b3 to return CURLE_OK instead of numeric 0.
-
-Daniel Gustafsson (15 Apr 2019)
-- tests: Run global cleanup at end of tests
+ This test does A LOT of *wakeup() calls and then calls curl_multi_poll()
+ twice. The first *poll() is then expected to return early and the second
+ not - as the first is supposed to drain the socketpair pipe.
- Make sure to run curl_global_cleanup() when shutting down the test
- suite to release any resources allocated in the SSL setup. This is
- clearly visible when running tests with PolarSSL where the thread
- lock calloc() memory which isn't released when not running cleanup.
- Below is an excerpt from the autobuild logs:
+ It turns out however that when given "excessive" amounts of writes to
+ the pipe, some operating systems (the Solaris based are known) will
+ return EAGAIN before the pipe is drained, which in our test case causes
+ the second *poll() call to also abort early.
- ==12368== 96 bytes in 1 blocks are possibly lost in loss record 1 of 2
- ==12368== at 0x4837B65: calloc (vg_replace_malloc.c:752)
- ==12368== by 0x11A76E: curl_dbg_calloc (memdebug.c:205)
- ==12368== by 0x145CDF: Curl_polarsslthreadlock_thread_setup
- (polarssl_threadlock.c:54)
- ==12368== by 0x145B37: Curl_polarssl_init (polarssl.c:865)
- ==12368== by 0x14129D: Curl_ssl_init (vtls.c:171)
- ==12368== by 0x118B4C: global_init (easy.c:158)
- ==12368== by 0x118BF5: curl_global_init (easy.c:221)
- ==12368== by 0x118D0B: curl_easy_init (easy.c:299)
- ==12368== by 0x114E96: test (lib1906.c:32)
- ==12368== by 0x115495: main (first.c:174)
+ This change attempts to avoid the OS-specific behaviors in the test by
+ reducing the amount of wakeup calls from 1234567 to 10.
- Closes #3783
- Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Reported-by: Andy Fiddaman
+ Fixes #5037
+ Closes #5058
-Marcel Raad (15 Apr 2019)
-- travis: use mbedtls from Xenial
-
- No need to build it from source anymore.
-
- Closes https://github.com/curl/curl/pull/3779
+- [Patrick Monnerat brought this change]
-- travis: use libpsl from Xenial
+ mime: fix the binary encoder to handle large data properly
- This makes building libpsl and libidn2 from source unnecessary and
- removes the need for the autopoint and libunistring-dev packages.
+ New test 666 checks this is effective.
+ As upload buffer size is significant in this kind of tests, shorten it
+ in similar test 652.
- Closes https://github.com/curl/curl/pull/3779
+ Fixes #4860
+ Closes #4833
+ Reported-by: RuurdBeerstra on github
-Daniel Stenberg (15 Apr 2019)
-- runtests: start socksd like other servers
-
- ... without a $srcdir prefix. Triggered by the failures in several
- autobuilds.
-
- Closes #3781
+- [Patrick Monnerat brought this change]
-Daniel Gustafsson (14 Apr 2019)
-- socksd: Fix typos
+ mime: do not perform more than one read in a row
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
-
-- socksd: Properly decorate static variables
+ Input buffer filling may delay the data sending if data reads are slow.
+ To overcome this problem, file and callback data reads do not accumulate
+ in buffer anymore. All other data (memory data and mime framing) are
+ considered as fast and still concatenated in buffer.
+ As this may highly impact performance in terms of data overhead, an early
+ end of part data check is added to spare a read call.
+ When encoding a part's data, an encoder may require more bytes than made
+ available by a single read. In this case, the above rule does not apply
+ and reads are performed until the encoder is able to deliver some data.
- Mark global variables static to avoid compiler warning in Clang when
- using -Wmissing-variable-declarations.
+ Tests 643, 644, 645, 650 and 654 have been adapted to the output data
+ changes, with test data size reduced to avoid the boredom of long lists of
+ 1-byte chunks in verification data.
+ New test 667 checks mimepost using single-byte read callback with encoder.
+ New test 668 checks the end of part data early detection.
- Closes #3778
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Fixes #4826
+ Reported-by: MrdUkk on github
-Steve Holme (14 Apr 2019)
-- md(4|5): Fixed indentation oddities with the importation of replacement code
+- [Patrick Monnerat brought this change]
+
+ mime: latch last read callback status.
+
+ In case a read callback returns a status (pause, abort, eof,
+ error) instead of a byte count, drain the bytes read so far but
+ remember this status for further processing.
+ Takes care of not losing data when pausing, and properly resume a
+ paused mime structure when requested.
+ New tests 670-673 check unpausing cases, with easy or multi
+ interface and mime or form api.
- The indentation from 211d5329 and 57d6d253 was a little strange as
- parts didn't align correctly, uses 4 spaces rather than 2. Checked
- the indentation of the original source so it aligns, albeit, using
- curl style.
+ Fixes #4813
+ Reported-by: MrdUkk on github
-- md5: Code style to return CURLE_OK rather than numeric 0
+Marc Hoersken (7 Mar 2020)
+- runtests: fix missing use of exe_ext helper function
-- md5: Corrected code style for some pointer arguments
+Daniel Stenberg (7 Mar 2020)
+- [Ernst Sjöstrand brought this change]
-Marcel Raad (13 Apr 2019)
-- travis: update some builds to xenial
+ ares: store dns parameters for duphandle
- Xenial comes with more up-to-date software versions and more available
- packages, some of which we currently build from source. Unfortunately,
- some builds would fail with Xenial because of assertion failures in
- Valgrind when using OpenSSL, so leave these at Trusty.
+ With c-ares the dns parameters lives in ares_channel. Store them in the
+ curl handle and set them again in easy_duphandle.
- Closes https://github.com/curl/curl/pull/3777
-
-Daniel Stenberg (13 Apr 2019)
-- test: make tests and test scripts use socksd for SOCKS
+ Regression introduced in #3228 (6765e6d), shipped in curl 7.63.0.
- Make all SOCKS tests use socksd instead of ssh.
+ Fixes #4893
+ Closes #5020
+ Signed-off-by: Ernst Sjöstrand <ernst.sjostrand@verisure.com>
-- socksd: new SOCKS 4+5 server for tests
+- version: make curl_version* thread-safe without using global context
- Closes #3752
+ Closes #5010
+
+- RELEASE-NOTES: synced
-- singleipconnect: show port in the verbose "Trying ..." message
+Marc Hoersken (7 Mar 2020)
+- tests: use native Sleep function as fallback on Windows
- To aid debugging better.
+ Reviewed-By: Daniel Stenberg
+ Closes #5054
-- [tmilburn brought this change]
+- perl: align order and completeness of Windows OS checks
- CURLOPT_ADDRESS_SCOPE: fix range check and more
+Daniel Stenberg (7 Mar 2020)
+- tool_cb_see: set correct copyright year range
- Commit 9081014 fixed most of the confusing issues between scope id and
- scope however 844896d added bad limits checking assuming that the scope
- is being set and not the scope id.
-
- I have fixed the documentation so it all refers to scope ids.
-
- In addition Curl_if2ip refered to the scope id as remote_scope_id which
- is incorrect, so I renamed it to local_scope_id.
-
- Adjusted-by: Daniel Stenberg
-
- Closes #3655
- Closes #3765
- Fixes #3713
+ Follow-up to a39e5bfb9
-- urlapi: stricter CURLUPART_PORT parsing
-
- Only allow well formed decimal numbers in the input.
+Marc Hoersken (7 Mar 2020)
+- seek: fix fallback for missing ftruncate on Windows
- Document that the number MUST be between 1 and 65535.
+ This fixes test 198 on versions of MinGW-w64 without ftruncate
- Add tests to test 1560 to verify the above.
-
- Ref: https://github.com/curl/curl/issues/3753
- Closes #3762
+ Reviewed-By: Daniel Stenberg
+ Reviewed-By: Marcel Raad
+ Closes #5055
-Jay Satiro (13 Apr 2019)
-- [Jan Ehrhardt brought this change]
+- config-win32: Windows does not have ftruncate
- winbuild: Support MultiSSL builds
+Daniel Stenberg (7 Mar 2020)
+- pause: force a connection (re-)check after unpausing
- - Remove the lines in winbuild/Makefile.vc that generate an error with
- multiple SSL backends.
+ There might be data available that was already read off the socket, for
+ example in the TLS layer.
- - Add /DCURL_WITH_MULTI_SSL in winbuild/MakefileBuild.vc if multiple SSL
- backends are set.
+ Reported-by: Anders Berg
+ Fixes #4966
+ Closes #5049
+
+- socks5: switch state properly when the resolve is done
- Closes https://github.com/curl/curl/pull/3772
+ Regression from 4a4b63d (and #4907)
+ Reported-by: vitaha85 on github
+ Fixes #5053
+ Closes #5056
-Daniel Stenberg (12 Apr 2019)
-- travis: remove mesalink builds (temporarily?)
+Jay Satiro (7 Mar 2020)
+- libssh: Fix matching user-specified MD5 hex key
+
+ Prior to this change a match would never be successful because it
+ was mistakenly coded to compare binary data from libssh to a
+ user-specified hex string (ie CURLOPT_SSH_HOST_PUBLIC_KEY_MD5).
- Since the mesalink build started to fail on travis, even though we build
- a fixed release version, we disable it to prevent it from blocking
- progress.
+ Reported-by: fds242@users.noreply.github.com
- Closes #3767
+ Fixes https://github.com/curl/curl/issues/4971
+ Closes https://github.com/curl/curl/pull/4974
-- openssl: mark connection for close on TLS close_notify
+Daniel Stenberg (6 Mar 2020)
+- pause: bail out on bad input
- Without this, detecting and avoid reusing a closed TLS connection
- (without a previous GOAWAY) when doing HTTP/2 is tricky.
+ A NULL easy handle or an easy handle without an associated connection
+ cannot be paused or unpaused.
- Reported-by: Tom van der Woerdt
- Fixes #3750
- Closes #3763
-
-- RELEASE-NOTES: synced
+ Closes #5050
-Steve Holme (11 Apr 2019)
-- vauth/cleartext: Update the PLAIN login function signature to match RFC 4616
+Steve Holme (6 Mar 2020)
+- unit1612: fixed the inclusion and compilation of the HMAC unit test
+
+ Follow up to 3f74e5e6 to fix:
- Functionally this doesn't change anything as we still use the username
- for both the authorisation identity and the authentication identity.
+ - A typo in Makefile.inc where unit1611 was used instead
+ - Some compilation issues in unit1612.c
- Closes #3757
+ Closes #5024
-Daniel Stenberg (11 Apr 2019)
-- test1906: verify CURLOPT_CURLU + CURLOPT_PORT usage
+Daniel Stenberg (6 Mar 2020)
+- pause: return early for calls that don't change pause state
- Based-on-code-by: Poul T Lomholt
+ Reviewed-by: Patrick Monnerat
+ Ref: #4833
+ Closes #5026
-- url: always clone the CUROPT_CURLU handle
+Jay Satiro (6 Mar 2020)
+- curl_share_setopt.3: Note sharing cookies doesn't enable the engine
- Since a few code paths actually update that data.
+ Follow-up to d0a7ee3 which fixed a bug in 7.66.0 that caused
+ CURL_LOCK_DATA_COOKIE to enable the easy handle's cookie engine.
- Fixes #3753
- Closes #3761
+ Bug: https://curl.haxx.se/mail/lib-2020-03/0019.html
+ Reported-by: Felipe Gasper
- Reported-by: Poul T Lomholt
+ Closes https://github.com/curl/curl/pull/5048
-- CURLOPT_DNS_USE_GLOBAL_CACHE: remove
-
- Remove the code too. The functionality has been disabled in code since
- 7.62.0. Setting this option will from now on simply be ignored and have
- no function.
+- multi: skip EINTR check on wakeup socket if it was closed
- Closes #3654
-
-Marcel Raad (11 Apr 2019)
-- travis: install libgnutls28-dev only for --with-gnutls build
+ - Don't check errno on wakeup socket if sread returned 0 since sread
+ doesn't set errno in that case.
- Reduces the time needed for the other jobs a little.
+ This is a follow-up to cf7760a from several days ago which fixed
+ Curl_multi_wait to stop busy looping sread on the non-blocking wakeup
+ socket if it was closed (ie sread returns 0). Due to a logic error it
+ was still possible to busy loop in that case if errno == EINTR.
- Closes https://github.com/curl/curl/pull/3721
+ Closes https://github.com/curl/curl/pull/5047
-- travis: install libnss3-dev only for --with-nss build
-
- Reduces the time needed for the other jobs a little.
-
- Closes https://github.com/curl/curl/pull/3721
+Daniel Stenberg (6 Mar 2020)
+- transfer: set correct copyright year range
-- travis: install libssh2-dev only for --with-libssh2 build
+- urldata: remove the 'stream_was_rewound' connectdata struct member
- Reduces the time needed for the other jobs a little.
+ ... as it is never set anywhere.
- Closes https://github.com/curl/curl/pull/3721
+ Follow-up to 2f44e94ef
+ Closes #5046
-- travis: install libssh-dev only for --with-libssh build
+- Revert "pause: force-drain the transfer on unpause"
- Reduces the time needed for the other jobs a little.
+ This reverts commit fa0216b294af4c7113a9040ca65eefc7fc18ac1c (from #5000)
- Closes https://github.com/curl/curl/pull/3721
-
-- travis: install krb5-user only for --with-gssapi build
-
- Reduces the time needed for the other jobs a little.
+ Clearly that didn't solve the problem correctly.
- Closes https://github.com/curl/curl/pull/3721
+ Reported-by: Christopher Reid
+ Reopens #4966
+ Fixes #5044
-- travis: install lcov only for the coverage job
-
- Reduces the time needed for the other jobs a little.
+- RELEASE-NOTES: synced
- Closes https://github.com/curl/curl/pull/3721
+ and bumped curlver.h
-- travis: install clang only when needed
+- MANUAL: update a dict-using command line
- This reduces the GCC job runtimes a little and it's needed to
- selectively update clang builds to xenial.
+ The 'web1913' database is now invalid, use 'gcide' instead.
+
+- KNOWN_BUGS: configure --with-gssapi with Heimdal is ignored on macOS
- Closes https://github.com/curl/curl/pull/3721
+ Closes #3841
-- AppVeyor: enable testing for WinSSL build
+- polarssl: remove more references and mentions
- Closes https://github.com/curl/curl/pull/3725
+ Assisted-by: Jay Satiro
+ Follow-up to 6357a19ff29dac04
+ Closes #5036
+
+Marc Hoersken (4 Mar 2020)
+- tests: wrap ignored test failures in braces
-- build: fix Codacy/CppCheck warnings
+- tests: align some Windows sleep defines with each other
+
+- tests: try to make sleeping portable by avoiding select
- - remove unused variables
- - declare conditionally used variables conditionally
- - suppress unused variable warnings in the CMake tests
- - remove dead variable stores
- - consistently use WIN32 macro to detect Windows
+ select does not support just waiting on Windows:
+ https://perldoc.perl.org/perlport.html#select
- Closes https://github.com/curl/curl/pull/3739
+ Reviewed-By: Daniel Stenberg
+ Closes #5035
-- polarssl_threadlock: remove conditionally unused code
-
- Make functions no-ops if neither both USE_THREADS_POSIX and
- HAVE_PTHREAD_H nor both USE_THREADS_WIN32 and HAVE_PROCESS_H are
- defined. Previously, if only one of them was defined, there was either
- code compiled that did nothing useful or the wrong header included for
- the functions used.
+Daniel Stenberg (4 Mar 2020)
+- runtests.1: rephrase how to specify what tests to run
- Also, move POLARSSL_MUTEX_T define to implementation file as it's not
- used externally.
+ Also mention the new tilde-prefixed way to ignore test results.
- Closes https://github.com/curl/curl/pull/3739
+ Reviewed-By: Marc Hoersken
+ Closes #5033
-- lib557: initialize variables
+- cirrus-ci: disable the FreeBSD 13 builds
- These variables are only conditionally initialized.
+ FreeBSD 13.0 is apparently close to a year away from a stable release
+ and has proven to cause intermittent builds failures recently.
- Closes https://github.com/curl/curl/pull/3739
+ Assisted-by: Dan Fandrich
+ Assisted-by: Fedor Korotkov
+ Fixes #5028
+ Closes #5029
-- lib509: add missing include for strdup
-
- Closes https://github.com/curl/curl/pull/3739
+Version 7.69.0 (4 Mar 2020)
+
+Daniel Stenberg (4 Mar 2020)
+- RELEASE-NOTES: 7.69.0
-- README.md: fix no-consecutive-blank-lines Codacy warning
+- THANKS: from 7.69.0
- Consistently use one blank line between blocks.
+ Now sorted case insensitive
+
+Marc Hoersken (3 Mar 2020)
+- ci/tests: fix escaping of testnames and disable proxy for CI APIs
- Closes https://github.com/curl/curl/pull/3739
+ Follow up to ada581f and c0d8b96
+ Closes #5031
-- tests/server/util: fix Windows Unicode build
+Jay Satiro (3 Mar 2020)
+- cmake: Show HTTPS-proxy in the features output
- Always use the ANSI version of FormatMessage as we don't have the
- curl_multibyte gear available here.
+ - Show HTTPS-proxy in the features output for those backends that
+ support it: OpenSSL, GnuTLS and NSS.
- Closes https://github.com/curl/curl/pull/3758
-
-Daniel Stenberg (11 Apr 2019)
-- curl_easy_getinfo.3: fix minor formatting mistake
-
-Daniel Gustafsson (11 Apr 2019)
-- xattr: skip unittest on unsupported platforms
+ Prior to this change HTTPS-proxy was missing from the cmake features
+ output even if curl was built with it. Only cmake output was affected.
+ Both the library and tool correctly reported the feature.
- The stripcredentials unittest fails to compile on platforms without
- xattr support, for example the Solaris member in the buildfarm which
- fails with the following:
+ Bug: https://curl.haxx.se/mail/lib-2020-03/0008.html
+ Reported-by: David Lopes
- CC unit1621-unit1621.o
- CC ../libtest/unit1621-first.o
- CCLD unit1621
- Undefined first referenced
- symbol in file
- stripcredentials unit1621-unit1621.o
- goto problem 2
- ld: fatal: symbol referencing errors. No output written to .libs/unit1621
- collect2: error: ld returned 1 exit status
- gmake[2]: *** [Makefile:996: unit1621] Error 1
+ Closes https://github.com/curl/curl/pull/5025
+
+Marc Hoersken (3 Mar 2020)
+- ci/tests: Make it possible to still run but ignore failing tests
- Fix by excluding the test on such platforms by using the reverse
- logic from where stripcredentials() is defined.
+ This enables the development of a solution for the failing tests by
+ running them on CI while ignoring their result for the overall status.
- Closes #3759
- Reviewed-by: Daniel Stenberg <daniel@haxx.se>
+ Closes #4994
-Steve Holme (11 Apr 2019)
-- emailL Added reference to RFC8314 for implicit TLS
+- README.md: add Azure DevOps Pipelines build status badge
-- README: Schannel, stop calling it "winssl"
+- ci/tests: Move CI test result creation above environment setup
- Stick to "Schannel" everywhere - follow up to 180501cb.
-
-Jakub Zakrzewski (10 Apr 2019)
-- cmake: clear CMAKE_REQUIRED_LIBRARIES after each use
+ This avoids using our test servers as proxy to the AppVeyor API.
- This fixes GSSAPI builds with the libraries in a non-standard location.
- The testing for recv() were failing because it failed to link
- the Kerberos libraries, which are not needed for this or subsequent
- tests.
+ Closes #5022
+
+- ci/tests: Send test results to AppVeyor for status overview
- fixes #3743
- closes #3744
+ Closes #5021
-- cmake: avoid linking executable for some tests with cmake 3.6+
+Daniel Stenberg (3 Mar 2020)
+- Revert "sha256: Added SecureTransport implementation"
- With CMAKE_TRY_COMPILE_TARGET_TYPE set to STATIC_LIBRARY, the try_compile()
- (which is used by check_c_source_compiles()) will build static library
- instead of executable. This avoids linking additional libraries in and thus
- speeds up those checks a little.
+ This reverts commit 4feb38deed33fed14ff7c370a6a9153c661dbb9c (from #4956)
- This commit also avoids #3743 (GSSAPI build errors) on itself with cmake
- 3.6 or above. That issue was fixed separately for all versions.
+ That commit broke test 1610 on macos builds without TLS.
- Ref: #3744
+ Closes #5027
-- cmake: minor cleanup
+- dist: include tests/azure.pm in the tarball
- - Remove nneeded include_regular_expression.
- It was setting what is already a default.
+ Bug: https://github.com/curl/curl/commit/ada581f2cc32f48c1629b729707ac19208435b27#commitcomment-37601589
+ Reported-by: Marcel Raad
+
+Steve Holme (3 Mar 2020)
+- configure.ac: Disable metalink if mbedTLS is specified
- - Remove duplicated include.
+ Follow up to cdcc9df1 and #5006. Even though I mentioned mbedTLS as
+ being one of the backends that metalink needs to be disabled for, I
+ seem to have included it in the list of allowed SSL/TLS backends in
+ comnfigure.ac :(
- - Don't check for pre-3.0.0 CMake version.
- We already require at least 3.0.0, so it's just clutter.
+ Closes #5013
+
+- sha256: Tidy up following recent changes
- Ref: #3744
+ Reviewed-by: Daniel Stenberg
+ Closes #4956
-Steve Holme (8 Apr 2019)
-- build-openssl.bat: Fixed support for OpenSSL v1.1.0+
+- sha256: Added WinCrypt implementation
-- build-openssl.bat: Perfer the use of if statements rather than goto (where possible)
+- sha256: Added SecureTransport implementation
-- build-openssl.bat: Perform the install for each build type directly after the build
+- sha256: Added mbedtls implementation
-- build-openssl.bat: Split the install of static and shared build types
+- sha256: Added GNU TLS gcrypt implementation
-- build-openssl.bat: Split the building of static and shared build types
+- sha256: Added GNU TLS Nettle implementation
-- build-openssl.bat: Move the installation into a separate function
+Jay Satiro (2 Mar 2020)
+- curl_escape.3: Add a link to curl_free
+
+ Ref: https://github.com/curl/curl/pull/5016#issuecomment-593628582
-- build-openssl.bat: Move the build step into a separate function
+- curl_getenv.3: Fix the memory handling description
+
+ - Tell the user to call curl_free() to free the pointer returned by
+ curl_getenv().
+
+ Prior to this change the user was directed to call free(), but that
+ would not work in cases where the library and application use separate C
+ runtimes and therefore have separate heap memory management.
+
+ Closes https://github.com/curl/curl/pull/5016
-- build-openssl.bat: Move the OpenSSL configuration into a separate function
+Daniel Stenberg (2 Mar 2020)
+- [Nick Zitzmann brought this change]
-- build-openssl.bat: Fixed the BUILD_CONFIG variable not being initialised
+ md4: use init/update/final functions in Secure Transport
+
+ We can use CC_MD4_Init/Update/Final without having to allocate memory
+ directly.
- Should the parent environment set this variable then the build might
- not be performed as the user intended.
+ Closes #4979
-Daniel Stenberg (8 Apr 2019)
-- socks: fix error message
+Marc Hoersken (2 Mar 2020)
+- ci/tests: some MacOS builds randomly take longer than 20min
-- config.d: clarify that initial : and = might need quoting [skip ci]
+Daniel Stenberg (2 Mar 2020)
+- multi_wait: stop loop when sread() returns zero
- Fixes #3738
- Closes #3749
+ It's unclear why it would ever return zero here, but this change fixes
+ Robert's problem and it shouldn't loop forever...
+
+ Reported-by: Robert Dunaj
+ Bug: https://curl.haxx.se/mail/archive-2020-02/0011.html
+ Closes #5019
-- RELEASE-NOTES: synced
+- http: mark POSTs with no body as "upload done" from the start
- bumped to 7.65.0 for next release
+ As we have logic that checks if we get a >= 400 reponse code back before
+ the upload is done, which then got confused since it wasn't "done" but
+ yet there was no data to send!
+
+ Reported-by: IvanoG on github
+ Fixes #4996
+ Closes #5002
-- socks5: user name and passwords must be shorter than 256
+- tests: disable 962, 963 and 964 on Windows
- bytes... since the protocol needs to store the length in a single byte field.
+ These tests are also doing UTF-8 SMTP.
- Reported-by: XmiliaH on github
- Fixes #3737
- Closes #3740
+ Follow-up to df207d2dd93b9e73
-- [Jakub Zakrzewski brought this change]
+Marc Hoersken (2 Mar 2020)
+- ci/tests: fine-tune Azure Pipeline timeouts with a small puffer
- test: urlapi: urlencode characters above 0x7f correctly
+Daniel Stenberg (2 Mar 2020)
+- configure: bump the AC_COPYRIGHT year range
-- [Jakub Zakrzewski brought this change]
+- [Steve Holme brought this change]
- urlapi: urlencode characters above 0x7f correctly
+ tests: disable SMTP UTF-8 tests on Windows
- fixes #3741
- Closes #3742
-
-- [Even Rouault brought this change]
+ Fixes #4988
+ Closes #4992
- multi_runsingle(): fix use-after-free
-
- Fixes #3745
- Closes #3746
-
- The following snippet
- ```
-
- int main()
- {
- CURL* hCurlHandle = curl_easy_init();
- curl_easy_setopt(hCurlHandle, CURLOPT_URL, "http://example.com");
- curl_easy_setopt(hCurlHandle, CURLOPT_PROXY, "1");
- curl_easy_perform(hCurlHandle);
- curl_easy_cleanup(hCurlHandle);
- return 0;
- }
- ```
- triggers the following Valgrind warning
-
- ```
- ==4125== Invalid read of size 8
- ==4125== at 0x4E7D1EE: Curl_llist_remove (llist.c:97)
- ==4125== by 0x4E7EF5C: detach_connnection (multi.c:798)
- ==4125== by 0x4E80545: multi_runsingle (multi.c:1451)
- ==4125== by 0x4E8197C: curl_multi_perform (multi.c:2072)
- ==4125== by 0x4E766A0: easy_transfer (easy.c:625)
- ==4125== by 0x4E76915: easy_perform (easy.c:719)
- ==4125== by 0x4E7697C: curl_easy_perform (easy.c:738)
- ==4125== by 0x4008BE: main (in /home/even/curl/test)
- ==4125== Address 0x9b3d1d0 is 1,120 bytes inside a block of size 1,600 free'd
- ==4125== at 0x4C2ECF0: free (vg_replace_malloc.c:530)
- ==4125== by 0x4E62C36: conn_free (url.c:756)
- ==4125== by 0x4E62D34: Curl_disconnect (url.c:818)
- ==4125== by 0x4E48DF9: Curl_once_resolved (hostip.c:1097)
- ==4125== by 0x4E8052D: multi_runsingle (multi.c:1446)
- ==4125== by 0x4E8197C: curl_multi_perform (multi.c:2072)
- ==4125== by 0x4E766A0: easy_transfer (easy.c:625)
- ==4125== by 0x4E76915: easy_perform (easy.c:719)
- ==4125== by 0x4E7697C: curl_easy_perform (easy.c:738)
- ==4125== by 0x4008BE: main (in /home/even/curl/test)
- ==4125== Block was alloc'd at
- ==4125== at 0x4C2F988: calloc (vg_replace_malloc.c:711)
- ==4125== by 0x4E6438E: allocate_conn (url.c:1654)
- ==4125== by 0x4E685B4: create_conn (url.c:3496)
- ==4125== by 0x4E6968F: Curl_connect (url.c:4023)
- ==4125== by 0x4E802E7: multi_runsingle (multi.c:1368)
- ==4125== by 0x4E8197C: curl_multi_perform (multi.c:2072)
- ==4125== by 0x4E766A0: easy_transfer (easy.c:625)
- ==4125== by 0x4E76915: easy_perform (easy.c:719)
- ==4125== by 0x4E7697C: curl_easy_perform (easy.c:738)
- ==4125== by 0x4008BE: main (in /home/even/curl/test)
- ```
+- formdata/mime: copyright year range update
- This has been bisected to commit 2f44e94
-
- Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14109
- Credit to OSS Fuzz
+ Due to the merge/revert cycle
-- pipelining: removed
+- Revert "mime: latch last read callback status."
- As previously planned and documented in DEPRECATE.md, all pipelining
- code is removed.
+ This reverts commit 87869e38d7afdec3ef1bb4965711458b088e254f.
- Closes #3651
-
-- [cclauss brought this change]
+ Fixes #5014
+ Closes #5015
+ Reopens #4833
- tests: make Impacket (SMB server) Python 3 compatible
+- Revert "mime: do not perform more than one read in a row"
- Closes #3731
- Fixes #3289
-
-Marcel Raad (6 Apr 2019)
-- [Simon Warta brought this change]
+ This reverts commit ed0f357f7d25566110d4302f33759f4ffb5a6f83.
- cmake: set SSL_BACKENDS
+- Revert "mime: fix the binary encoder to handle large data properly"
- This groups all SSL backends into the feature "SSL" and sets the
- SSL_BACKENDS analogue to configure.ac
+ This reverts commit b2caaa0681f329eed317ffb6ae6927f4a539f0c1.
+
+- altsvc: both h3 backends now speak h3-27
- Closes https://github.com/curl/curl/pull/3736
+ ... also updated the HTTP3 build description for ngtcp2 accordingly.
-- [Simon Warta brought this change]
+- [Patrick Monnerat brought this change]
- cmake: don't run SORT on empty list
+ mime: fix the binary encoder to handle large data properly
- In case of an empty list, SORTing leads to the cmake error "list
- sub-command SORT requires list to be present."
+ New test 666 checks this is effective.
+ As upload buffer size is significant in this kind of tests, shorten it
+ in similar test 652.
- Closes https://github.com/curl/curl/pull/3736
+ Fixes #4860
+ Reported-by: RuurdBeerstra on github
-Daniel Gustafsson (5 Apr 2019)
-- [Eli Schwartz brought this change]
+- [Patrick Monnerat brought this change]
- configure: fix default location for fish completions
+ mime: do not perform more than one read in a row
- Fish defines a vendor completions directory for completions that are not
- installed as part of the fish project itself, and the vendor completions
- are preferred if they exist. This prevents trying to overwrite the
- builtin curl.fish completion (or creating file conflicts in distro
- packaging).
+ Input buffer filling may delay the data sending if data reads are slow.
+ To overcome this problem, file and callback data reads do not accumulate
+ in buffer anymore. All other data (memory data and mime framing) are
+ considered as fast and still concatenated in buffer.
+ As this may highly impact performance in terms of data overhead, an early
+ end of part data check is added to spare a read call.
+ When encoding a part's data, an encoder may require more bytes than made
+ available by a single read. In this case, the above rule does not apply
+ and reads are performed until the encoder is able to deliver some data.
- Prefer the pkg-config defined location exported by fish, if it can be
- found, and fall back to the correct directory defined by most systems.
+ Tests 643, 644, 645, 650 and 654 have been adapted to the output data
+ changes, with test data size reduced to avoid the boredom of long lists of
+ 1-byte chunks in verification data.
+ New test 664 checks mimepost using single-byte read callback with encoder.
+ New test 665 checks the end of part data early detection.
- Closes #3723
- Reviewed-by: Daniel Gustafsson
+ Fixes #4826
+ Reported-by: MrdUkk on github
+
+- [Patrick Monnerat brought this change]
-Marcel Raad (5 Apr 2019)
-- ftplistparser: fix LGTM alert "Empty block without comment"
+ mime: latch last read callback status.
- Removing the block is consistent with line 954/957.
+ In case a read callback returns a status (pause, abort, eof,
+ error) instead of a byte count, drain the bytes read so far but
+ remember this status for further processing.
+ Takes care of not losing data when pausing, and properly resume a
+ paused mime structure when requested.
+ New tests 670-673 check unpausing cases, with easy or multi
+ interface and mime or form api.
- Closes https://github.com/curl/curl/pull/3732
+ Fixes #4813
+ Reported-by: MrdUkk on github
+ Closes #4833
-- transfer: fix LGTM alert "Comparison is always true"
+Steve Holme (1 Mar 2020)
+- unit1651: Fixed conversion compilation warning
- Just remove the redundant condition, which also makes it clear that
- k->buf is always 0-terminated if this break is not hit.
+ 371:17: warning: conversion to 'unsigned char' from 'int' may alter its
+ value [-Wconversion]
- Closes https://github.com/curl/curl/pull/3732
-
-Jay Satiro (4 Apr 2019)
-- [Rikard Falkeborn brought this change]
+ Closes #5008
- smtp: fix compiler warning
+- configure.ac: Disable metalink support if an incompatible SSL/TLS specified
- - Fix clang string-plus-int warning.
+ tool_metalink only supports cryptography from OpenSSL, GnuTLS, NSS,
+ The Win32 Crypto library and Apple's Common Crypto library.
- Clang 8 warns about adding a string to an int does not append to the
- string. Indeed it doesn't, but that was not the intention either. Use
- array indexing as suggested to silence the warning. There should be no
- functional changes.
+ If an TLS backend such as mbedTLS or WolfSSL is specified then the
+ following error is given during compilation along, with a load of
+ unresolved extern errors:
- (In other words clang warns about "foo"+2 but not &"foo"[2] so use the
- latter.)
+ Can't compile METALINK support without a crypto library.
- smtp.c:1221:29: warning: adding 'int' to a string does not append to the
- string [-Wstring-plus-int]
- eob = strdup(SMTP_EOB + 2);
- ~~~~~~~~~~~~~~~~^~~~
+ Reviewed-by: Daniel Stenberg
+ Closes #5006
+
+Marc Hoersken (1 Mar 2020)
+- ci/tests: Update Azure DevOps pipeline job display names
+
+ Make the configure step more descriptive and align others.
+
+- ci/tests: Fix typo in previous commit 597cf2
+
+- ci/tests: Make sure that the AZURE_ACCESS_TOKEN is available
- Closes https://github.com/curl/curl/pull/3729
+ For security reasons the access token is not available to PR builds.
+ Therefore we should not try to use the DevOps API with an empty token.