summaryrefslogtreecommitdiff
path: root/libs/libcurl/docs/CHANGES
diff options
context:
space:
mode:
authordartraiden <wowemuh@gmail.com>2020-06-25 10:07:52 +0300
committerdartraiden <wowemuh@gmail.com>2020-06-25 10:07:52 +0300
commit133594758488f47f6d1d6d01fcb95483526df40b (patch)
tree401bd12c0209f680812d233a87561dd65e107288 /libs/libcurl/docs/CHANGES
parent5104e6639791e5bdc688eb325550d82f05e1e8db (diff)
libcurl: update to 7.71.0
Diffstat (limited to 'libs/libcurl/docs/CHANGES')
-rw-r--r--libs/libcurl/docs/CHANGES3540
1 files changed, 1913 insertions, 1627 deletions
diff --git a/libs/libcurl/docs/CHANGES b/libs/libcurl/docs/CHANGES
index de44c16641..5061b40139 100644
--- a/libs/libcurl/docs/CHANGES
+++ b/libs/libcurl/docs/CHANGES
@@ -6,6 +6,1916 @@
Changelog
+Version 7.71.0 (23 Jun 2020)
+
+Daniel Stenberg (23 Jun 2020)
+- RELEASE-NOTES: curl 7.71.0 release
+
+- THANKS: curl 7.71.0 additions
+
+- url: make sure pushed streams get an allocated download buffer
+
+ Follow-up to c4e6968127e876b0
+
+ When a new transfer is created, as a resuly of an acknowledged push,
+ that transfer needs a download buffer allocated.
+
+ Closes #5590
+
+Jay Satiro (22 Jun 2020)
+- openssl: Don't ignore CA paths when using Windows CA store
+
+ This commit changes the behavior of CURLSSLOPT_NATIVE_CA so that it does
+ not override CURLOPT_CAINFO / CURLOPT_CAPATH, or the hardcoded default
+ locations. Instead the CA store can now be used at the same time.
+
+ The change is due to the impending release. The issue is still being
+ discussed. The behavior of CURLSSLOPT_NATIVE_CA is subject to change and
+ is now documented as experimental.
+
+ Ref: bc052cc (parent commit)
+ Ref: https://github.com/curl/curl/issues/5585
+
+- tool_operate: Don't use Windows CA store as a fallback
+
+ Background:
+
+ 148534d added CURLSSLOPT_NATIVE_CA to use the Windows OS certificate
+ store in libcurl w/ OpenSSL on Windows. CURLSSLOPT_NATIVE_CA overrides
+ CURLOPT_CAINFO if both are set. The curl tool will fall back to
+ CURLSSLOPT_NATIVE_CA if it could not find a certificate bundle to set
+ via CURLOPT_CAINFO.
+
+ Problem:
+
+ libcurl may be built with hardcoded paths to a certificate bundle or
+ directory, and if CURLSSLOPT_NATIVE_CA is used then those paths are
+ ignored.
+
+ Solution:
+
+ A solution is still being discussed but since there's an impending
+ release this commit removes using CURLSSLOPT_NATIVE_CA in the curl tool.
+
+ Ref: https://github.com/curl/curl/issues/5585
+
+- openssl: Fix CA fallback logic for OpenSSL 3.0 build
+
+ Prior to this change I assume a build error would occur when
+ CURL_CA_FALLBACK was used.
+
+ Closes https://github.com/curl/curl/pull/5587
+
+Daniel Stenberg (22 Jun 2020)
+- copyright: update mismatched copyright years
+
+- test1460: verify that -Ji is not ok
+
+- tool_getparam: -i is not OK if -J is used
+
+ Reported-by: sn on hackerone
+ Bug: https://curl.haxx.se/docs/CVE-2020-8177.html
+
+- [Peter Wu brought this change]
+
+ CMake: ignore INTERFACE_LIBRARY targets for pkg-config file
+
+ Reviewed-by: Marcel Raad
+ Fixes #5512
+ Closes #5517
+
+- [Valentyn Korniienko brought this change]
+
+ multibyte: Fixed access-> waccess to file for Windows Plarform
+
+ Reviewed-by: Marcel Raad
+ Closes #5580
+
+- altsvc: bump to h3-29
+
+ Closes #5584
+
+- urlglob: treat literal IPv6 addresses with zone IDs as a host name
+
+ ... and not as a "glob". Now done by passing the supposed host to the
+ URL parser which supposedly will do a better job at identifying "real"
+ numerical IPv6 addresses.
+
+ Reported-by: puckipedia on github
+ Fixes #5576
+ Closes #5579
+
+- test1179: verify error message for non-existing cmdline option
+
+- tool_getparam: repair the error message for unknown flag
+
+ Follow-up to 9e5669f3880674
+ Detected by Coverity CID 1464582 ("Logically dead code")
+
+ Closes #5577
+
+- FILEFORMAT: describe verify/stderr
+
+- connect: improve happy eyeballs handling
+
+ For QUIC but also for regular TCP when the second family runs out of IPs
+ with a failure while the first family is still trying to connect.
+
+ Separated the timeout handling for IPv4 and IPv6 connections when they
+ both have a number of addresses to iterate over.
+
+- ngtcp2: never call fprintf() in lib code in release version
+
+- ngtcp2: fix happy eyeballs quic connect crash
+
+ Reported-by: Peter Wu
+ Fixes #5565
+ Closes #5568
+
+- select: remove the unused ELAPSED_MS() macro
+
+ Closes #5573
+
+Marc Hoersken (17 Jun 2020)
+- [rcombs brought this change]
+
+ multi: implement wait using winsock events
+
+ This avoids using a pair of TCP ports to provide wakeup functionality
+ for every multi instance on Windows, where socketpair() is emulated
+ using a TCP socket on loopback which could in turn lead to socket
+ resource exhaustion.
+
+ Reviewed-by: Gergely Nagy
+ Reviewed-by: Marc Hörsken
+
+ Closes #5397
+
+Daniel Stenberg (17 Jun 2020)
+- manpage: add three missing environment variables
+
+ CURL_SSL_BACKEND, QLOGDIR and SSLKEYLOGFILE
+
+ Closes #5571
+
+- RELEASE-NOTES: synced
+
+- configure: for wolfSSL, check for the DES func needed for NTLM
+
+ Also adds pkg-config support for the wolfSSL detection.
+
+- [Ruurd Beerstra brought this change]
+
+ ntlm: enable NTLM support with wolfSSL
+
+ When wolfSSL is built with its OpenSSL API layer, it fetures the same DES*
+ functions that OpenSSL has. This change take advantage of that.
+
+ Co-authored-by: Daniel Stenberg
+ Closes #5556
+ Fixes #5548
+
+- http: move header storage to Curl_easy from connectdata
+
+ Since the connection can be used by many independent requests (using
+ HTTP/2 or HTTP/3), things like user-agent and other transfer-specific
+ data MUST NOT be kept connection oriented as it could lead to requests
+ getting the wrong string for their requests. This struct data was
+ lingering like this due to old HTTP1 legacy thinking where it didn't
+ mattered..
+
+ Fixes #5566
+ Closes #5567
+
+- CODE_REVIEW.md: how to do code reviews in curl
+
+ Assisted-by: Daniel Gustafsson
+ Assisted-by: Rich Salz
+ Assisted-by: Hugo van Kemenade
+ Assisted-by: James Fuller
+ Assisted-by: Marc Hörsken
+ Assisted-by: Jay Satiro
+
+ Closes #5555
+
+- altsvc: remove the num field from the altsvc struct
+
+ It was superfluous since we have the list.size alredy
+
+ Reported-by: Jay Satiro
+ Fixes #5553
+ Closes #5563
+
+- version.d: expanded and alpha-sorted
+
+ Added a few missing features not previously mentioned. Ordered them
+ alphabetically.
+
+ Closes #5558
+
+- ABI.md: rename to .md and polish the markdown
+
+ Closes #5562
+
+- HELP-US: add a section for "smaller tasks"
+
+ The point of this section is to meet the CII Best Practices gold level
+ critera:
+
+ "The project MUST clearly identify small tasks that can be performed by
+ new or casual contributors"
+
+ Closes #5560
+
+- TODO: retry on the redirected-to URL
+
+ Closes #5462
+
+- mailmap: Nicolas Sterchele
+
+- [Nicolas Sterchele brought this change]
+
+ TODO: remove 19.3 section title
+
+ Follow-up to ad6416986755e417c66e2c6, which caused wrong formatting on
+ curl documentation website
+
+ Closes #5561
+
+- [Martin V brought this change]
+
+ test1560: avoid possibly negative association in wording
+
+ Closes #5549
+
+- share: don't set the share flag it something fails
+
+ When asking for a specific feature to be shared in the share object,
+ that bit was previously set unconditionally even if the shared feature
+ failed or otherwise wouldn't work.
+
+ Closes #5554
+
+- buildconf: remove -print from the find command that removes files
+
+ It's just too annoying and unnecessary to get a long list of files shown
+
+- RELEASE-NOTES: synced
+
+- wording: avoid blacklist/whitelist stereotypes
+
+ Instead of discussing if there's value or meaning (implied or not) in
+ the colors, let's use words without the same possibly negative
+ associations.
+
+ Closes #5546
+
+Jay Satiro (9 Jun 2020)
+- tool_getparam: fix memory leak in parse_args
+
+ Prior to this change in Windows Unicode builds most parsed options would
+ not be freed.
+
+ Found using _CrtDumpMemoryLeaks().
+
+ Ref: https://github.com/curl/curl/issues/5545
+
+Daniel Stenberg (8 Jun 2020)
+- socks: detect connection close during handshake
+
+ The SOCKS4/5 state machines weren't properly terminated when the proxy
+ connection got closed, leading to a busy-loop.
+
+ Reported-By: zloi-user on github
+ Fixes #5532
+ Closes #5542
+
+- [James Fuller brought this change]
+
+ multi: add defensive check on data->multi->num_alive
+
+ Closes #5540
+
+- Curl_addrinfo: use one malloc instead of three
+
+ To reduce the amount of allocations needed for creating a Curl_addrinfo
+ struct, make a single larger malloc instead of three separate smaller
+ ones.
+
+ Closes #5533
+
+- [Alessandro Ghedini brought this change]
+
+ quiche: update SSLKEYLOGFILE support
+
+ quiche now requires the application to explicitly set the keylog path
+ for each connection, rather than reading the environment variable
+ itself.
+
+ Closes #5541
+
+- tests: add two simple tests for --login-options
+
+ Test 895 and 896 - as a follow-up to a3e972313b
+
+ Closes #5539
+
+- ngtcp2: update with recent API changes
+
+ Syncs with ngtcp2 commit 7e9a917d386d98 merged June 7 2020.
+
+ Assisted-by: Tatsuhiro Tsujikawa
+ Closes #5538
+
+- [James Fuller brought this change]
+
+ socks: remove unreachable breaks in socks.c and mime.c
+
+ Closes #5537
+
+- tool_cfgable: free login_options at exit
+
+ Memory leak
+ Reported-by: Geeknik Labs
+ Fixes #5535
+ Closes #5536
+
+- libssh2: keep sftp errors as 'unsigned long'
+
+ Remove weird work-around for storing the SFTP errors as int instead of
+ the "unsigned long" that libssh2 actually returns for SFTP errors.
+
+ Closes #5534
+
+Marc Hoersken (6 Jun 2020)
+- timeouts: move ms timeouts to timediff_t from int and long
+
+ Now that all functions in select.[ch] take timediff_t instead
+ of the limited int or long, we can remove type conversions
+ and related preprocessor checks to silence compiler warnings.
+
+ Avoiding conversions from time_t was already done in 842f73de.
+
+ Based upon #5262
+ Supersedes #5214, #5220 and #5221
+ Follow up to #5343 and #5479
+ Closes #5490
+
+Daniel Stenberg (6 Jun 2020)
+- [François Rigault brought this change]
+
+ openssl: set FLAG_TRUSTED_FIRST unconditionally
+
+ On some systems, openssl 1.0.x is still the default, but it has been
+ patched to contain all the recent security fixes. As a result of this
+ patching, it is possible for macro X509_V_FLAG_NO_ALT_CHAINS to be
+ defined, while the previous behavior of openssl to not look at trusted
+ chains first, remains.
+
+ Fix it: ensure X509_V_FLAG_TRUSTED_FIRST is always set, do not try to
+ probe for the behavior of openssl based on the existence ofmacros.
+
+ Closes #5530
+
+- server/util: fix logmsg format using curl_off_t argument
+
+ ... this caused segfaults on armv7.
+
+ Regression added in dd0365d560aea5a (7.70.0)
+
+ Reviewed-by: Jay Satiro
+ Closes #5529
+
+- RELEASE-NOTES: synced
+
+- [Cherish98 brought this change]
+
+ socks: fix expected length of SOCKS5 reply
+
+ Commit 4a4b63d forgot to set the expected SOCKS5 reply length when the
+ reply ATYP is X'01'. This resulted in erroneously expecting more bytes
+ when the request length is greater than the reply length (e.g., when
+ remotely resolving the hostname).
+
+ Closes #5527
+
+Marc Hoersken (5 Jun 2020)
+- .gitignore: add directory containing the stats repo
+
+ Since the new curl/stats repository is designed to be
+ checked out into the curl repository working tree as stats/
+ it should be on the ignore list to aid in commit staging.
+
+Daniel Stenberg (5 Jun 2020)
+- [Adnan Khan brought this change]
+
+ HTTP3.md: clarify cargo build directory
+
+ Cargo needs to be called from within the 'quiche' directory.
+
+ Closes #5522
+
+- user-agent.d: spell out what happens given a blank argument
+
+ Closes #5525
+
+- trailers: switch h1-trailer logic to use dynbuf
+
+ In the continued effort to remove "manual" realloc schemes.
+
+ Closes #5524
+
+- CURLINFO_ACTIVESOCKET.3: clarify the description
+
+ Reported-by: Jay Satiro
+ Fixes #5299
+ Closes #5520
+
+- mailmap: Don J Olmstead
+
+- configure: only strip first -L from LDFLAGS
+
+ In the logic that works out if a given OpenSSL path works, it stripped
+ off a possibly leading -L flag using an incorrect sed pattern which
+ would remove all instances of -L in the string, including if the path
+ itself contained that two-letter sequence!
+
+ The same pattern was used and is now updated in multiple places. Now it
+ only removes -L if it starts the strings.
+
+ Reported-by: Mohamed Osama
+ Fixes #5519
+ Closes #5521
+
+Peter Wu (4 Jun 2020)
+- quiche: advertise draft 28 support
+
+ Fix the verbose message while at it, quiche currently supports draft
+ 27 and draft 28 simultaneously.
+
+ Closes #5518
+
+Daniel Stenberg (4 Jun 2020)
+- KNOWN_BUGS: RTSP authentication breaks without redirect support
+
+ Closes #4750
+
+Jay Satiro (4 Jun 2020)
+- projects: Add crypt32.lib to dependencies for all OpenSSL configs
+
+ Windows project configurations that use OpenSSL with USE_WIN32_CRYPTO
+ need crypt32.
+
+ Follow-up to 148534d which added CURLSSLOPT_NATIVE_CA for 7.71.0.
+
+ The changes that are in this commit were made by script.
+
+ Ref: https://gist.github.com/jay/a1861b50ecce2b32931237180f856e28
+
+ Closes https://github.com/curl/curl/pull/5516
+
+Marc Hoersken (3 Jun 2020)
+- CI/macos: fix 'is already installed' errors by using bundle
+
+ Avoid failing CI builds due to nghttp2 being already installed.
+
+ Closes #5513
+
+Daniel Stenberg (3 Jun 2020)
+- altsvc: fix 'dsthost' may be used uninitialized in this function
+
+- RELEASE-NOTES: synced
+
+- urldata: let the HTTP method be in the set.* struct
+
+ When the method is updated inside libcurl we must still not change the
+ method as set by the user as then repeated transfers with that same
+ handle might not execute the same operation anymore!
+
+ This fixes the libcurl part of #5462
+
+ Test 1633 added to verify.
+
+ Closes #5499
+
+- hostip: fix the memory-leak introduced in 67d2802
+
+ Fixes #5503
+ Closes #5504
+
+- test970: make it require proxy support
+
+ This test verifies the -w %json output and the test case includes a full
+ generated "blob". If there's no proxy support built into libcurl, it
+ will return an error for proxy related info variables and they will not
+ be included in the json, thus causing a mismatch and this test fails.
+
+ Reported-by: Marc Hörsken
+ Fixes #5501
+ Closes #5502
+
+- [Radoslav Georgiev brought this change]
+
+ examples/http2-down/upload: add error checks
+
+ If `index.html` does not exist in the directory from which the example
+ is invoked, the fopen(upload, "rb") invocation in `setup` would fail,
+ returning NULL. This value is subsequently passed as the FILE* argument
+ of the `fread` invocation in the `read_callback` function, which is the
+ actual cause of the crash (apparently `fread` assumes that argument to
+ be non-null).
+
+ In addition, mitigate some possible crashes of similar origin.
+
+ Closes #5463
+
+- [kotoriのねこ brought this change]
+
+ examples/ephiperfifo: turn off interval when setting timerfd
+
+ Reported-by: therealhirudo on github
+ Fixes #5485
+ Closes #5497
+
+- [Saleem Abdulrasool brought this change]
+
+ vtls: repair the build with `CURL_DISABLE_PROXY`
+
+ `http_proxy` will not be available in `conndata` if `CURL_DISABLE_PROXY`
+ is enabled. Repair the build with that configuration.
+
+ Follow-up to f3d501dc67
+
+ Closes #5498
+
+- transfer: remove k->str NULL check
+
+ "Null-checking k->str suggests that it may be null, but it has already
+ been dereferenced on all paths leading to the check" - and it can't
+ legally be NULL at this point. Remove check.
+
+ Detected by Coverity CID 1463884
+
+ Closes #5495
+
+Marc Hoersken (1 Jun 2020)
+- select: always use Sleep in Curl_wait_ms on Win32
+
+ Since Win32 almost always will also have USE_WINSOCK,
+ we can reduce complexity and always use Sleep there.
+
+ Assisted-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+
+ Follow up to #5343
+ Closes #5489
+
+Daniel Stenberg (31 May 2020)
+- conncache: download buffer needs +1 size for trailing zero
+
+ Follow-up to c4e6968127e
+ Detected by OSS-Fuzz: https://oss-fuzz.com/testcase-detail/5727799779524608
+
+Marc Hoersken (31 May 2020)
+- azure: use matrix strategy to avoid configuration redundancy
+
+ This also includes the following changes:
+
+ - Use the same timeout for all jobs on Linux (60 minutes)
+ and Windows (90 minutes)
+ - Use CLI stable apt-get install -y instead of apt install
+ which warns about that and run apt-get update first
+ - Enable MQTT for Windows msys2 builds instead of
+ legacy msys1 builds
+ - Add ./configure --prefix parameter to the msys2 builds
+ - The MSYSTEM environment variable is now preset inside
+ the container images for the msys2 builds
+
+ Note: on Azure Pipelines the matrix strategy is basically
+ just a simple list of job copies and not really a matrix.
+
+ Closes #5468
+
+Daniel Stenberg (30 May 2020)
+- build: disable more code/data when built without proxy support
+
+ Added build to travis to verify
+
+ Closes #5466
+
+- url: alloc the download buffer at transfer start
+
+ ... and free it as soon as the transfer is done. It removes the extra
+ alloc when a new size is set with setopt() and reduces memory for unused
+ easy handles.
+
+ In addition: the closure_handle now doesn't use an allocated buffer at
+ all but the smallest supported size as a stack based one.
+
+ Closes #5472
+
+- timeouts: change millisecond timeouts to timediff_t from time_t
+
+ For millisecond timers we like timediff_t better. Also, time_t can be
+ unsigned so returning a negative value doesn't work then.
+
+ Closes #5479
+
+Marc Hoersken (30 May 2020)
+- select: add overflow checks for timeval conversions
+
+ Using time_t and suseconds_t if suseconds_t is available,
+ long on Windows (maybe others in the future) and int elsewhere.
+
+ Also handle case of ULONG_MAX being greater or equal to INFINITE.
+
+ Assisted-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+
+ Part of #5343
+
+- select: use timediff_t instead of time_t and int for timeout_ms
+
+ Make all functions in select.[ch] take timeout_ms as timediff_t
+ which should always be large enough and signed on all platforms
+ to take all possible timeout values and avoid type conversions.
+
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+
+ Replaces #5107 and partially #5262
+ Related to #5240 and #5286
+ Closes #5343
+
+- unit1604.c: fix implicit conv from 'SANITIZEcode' to 'CURLcode'
+
+ GCC 10 warns about this with warning: implicit conversion
+ from 'SANITIZEcode' to 'CURLcode' [-Wenum-conversion]
+
+ Since 'expected_result' is not really of type 'CURLcode' and
+ it is not exposed in any way, we can just use 'SANITIZEcode'.
+
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Marcel Raad
+
+ Closes #5476
+
+- tests/libtest: fix undefined reference to 'curlx_win32_fopen'
+
+ Since curl_setup.h now makes use of curlx_win32_fopen for Win32
+ builds with USE_WIN32_LARGE_FILES or USE_WIN32_SMALL_FILES defined,
+ we need to include the relevant files for tests using fopen,
+ because the libtest sources are also including curl_setup.h
+
+ Reviewed-by: Marcel Raad
+ Reviewed-by: Daniel Stenberg
+
+ Follow up to #3784 (ffdddb45d9)
+ Closes #5475
+
+- appveyor: add non-debug plain autotools-based build
+
+ This should enable us to catch linking issues with the
+ testsuite early, like the one described/fixed in #5475.
+
+ Reviewed-by: Daniel Stenberg
+ Reviewed-by: Marcel Raad
+
+ Closes #5477
+
+Daniel Stenberg (29 May 2020)
+- RELEASE-NOTES: synced
+
+- Revert "buildconf: use find -execdir"
+
+ This partially reverts commit c712009838f44211958854de431315586995bc61.
+
+ Keep the ares_ files removed but bring back the older way to run find,
+ to make it work with busybox's find, as apparently that's being used.
+
+ Reported-by: Max Peal
+ Fixes #5483
+ Closes #5484
+
+- server/sws: fix asan warning on use of uninitialized variable
+
+- libssh2: improved error output for wrong quote syntax
+
+ Reported-by: Werner Stolz
+
+ Closes #5474
+
+- mk-lib1521: generate code for testing BLOB options as well
+
+ Follow-up to cac5374298b3
+
+ Closes #5478
+
+- configure: repair the check if argv can be written to
+
+ Due to bad escaping of the test code, the test wouldn't build and thus
+ result in a negative test result, which would lead to the unconditional
+ assumption that overwriting the arguments doesn't work and thus curl
+ would never hide credentials given in the command line, even when it
+ would otherwise be possible.
+
+ Regression from commit 2d4c2152c (7.60.0)
+
+ Reported-by: huzunhao on github
+ Fixes #5470
+ Closes #5471
+
+Peter Wu (28 May 2020)
+- CMake: rebuild Makefile.inc.cmake when Makefile.inc changes
+
+ Otherwise the build might fail due to missing source files, as
+ demonstrated by the recent keylog.c addition on an existing build dir.
+
+ Closes #5469
+
+Daniel Stenberg (28 May 2020)
+- urldata: fix comments: Curl_done() is called multi_done() now
+
+ ... since 575e885db
+
+Peter Wu (27 May 2020)
+- ngtcp2: use common key log routine for better thread-safety
+
+ Tested with ngtcp2 built against the OpenSSL library. Additionally
+ tested with MultiSSL (NSS for TLS and ngtcp2+OpenSSL for QUIC).
+
+ The TLS backend (independent of QUIC) may or may not already have opened
+ the keylog file before. Therefore Curl_tls_keylog_open is always called
+ to ensure the file is open.
+
+- wolfssl: add SSLKEYLOGFILE support
+
+ Tested following the same curl and tshark commands as in commit
+ "vtls: Extract and simplify key log file handling from OpenSSL" using
+ WolfSSL v4.4.0-stable-128-g5179503e8 from git master built with
+ `./configure --enable-all --enable-debug CFLAGS=-DHAVE_SECRET_CALLBACK`.
+
+ Full support for this feature requires certain wolfSSL build options,
+ see "Availability note" in lib/vtls/wolfssl.c for details.
+
+ Closes #5327
+
+- vtls: Extract and simplify key log file handling from OpenSSL
+
+ Create a set of routines for TLS key log file handling to enable reuse
+ with other TLS backends. Simplify the OpenSSL backend as follows:
+
+ - Drop the ENABLE_SSLKEYLOGFILE macro as it is unconditionally enabled.
+ - Do not perform dynamic memory allocation when preparing a log entry.
+ Unless the TLS specifications change we can suffice with a reasonable
+ fixed-size buffer.
+ - Simplify state tracking when SSL_CTX_set_keylog_callback is
+ unavailable. My original sslkeylog.c code included this tracking in
+ order to handle multiple calls to SSL_connect and detect new keys
+ after renegotiation (via SSL_read/SSL_write). For curl however we can
+ be sure that a single master secret eventually becomes available
+ after SSL_connect, so a simple flag is sufficient. An alternative to
+ the flag is examining SSL_state(), but this seems more complex and is
+ not pursued. Capturing keys after server renegotiation was already
+ unsupported in curl and remains unsupported.
+
+ Tested with curl built against OpenSSL 0.9.8zh, 1.0.2u, and 1.1.1f
+ (`SSLKEYLOGFILE=keys.txt curl -vkso /dev/null https://localhost:4433`)
+ against an OpenSSL 1.1.1f server configured with:
+
+ # Force non-TLSv1.3, use TLSv1.0 since 0.9.8 fails with 1.1 or 1.2
+ openssl s_server -www -tls1
+ # Likewise, but fail the server handshake.
+ openssl s_server -www -tls1 -Verify 2
+ # TLS 1.3 test. No need to test the failing server handshake.
+ openssl s_server -www -tls1_3
+
+ Verify that all secrets (1 for TLS 1.0, 4 for TLS 1.3) are correctly
+ written using Wireshark. For the first and third case, expect four
+ matches per connection (decrypted Server Finished, Client Finished, HTTP
+ Request, HTTP Response). For the second case where the handshake fails,
+ expect a decrypted Server Finished only.
+
+ tshark -i lo -pf tcp -otls.keylog_file:keys.txt -Tfields \
+ -eframe.number -eframe.time -etcp.stream -e_ws.col.Info \
+ -dtls.port==4433,http -ohttp.desegment_body:FALSE \
+ -Y 'tls.handshake.verify_data or http'
+
+ A single connection can easily be identified via the `tcp.stream` field.
+
+Daniel Stenberg (27 May 2020)
+- FILEFORMAT: add more features that tests can depend on
+
+- [Michael Kaufmann brought this change]
+
+ transfer: close connection after excess data has been read
+
+ For HTTP 1.x, it's a protocol error when the server sends more bytes
+ than announced. If this happens, don't reuse the connection, because the
+ start position of the next response is undefined.
+
+ Closes #5440
+
+- [Estanislau Augé-Pujadas brought this change]
+
+ Revert "ssh: ignore timeouts during disconnect"
+
+ This reverts commit f31760e63b4e9ef1eb25f8f211390f8239388515. Shipped in
+ curl 7.54.1.
+
+ Bug: https://curl.haxx.se/mail/lib-2020-05/0068.html
+ Closes #5465
+
+- urldata: connect related booleans live in struct ConnectBits
+
+ And remove a few unused booleans!
+
+ Closes #5461
+
+- hostip: on macOS avoid DoH when given a numerical IP address
+
+ When USE_RESOLVE_ON_IPS is set (defined on macOS), it means that
+ numerical IP addresses still need to get "resolved" - but not with DoH.
+
+ Reported-by: Viktor Szakats
+ Fixes #5454
+ Closes #5459
+
+- ngtcp2: cleanup memory when failing to connect
+
+ Reported-by: Peter Wu
+ Fixes #5447 (the ngtcp2 side of it)
+ Closes #5451
+
+- quiche: clean up memory properly when failing to connect
+
+ Addresses the quiche side of #5447
+ Reported-by: Peter Wu
+ Closes #5450
+
+- cleanup: use a single space after equals sign in assignments
+
+- url: accept "any length" credentials for proxy auth
+
+ They're only limited to the maximum string input restrictions, not to
+ 256 bytes.
+
+ Added test 1178 to verify
+
+ Reported-by: Will Roberts
+ Fixes #5448
+ Closes #5449
+
+- [Maksim Stsepanenka brought this change]
+
+ test1167: fixes in badsymbols.pl
+
+ Closes #5442
+
+- altsvc: fix parser for lines ending with CRLF
+
+ Fixed the alt-svc parser to treat a newline as end of line.
+
+ The unit tests in test 1654 were done without CRLF and thus didn't quite
+ match the real world. Now they use CRLF as well.
+
+ Reported-by: Peter Wu
+ Assisted-by: Peter Wu
+ Assisted-by: Jay Satiro
+ Fixes #5445
+ Closes #5446
+
+Viktor Szakats (25 May 2020)
+- all: fix codespell errors
+
+ Reviewed-by: Jay Satiro
+ Reviewed-by: Daniel Stenberg
+ Closes https://github.com/curl/curl/pull/5452
+
+Peter Wu (25 May 2020)
+- ngtcp2: fix build with current ngtcp2 master implementing draft 28
+
+ Based on client.cc changes from ngtcp2. Tested with current git master,
+ ngtcp2 commit c77d5731ce92, nghttp3 commit 65ff479d4380.
+
+ Fixes #5444
+ Closes #5443
+
+Daniel Stenberg (25 May 2020)
+- RELEASE-NOTES: synced
+
+ moved the new setopts up to a "change"
+
+- RELEASE-NOTES: synced
+
+- copyright: updated year ranges out of sync
+
+ ... and whitelisted a few more files in the the copyright.pl script.
+
+- [Gilles Vollant brought this change]
+
+ setopt: add CURLOPT_PROXY_ISSUERCERT(_BLOB) for coherency
+
+ Closes #5431
+
+- curl: remove -J "informational" written on stdout
+
+ curl would previously show "curl: Saved to filename 'name from header'"
+ if -J was used and a name was picked from the Content-Disposition
+ header. That output could interfer with other stdout output, such as -w.
+
+ This commit removes that output line.
+ Bug: https://curl.haxx.se/mail/archive-2020-05/0044.html
+ Reported-by: Коваленко Анатолий Викторович
+ Closes #5435
+
+Peter Wu (22 May 2020)
+- travis: simplify quiche build instructions wrt boringssl
+
+ quiche builds boringssl as static library, reuse that instead of
+ building another shared library.
+
+ Closes #5438
+
+- configure: fix pthread check with static boringssl
+
+ A shared boringssl/OpenSSL library requires -lcrypto only for linking.
+ A static build additionally requires `-ldl -lpthread`. In the latter
+ case `-lpthread` is added to LIBS which prevented `-pthread` from being
+ added to CFLAGS. Clear LIBS to fix linking failures for libtest tests.
+
+Daniel Stenberg (22 May 2020)
+- Revert "sendf: make failf() use the mvsnprintf() return code"
+
+ This reverts commit 74623551f306990e70c7c5515b88972005604a74.
+
+ Instead mark the function call with (void). Getting the return code and
+ using it instead triggered Coverity warning CID 1463596 because
+ snprintf() can return a negative value...
+
+ Closes #5441
+
+- typecheck-gcc.h: CURLINFO_PRIVATE does not need a 'char *'
+
+ Reported-by: Billyzou0741326 on github
+ Fixes #5432
+ Closes #5436
+
+- tests/server/util.h: add extern to silence compiler warning
+
+ Follow-up from a3b0699d5c1
+
+- typecheck-gcc.h: fix the OFF_T check
+
+ The option number also needs to be less than CURLOPTTYPE_BLOB.
+
+ Follow-up to cac5374298
+ Reported-by: Jeroen Ooms
+ Bug: https://github.com/curl/curl/pull/5365#issuecomment-631084114
+
+- TODO: --dry-run
+
+ Closes #5426
+
+- TODO: Ratelimit or wait between serial requests
+
+ Closes #5406
+
+- tool_paramhlp: fixup C89 mistake
+
+ Follow-up to c5f0a9db22.
+
+- [Siva Sivaraman brought this change]
+
+ tool_paramhlp: fixed potentially uninitialized strtol() variable
+
+ Seems highly unlikely to actually be possible, but better safe than
+ sorry.
+
+ Closes #5417
+
+- [Siva Sivaraman brought this change]
+
+ tool_operate: fixed potentially uninitialized variables
+
+ ... in curl_easy_getinfo() calls. They're harmless but clearing the
+ variables makes the code safer and comforts the reader.
+
+ Closes #5416
+
+- sha256: move assign to the declaration line
+
+ Follow-up to fae30656. Should've been squashed with that commit...
+
+- [Siva Sivaraman brought this change]
+
+ sha256: fixed potentially uninitialized variable
+
+ Closes #5414
+
+- sendf: make failf() use the mvsnprintf() return code
+
+ ... and avoid a strlen() call. Fixes a MonocleAI warning.
+
+ Reported-by: MonocleAI
+ Fixes #5413
+ Closes #5420
+
+- hostip: make Curl_printable_address not return anything
+
+ It was not used much anyway and instead we let it store a blank buffer
+ in case of failure.
+
+ Reported-by: MonocleAI
+ Fixes #5411
+ Closes #5418
+
+- ftp: mark return-ignoring calls to Curl_GetFTPResponse with (void)
+
+ They're done on purpose, make that visible in the code.
+ Reported-by: MonocleAI
+ Fixes #5412
+ Closes #549
+
+- TODO: forbid TLS post-handshake auth and do TLS record padding
+
+ Closes #5396
+ Closes #5398
+
+- RELEASE-NOTES: synced
+
+- dynbuf: return NULL when there's no buffer length
+
+ ... as returning a "" is not a good idea as the string is supposed to be
+ allocated and returning a const string will cause issues.
+
+ Reported-by: Brian Carpenter
+ Follow-up to ed35d6590e72c
+ Closes #5405
+
+Peter Wu (16 May 2020)
+- travis: upgrade to bionic, clang-9, improve readability
+
+ Changes, partially to reduce build failures from external dependencies:
+ - Upgrade Ubuntu and drop unnecessary third-party repos.
+ - Properly clone apt config to ensure retries.
+ - Upgrade to clang-9 from the standard repos.
+ - Use Ubuntu 20.04 focal for the libssh build, use of ssh_get_publickey
+ fails on -Werror=deprecated-declarations in Ubuntu 18.04. Do not use
+ focal everywhere yet since Travis CI has not documented this option.
+ In focal, python-impacket (Py2.7) has been removed, leaving only
+ python3-impacket. Since it is only needed for SMB tests and not SSH,
+ skip it for the libssh job since it might need more work.
+ - apt: Remove gcc-8 and libstdc++-8-dev, already installed via g++-8.
+
+ Non-functional cleanups:
+ - Simplify test matrix, drop redundant os and compiler keys.
+ - Deprecation fixes: remove sudo, rename matrix -> jobs.
+ - Every job has an 'env' key, put this key first in a list item.
+
+ Closes #5370
+
+- travis: whitespace-only changes for consistency
+
+ Automatically apply a consistent indentation with:
+
+ python3 -c 'from ruamel.yaml import YAML;y=YAML();d=y.load(open(".travis.yml"));y.width=500;y.dump(d,open(".travis.yml.new","w"))'
+
+ followed by manually re-indenting three comments.
+
+ Closes #5370
+
+- CMake: add libssh build support
+
+ Closes #5372
+
+Daniel Stenberg (15 May 2020)
+- KNOWN_BUGS: wolfssh: publickey auth doesn't work
+
+ Closes #4820
+
+- KNOWN_BUGS: OS400 port requires deprecated IBM library
+
+ Closes #5176
+
+- [Vyron Tsingaras brought this change]
+
+ http2: keep trying to send pending frames after req.upload_done
+
+ Fixes #1410
+ Closes #5401
+
+- [Gilles Vollant brought this change]
+
+ setopt: support certificate options in memory with struct curl_blob
+
+ This change introduces a generic way to provide binary data in setopt
+ options, called BLOBs.
+
+ This change introduces these new setopts:
+
+ CURLOPT_ISSUERCERT_BLOB, CURLOPT_PROXY_SSLCERT_BLOB,
+ CURLOPT_PROXY_SSLKEY_BLOB, CURLOPT_SSLCERT_BLOB and CURLOPT_SSLKEY_BLOB.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #5357
+
+- source cleanup: remove all custom typedef structs
+
+ - Stick to a single unified way to use structs
+ - Make checksrc complain on 'typedef struct {'
+ - Allow them in tests, public headers and examples
+
+ - Let MD4_CTX, MD5_CTX, and SHA256_CTX typedefs remain as they actually
+ typedef different types/structs depending on build conditions.
+
+ Closes #5338
+
+- travis: remove the .checksrc fiddling
+
+- ftp: make domore_getsock() return the secondary socket properly
+
+ Previously, after PASV and immediately after the data connection has
+ connected, the function would only return the control socket to wait for
+ which then made the data connection simply timeout and not get polled
+ correctly. This become obvious when running test 1631 and 1632 event-
+ based.
+
+- test1632: verify FTP through HTTPS-proxy with connection re-use
+
+- test1631: verify FTP download through HTTPS-proxy
+
+- sws: as last resort, get test number from server cmd file
+
+ If it can't be found in the request. Also support --cmdfile to set it to
+ a custom file name.
+
+ runtests.pl always writes this file with the test number in it since a
+ while back.
+
+- ftp: shut down the secondary connection properly when SSL is used
+
+ Reported-by: Neal Poole
+ Fixes #5340
+ Closes #5385
+
+Marcel Raad (14 May 2020)
+- KNOWN_BUGS: adapt 5.5 to recent changes
+
+ It only applies to non-Unicode builds now.
+ Also merge 5.10 into it as it's effectively a duplicate.
+
+ Closes https://github.com/curl/curl/pull/3784
+
+- curl_setup: support Unicode functions to open files on Windows
+
+ Use them only if `_UNICODE` is defined, in which case command-line
+ arguments have been converted to UTF-8.
+
+ Closes https://github.com/curl/curl/pull/3784
+
+- tool: support UTF-16 command line on Windows
+
+ - use `wmain` instead of `main` when `_UNICODE` is defined [0]
+ - define `argv_item_t` as `wchar_t *` in this case
+ - use the curl_multibyte gear to convert the command-line arguments to
+ UTF-8
+
+ This makes it possible to pass parameters with characters outside of
+ the current locale on Windows, which is required for some tests, e.g.
+ the IDN tests. Out of the box, this currently only works with the
+ Visual Studio project files, which default to Unicode, and winbuild
+ with the `ENABLE_UNICODE` option.
+
+ [0] https://devblogs.microsoft.com/oldnewthing/?p=40643
+
+ Ref: https://github.com/curl/curl/issues/3747
+ Closes https://github.com/curl/curl/pull/3784
+
+- curl_multibyte: add to curlx
+
+ This will also be needed in the tool and tests.
+
+ Ref: https://github.com/curl/curl/pull/3758#issuecomment-482197512
+ Closes https://github.com/curl/curl/pull/3784
+
+Daniel Stenberg (14 May 2020)
+- url: make the updated credentials URL-encoded in the URL
+
+ Found-by: Gregory Jefferis
+ Reported-by: Jeroen Ooms
+ Added test 1168 to verify. Bug spotted when doing a redirect.
+ Bug: https://github.com/jeroen/curl/issues/224
+ Closes #5400
+
+- tests: add https-proxy support to the test suite
+
+ Initial test 1630 added with basic HTTPS-proxy use. HTTPS-proxy is like
+ HTTP proxy but with a full TLS connection to the proxy.
+
+ Closes #5399
+
+- mailmap: James Fuller
+
+- [Major_Tom brought this change]
+
+ vauth/cleartext: fix theoretical integer overflow
+
+ Fix theoretical integer overflow in Curl_auth_create_plain_message.
+
+ The security impact of the overflow was discussed on hackerone. We
+ agreed this is more of a theoretical vulnerability, as the integer
+ overflow would only be triggerable on systems using 32-bits size_t with
+ over 4GB of available memory space for the process.
+
+ Closes #5391
+
+Jay Satiro (13 May 2020)
+- curl.1: Quote globbed URLs
+
+ - Quote the globbing example URLs that contain characters [] {} since
+ otherwise they may be interpreted as shell metacharacters.
+
+ Bug: https://github.com/curl/curl/issues/5388
+ Reported-by: John Simpson
+
+ Closes https://github.com/curl/curl/pull/5394
+
+Daniel Stenberg (14 May 2020)
+- checksrc: enhance the ASTERISKSPACE and update code accordingly
+
+ Fine: "struct hello *world"
+
+ Not fine: "struct hello* world" (and variations)
+
+ Closes #5386
+
+- docs/options-in-versions: which version added each cmdline option
+
+ Added test 971 to verify that the list is in sync with the files in
+ cmdline-opts. The check also verifies that .d-files that uses Added:
+ specify the same version number as the options-in-versions file does.
+
+ Closes #5381
+
+- docs: unify protocol lists
+
+ We boast support for 25 transfer protocols. Make sure the lists are
+ consistent
+
+ Closes #5384
+
+- OpenSSL: have CURLOPT_CRLFILE imply CURLSSLOPT_NO_PARTIALCHAIN
+
+ ... to avoid an OpenSSL bug that otherwise makes the CRL check to fail.
+
+ Reported-by: Michael Kaufmann
+ Fixes #5374
+ Closes #5376
+
+- tls13-ciphers.d: shorten the Arg
+
+- sasl-authzid.d: add Arg: and shorten the desc
+
+- cert-type.d: mention the available types in the desc
+
+- tool: shorten 3 --help descriptions
+
+ --happy-eyeballs-timeout-ms, --resolve and --ssl-revoke-best-effort
+
+ gen.pl already warned about these lines but we didn't listen
+
+ Closes #5379
+
+- configure: the wolfssh backend does not provide SCP
+
+ Closes #5387
+
+- RELEASE-NOTES: synced
+
+- 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
+
+- list-only.d: this option existed already in 4.0
+
+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
+
+- [denzor brought this change]
+
+ easy: fix dangling pointer on easy_perform fail
+
+ Closes https://github.com/curl/curl/pull/5363
+
+- tool: Add option --retry-all-errors to retry on any error
+
+ The "sledgehammer" of retrying.
+
+ Closes https://github.com/curl/curl/pull/5185
+
+Daniel Stenberg (12 May 2020)
+- [James Le Cuirot brought this change]
+
+ libcurl.pc: Merge Libs.private into Libs for static-only builds
+
+ 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.
+
+ Consider that this is what the Meson build system does when it
+ generates pkg-config files.
+
+ 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
+
+- [Peter Wu brought this change]
+
+ 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
+
+- [Peter Wu brought this change]
+
+ CMake: do not build test programs by default
+
+ 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.
+
+ Closes #5368
+
+- FILEFORMAT: moved up the variables section and further polished
+
+- runtests: remove ftp2 support, not used
+
+ We once supported two separate ftp instances in the test suite. Has not
+ been used the last decade.
+
+ Closes #5375
+
+- 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.
+
+ "Popularity" based on the 2019 user survey.
+
+ Closes #5377
+
+Marc Hoersken (11 May 2020)
+- test1238: avoid tftpd being busy for tests shortly following
+
+ 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.
+
+ 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.
+
+ Therefore we will now just kill the tftpd server after test
+ 1238 to make sure that the following tests are not affected.
+
+ This enables us to no longer ignore tests 1242, 1243, 2002
+ and 2003 on the CI platforms CirrusCI and AppVeyor.
+
+ Assisted-by: Peter Wu
+ Closes #5364
+
+Daniel Stenberg (11 May 2020)
+- write-out.d: added "response_code"
+
+- KNOWN_BUGS: Build with staticly built dependency
+
+ I rewrote the item 5.4 to be more generic about static dependencies.
+
+- ROADMAP: remove old entries
+
+ MQTT - the start has already landed
+
+ tiny-curl - also mostly landed and is a continuous work
+
+ make menuconfig - basically no interest from users, not pushing there
+
+- [Peter Wu brought this change]
+
+ travis: Add ngtcp2 and quiche tests for CMake
+
+ 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.
+
+- [Peter Wu brought this change]
+
+ CMake: add ENABLE_ALT_SVC option
+
+ 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)
+
+ Add three new CMake Find modules (using the curl license, but I grant
+ others the right to apply the CMake BSD license instead).
+
+ 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.
+
+ 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.
+
+ 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 #5359
+
+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.
+
+ 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
+
+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
+
+Marc Hoersken (9 May 2020)
+- appveyor: update comments to be clear about toolchain
+
+ - CMake-based MSYS builds use mingw-w64 to cross-compile.
+ - autotools-based builds are compiled using msys2-devel.
+
+ The difference is that the later ones are not cross-compiled
+ to Windows and instead require the msys2 runtime to be present.
+
+ At the moment only the Azure Pipelines CI builds actually
+ run autotools-based cross-compilation builds for Windows.
+
+- TODO: update regarding missing Schannel features
+
+ Some aspects have already been implemented over the years.
+
+ 15.1 Client certificates are now supported:
+
+ - System stores via e35b0256eb34f1fe562e3e2a2615beb50a391c52
+ - PKCS#12 files via 0fdf96512613574591f501d63fe49495ba40e1d5
+
+ 15.2 Ciphers can now be specified through:
+
+ - Algorithms via 9aefbff30d280c60fc9d8cc3e0b2f19fc70a2f28
+
+ Reviewed-by: Daniel Stenberg and Marcel Raad
+ Closes #5358
+
+Daniel Stenberg (8 May 2020)
+- checksrc: close the .checksrc file handle when done reading
+
+- RELEASE-NOTES: synced
+
+ And bumped next version to 7.71.0
+
+- [Gilles Vollant brought this change]
+
+ CURLOPT_SSL_OPTIONS: add *_NATIVE_CA to use Windows CA store (with openssl)
+
+ Closes #4346
+
+- TODO: native IDN support on macOS
+
+- urlapi: accept :: as a valid IPv6 address
+
+ Text 1560 is extended to verify.
+
+ Reported-by: Pavel Volgarev
+ Fixes #5344
+ Closes #5351
+
+- THANKS-filter: Peter Wang
+
+- [Peter Wang brought this change]
+
+ *_sspi: fix bad uses of CURLE_NOT_BUILT_IN
+
+ Return CURLE_AUTH_ERROR instead of CURLE_NOT_BUILT_IN for other
+ instances of QuerySecurityPackageInfo failing, as in
+ commit 2a81439553286f12cd04a4bdcdf66d8e026d8201.
+
+ Closes #5355
+
+- docs/HTTP3: add qlog to the quiche build instruction
+
+- ngtcp2: introduce qlog support
+
+ If the QLOGDIR environment variable is set, enable qlogging.
+
+ ... and create Curl_qlogdir() in the new generic vquic/vquic.c file for
+ QUIC functions that are backend independent.
+
+ Closes #5353
+
+- ntlm_sspi: fix bad use of CURLE_NOT_BUILT_IN
+
+ 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.
+
+ Reported-by: wangp on github
+ Fixes #5349
+ Closes #5350
+
+- runtests: show elapsed test time with higher precision (ms)
+
+- RELEASE-NOTES: synced
+
+- http2: simplify and clean up trailer handling
+
+ 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.
+
+ Deliver the trailer header to the callback already at receive-time. No
+ longer caches the trailers to get delivered at end of stream.
+
+ Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=22030
+ Closes #5348
+
+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.
+
+- appveyor: disable flaky test 1501 and ignore broken 1056
+
+ 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.
+
+ Test 1056 is broken in autotools-based Windows builds due
+ to scope ID support missing in these builds at the moment.
+
+- test613.pl: make tests 613 and 614 work with OpenSSH for Windows
+
+ 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.
+
+ Reviewed-by: Daniel Stenberg
+ Closes #5328
+
+Daniel Stenberg (6 May 2020)
+- runtests: set +x mode again
+
+- libssh2: convert over to use dynbuf
+
+ 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 #5336
+
+- travis: add "qlog" as feature in the quiche build
+
+- quiche: enable qlog output
+
+ 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.
+
+ 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.
+
+ Co-authored-by: Lucas Pardue
+ Replaces #5337
+ Closes #5341
+
+- urldata.h: remove #define HEADERSIZE, not used anymore
+
+ Follow-up to ed35d6590e72c
+
+- ngtcp2: convert to dynbuf
+
+ Closes #5335
+
+- connect: make happy eyeballs work for QUIC (again)
+
+ Follow-up from dbd16c3e256c6c (regression in 7.70.0)
+
+ Closes #5334
+
+- 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.
+
+- dynbuf: introduce internal generic dynamic buffer functions
+
+ 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.
+
+ In my early basic testing, the total number of allocations seem at
+ roughly the same amount as before, possibly a few less.
+
+ See docs/DYNBUF.md for a description of the API.
+
+ Closes #5300
+
+- 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
+
+- asyn-*: remove support for never-used NULL entry pointers
+
+ ... and instead convert those to asserts to make sure they are truly
+ never NULL.
+
+ Closes #5324
+
+- [Emil Engler brought this change]
+
+ doc: Rename VERSIONS to VERSIONS.md as it already has Markdown syntax
+
+ Closes #5325
+
+Jay Satiro (2 May 2020)
+- asyn-thread: fix cppcheck warning
+
+ - Check for NULL entry parameter before attempting to deref entry in
+ Curl_resolver_is_resolved, like is already done in asyn-ares.
+
+ 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.
+
+ Reported-by: rl1987@users.noreply.github.com
+
+ Fixes https://github.com/curl/curl/issues/5326
+
+- select: fix overflow protection in Curl_socket_check
+
+ Follow-up to a96c752 which changed the timeout_ms type from time_t to
+ timediff_t.
+
+ Ref: https://github.com/curl/curl/pull/5240
+
+ Closes https://github.com/curl/curl/pull/5286
+
+Marc Hoersken (2 May 2020)
+- sockfilt: make select_ws stop waiting on exit signal event
+
+ This makes sure that select_ws behaves similar to real select
+ which stops waiting on a signal handler being triggered.
+
+ This makes it possible to gracefully stop sockfilt.exe on
+ Windows with taskkill /IM sockfilt.exe (without /F force flag).
+
+ Reviewed-by: Jay Satiro
+ Part of #5260
+
+- tests/server/util.[ch]: add exit event to stop waiting on Windows
+
+ 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.
+
+ Reviewed-by: Jay Satiro
+ Closes #5260
+
+- tests/server/util.c: fix thread handle not being closed
+
+ Reviewed-by: Jay Satiro
+ Part of #5260
+
+- tests/server/util.c: use raise instead of calling signal handler
+
+ Use raise to trigger signal handler instead of calling it
+ directly and causing potential unexpected control flow.
+
+ Reviewed-by: Jay Satiro
+ Part of #5260
+
+- tests: add support for SSH server variant specific transfer paths
+
+ 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
+
+- libssh2: set the expected total size in SCP upload init
+
+ ... as otherwise the progress callback gets called without that
+ information, making the progress meter have less info.
+
+ Reported-by: Murugan Balraj
+ Bug: https://curl.haxx.se/mail/archive-2020-05/0000.html
+ Closes #5317
+
+- runtests: make the logmsg from the ssh server only show in verbose
+
+- tests: make test 1248 + 1249 use %NOLISTENPORT
+
+ ... instead of a port of a non-running server so that it works
+ stand-alone.
+
+ Closes #5318
+
+- examples: remove asiohiper.cpp
+
+ 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 #5090
+ Closes #5322
+
+- [Emil Engler brought this change]
+
+ doc: add missing closing parenthesis in CURLINFO_SSL_VERIFYRESULT.3
+
+ Closes #5320
+
+- [Emil Engler brought this change]
+
+ KNOWN_BUGS: Remove "curl --upload-file . hang if delay in STDIN"
+
+ It was fixed in 9a2cbf3
+
+ Closes #5319
+
+- cirrus: disable SFTP and SCP tests
+
+ ... 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.
+
+ Closes #5315
+
+- [Emil Engler brought this change]
+
+ runtests: fix typo in the existence of disabled tests checker
+
+ Closes #5316
+
+Dan Fandrich (30 Apr 2020)
+- test75: Remove precheck test
+
+ This has not been needed since commit 9fa42bed and often prevents it
+ from running at all with dynamic test ports.
+
+- tests: Stop referring to server ports when they're not used
+
+ 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.
+
+Daniel Stenberg (30 Apr 2020)
+- [Emil Engler brought this change]
+
+ GnuTLS: Backend support for CURLINFO_SSL_VERIFYRESULT
+
+ Closes #5287
+
+- conncache: various concept cleanups
+
+ More connection cache accesses are protected by locks.
+
+ CONNCACHE_* is a beter prefix for the connection cache lock macros.
+
+ Curl_attach_connnection: now called as soon as there's a connection
+ struct available and before the connection is added to the connection
+ cache.
+
+ Curl_disconnect: now assumes that the connection is already removed from
+ the connection cache.
+
+ Ref: #4915
+ Closes #5009
+
+- 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 #5267
+
+- tests: pick a random port number for SSH
+
+ 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]
+
+ libtest/cmake: Remove commented code
+
+ 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
+
+ White space edits only. Conform better to standard curl source code
+ indenting style.
+
+ Closes #5305
+
+Kamil Dudka (29 Apr 2020)
+- test1177: look for curl.h in source directory
+
+ If we use a separate build directory, there is no copy of the header.
+
+ Closes #5310
+
+- tests: look for preprocessed tests in build directory
+
+ ... which is not always the same directory as source directory
+
+ Closes #5310
+
+Daniel Stenberg (29 Apr 2020)
+- RELEASE-NOTES: synced
+
+ ... and bumped curlver.h to 7.70.1
+
Version 7.70.0 (29 Apr 2020)
Daniel Stenberg (29 Apr 2020)
@@ -294,13 +2204,9 @@ Daniel Stenberg (20 Apr 2020)
- release-notes.pl: fix parsing typo
James Fuller (20 Apr 2020)
-- [xquery brought this change]
-
- ensure all references to ports are replaced by vars
+- ensure all references to ports are replaced by vars
-- [xquery brought this change]
-
- add more alt-svc test coverage
+- add more alt-svc test coverage
Daniel Stenberg (20 Apr 2020)
- test1247: use http server to get the port number set
@@ -1851,7 +3757,7 @@ Marc Hoersken (10 Mar 2020)
- runtests: log minimal and maximal used port numbers
Daniel Stenberg (9 Mar 2020)
-- [Jim Fuller brought this change]
+- [James Fuller brought this change]
sftp: fix segfault regression introduced by #4747
@@ -5597,1623 +7503,3 @@ Daniel Stenberg (25 Oct 2019)
Fixes #4518
Closes #4519
-
-Marcel Raad (24 Oct 2019)
-- test1591: fix spelling of http feature
-
- The test never got run because the feature name is `http` in lowercase.
-
- 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
-
- 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.
-
- 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.
-
- [1] https://www.appveyor.com/docs/build-environment/
- [2] https://cmake.org/cmake/help/v3.12/release/3.12.html
-
- Closes #4508
-
-- conn-reuse: requests wanting NTLM can reuse non-NTLM connections
-
- Added test case 338 to verify.
-
- 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
-
- 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 https://github.com/curl/curl/pull/4512
-
-- tests: add `connect to non-listen` keywords
-
- These tests try to connect to ports nothing is listening on.
-
- Closes https://github.com/curl/curl/pull/4511
-
-- runtests: get textaware info from curl instead of perl
-
- 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.
-
- Closes https://github.com/curl/curl/pull/4506
-
-Daniel Stenberg (20 Oct 2019)
-- [Michał Janiszewski brought this change]
-
- appveyor: Add MSVC ARM64 build
-
- Closes #4507
-
-- http2_recv: a closed stream trumps pause state
-
- ... and thus should return 0, not EAGAIN.
-
- Reported-by: Tom van der Woerdt
- Fixes #4496
- Closes #4505
-
-- http2: expire a timeout at end of stream
-
- To make sure that transfer is being dealt with. Streams without
- Content-Length need a final read to notice the end-of-stream state.
-
- Reported-by: Tom van der Woerdt
- Fixes #4496
-
-Dan Fandrich (18 Oct 2019)
-- travis: Add an ARM64 build
-
- Test 323 is failing for some reason, so disable it there for now.
-
-Marcel Raad (18 Oct 2019)
-- examples/sslbackend: fix -Wchar-subscripts warning
-
- 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.
-
- [0] https://en.cppreference.com/w/c/string/byte/isdigit
-
- Closes https://github.com/curl/curl/pull/4503
-
-Daniel Stenberg (18 Oct 2019)
-- configure: remove all cyassl references
-
- 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.
-
- Reported-by: Jacob Barthelmeh
- Closes #4502
-
-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.
-
-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.
-
- 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]
-
- tool_operate: Fix retry sleep time shown to user when Retry-After
-
- - 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.
-
- 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.
-
- Closes https://github.com/curl/curl/pull/4498
-
-Daniel Stenberg (16 Oct 2019)
-- url: normalize CURLINFO_EFFECTIVE_URL
-
- 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.
-
- 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
-
-Marcel Raad (16 Oct 2019)
-- tests: line ending fixes for Windows
-
- Mark some files as text.
-
- Closes https://github.com/curl/curl/pull/4490
-
-- tests: use proxy feature
-
- This makes the tests succeed when using --disable-proxy.
-
- Closes https://github.com/curl/curl/pull/4488
-
-- smbserver: fix Python 3 compatibility
-
- Python 2's `ConfigParser` module is spelled `configparser` in Python 3.
-
- Closes https://github.com/curl/curl/pull/4484
-
-- security: silence conversion warning
-
- 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.
-
- Closes https://github.com/curl/curl/pull/4483
-
-- connect: silence sign-compare warning
-
- With MinGW-w64 using WinSock, `curl_socklen_t` is signed, while the
- result of `sizeof` is unsigned.
-
- Closes https://github.com/curl/curl/pull/4483
-
-Daniel Stenberg (13 Oct 2019)
-- TODO: Handle growing SFTP files
-
- Closes #4344
-
-- KNOWN_BUGS: remove "CURLFORM_CONTENTLEN in an array"
-
- 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.
-
-- KNOWN_BUGS: "LDAP on Windows does authentication wrong"
-
- Closes #3116
-
-- appveyor: add a winbuild that uses VS2017
-
- Closes #4482
-
-- [Harry Sintonen brought this change]
-
- socketpair: fix include and define for older TCP header systems
-
- fixed build for systems that need netinet/in.h for IPPROTO_TCP and are
- missing INADDR_LOOPBACK
-
- Closes #4480
-
-- socketpair: fix double-close in error case
-
- Follow-up to bc2dbef0afc08
-
-- gskit: use the generic Curl_socketpair
-
-- asyn-thread: make use of Curl_socketpair() where available
-
-- socketpair: an implemention for Windows and more
-
- Curl_socketpair() is designed to be used and work everywhere if there's
- no native version or the native version isn't good enough.
-
- Closes #4466
-
-- RELEASE-NOTES: synced
-
-- connect: return CURLE_OPERATION_TIMEDOUT for errno == ETIMEDOUT
-
- Previosly all connect() failures would return CURLE_COULDNT_CONNECT, no
- matter what errno said.
-
- This makes for example --retry work on these transfer failures.
-
- Reported-by: Nathaniel J. Smith
- Fixes #4461
- Clsoes #4462
-
-- cirrus: switch off blackhole status on the freebsd CI machines
-
-- tests: use port 2 instead of 60000 for a safer non-listening port
-
- ... when the tests want "connection refused".
-
-- KNOWN_BUGS: IDN tests failing on Windows
-
- Closes #3747
-
-Dan Fandrich (9 Oct 2019)
-- cirrus: Increase the git clone depth.
-
- 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
-
-- docs: document it as --no-progress-meter instead of the reverse
-
- Follow-up to 93373a960c3bb4
-
- Reported-by: infinnovation-dev on github
- Fixes #4474
- Closes #4475
-
-Dan Fandrich (9 Oct 2019)
-- cirrus: Switch the FreeBSD 11.x build to 11.3 and add a 13.0 build.
-
- Also, select the images using image_family to get the latest snapshots
- automatically.
- [skip ci]
-
-Daniel Stenberg (8 Oct 2019)
-- curl: --no-progress-meter
-
- New option that allows a user to ONLY switch off curl's progress meter
- and leave everything else in "talkative" mode.
-
- Reported-by: Piotr Komborski
- Fixes #4422
- Closes #4470
-
-- TODO: Consult %APPDATA% also for .netrc
-
- Closes #4016
-
-- CURLOPT_TIMEOUT.3: remove the mention of "minutes"
-
- ... just say that limiting operations risk aborting otherwise fine
- working transfers. If that means seconds, minutes or hours, we leave to
- the user.
-
- Reported-by: Martin Gartner
- Closes #4469
-
-- [Andrei Valeriu BICA brought this change]
-
- 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
-
-Jay Satiro (5 Oct 2019)
-- [Nicolas 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
-
- A regression bug in 1b443a7 caused this issue.
-
- 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
-
-- [Paul B. Omta brought this change]
-
- build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines
-
- Closes https://github.com/curl/curl/pull/4460
-
-Daniel Stenberg (5 Oct 2019)
-- RELEASE-NOTES: synced
-
-- [Stian Soiland-Reyes brought this change]
-
- curl: ensure HTTP 429 triggers --retry
-
- This completes #3794.
-
- Also make sure the new tests from #4195 are enabled
-
- Closes #4465
-
-Marcel Raad (4 Oct 2019)
-- [apique brought this change]
-
- winbuild: add ENABLE_UNICODE option
-
- 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
-
- Closes #4457
-
-- cookies: change argument type for Curl_flush_cookies
-
- The second argument is really a 'bool' so use that and pass in TRUE/FALSE
- to make it clear.
-
- Closes #4455
-
-- http2: move state-init from creation to pre-transfer
-
- 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.
-
- Reported-by: Daniel Silverstone
- Fixes #4303
- Closes #4442
-
-- urlapi: fix use-after-free bug
-
- Follow-up from 2c20109a9b5d04
-
- Added test 663 to verify.
-
- Reported by OSS-Fuzz
- Bug: https://crbug.com/oss-fuzz/17954
-
- Closes #4453
-
-- [Paul Dreik brought this change]
-
- cookie: avoid harmless use after free
-
- 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 following program reproduces it:
-
- 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();
-
- This was found through fuzzing.
-
- Closes #4454
-
-- [Denis Chaplygin brought this change]
-
- docs: add note on failed handles not being counted by curl_multi_perform
-
- Closes #4446
-
-- CURLMOPT_MAX_CONCURRENT_STREAMS.3: fix SEE ALSO typo
-
-- [Niall O'Reilly brought this change]
-
- ESNI: initial build/setup
-
- Closes #4011
-
-- RELEASE-NOTES: synced
-
-- redirect: when following redirects to an absolute URL, URL encode it
-
- ... to make it handle for example (RFC violating) embeded spaces.
-
- Reported-by: momala454 on github
- Fixes #4445
- Closes #4447
-
-- 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.
-
- Reported-by: Peter Sumatra
- Fixes #4393
- Closes #4438
-
-- [Kunal Ekawde brought this change]
-
- CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt
-
- Closes #4410
-
-- 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.
-
- Reported-by: Ilya Kosarev
- Fixes #4310
- Closes #4449
-
-Marcel Raad (1 Oct 2019)
-- checksrc: fix uninitialized variable warning
-
- The loop doesn't need to be executed without a file argument.
-
- Closes https://github.com/curl/curl/pull/4444
-
-- urlapi: fix unused variable warning
-
- `dest` is only used with `ENABLE_IPV6`.
-
- Closes https://github.com/curl/curl/pull/4444
-
-- lib: silence conversion warnings
-
- Closes https://github.com/curl/curl/pull/4444
-
-- AppVeyor: add 32-bit MinGW-w64 build
-
- With WinSSL and testing enabled so that it would have detected most of
- the warnings fixed in [0] and [1].
-
- [0] https://github.com/curl/curl/pull/4398
- [1] https://github.com/curl/curl/pull/4415
-
- Closes https://github.com/curl/curl/pull/4433
-
-- AppVeyor: remove MSYS2_ARG_CONV_EXCL for winbuild
-
- It's only used for MSYS2 with MinGW.
-
- Closes
-
-Daniel Stenberg (30 Sep 2019)
-- [Emil Engler brought this change]
-
- git: add tests/server/disabled to .gitignore
-
- Closes #4441
-
-- altsvc: accept quoted ma and persist values
-
- As mandated by the spec. Test 1654 is extended to verify.
-
- 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
-
-Daniel Stenberg (29 Sep 2019)
-- BINDINGS: PureBasic, Net::Curl for perl and Nim
-
-- BINDINGS: Kapito is an Erlang library, basically a binding
-
-- BINDINGS: added clj-curl
-
- Reported-by: Lucas Severo
-
-- [Jay Satiro brought this change]
-
- docs: disambiguate CURLUPART_HOST is for host name (ie no port)
-
- Closes #4424
-
-- cookies: using a share with cookies shouldn't enable the cookie engine
-
- 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.
-
- 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.
-
- Test 1166 verifies
-
- Updated test 506
-
- Fixes #4429
- Closes #4434
-
-- setopt: handle ALTSVC set to NULL
-
-- RELEASE-NOTES: synced
-
-- [grdowns brought this change]
-
- INSTALL: add vcpkg installation instructions
-
- Closes #4435
-
-- [Zenju brought this change]
-
- FTP: add test for FTPFILE_NOCWD: Avoid redundant CWDs
-
- Add libtest 661
-
- Closes #4417
-
-- [Zenju brought this change]
-
- FTP: url-decode path before evaluation
-
- Closes #4428
-
-Marcel Raad (27 Sep 2019)
-- tests: fix narrowing conversion warnings
-
- `timediff_t` is 64 bits wide also on 32-bit systems since
- commit b1616dad8f0.
-
- Closes https://github.com/curl/curl/pull/4415
-
-Jay Satiro (27 Sep 2019)
-- [Julian Z brought this change]
-
- vtls: Fix comment typo about macosx-version-min compiler flag
-
- Closes https://github.com/curl/curl/pull/4425
-
-Daniel Stenberg (26 Sep 2019)
-- [Yechiel Kalmenson brought this change]
-
- README: minor grammar fix
-
- Closes #4431
-
-- [Spezifant brought this change]
-
- HTTP3: fix prefix parameter for ngtcp2 build
-
- Closes #4430
-
-- quiche: don't close connection at end of stream!
-
-- quiche: set 'drain' when returning without having drained the queues
-
-- Revert "FTP: url-decode path before evaluation"
-
- This reverts commit 2f036a72d543e96128bd75cb0fedd88815fd42e2.
-
-- HTTP3: merged and simplified the two 'running' sections
-
-- HTTP3: show an --alt-svc using example too
-
-- [Zenju brought this change]
-
- FTP: url-decode path before evaluation
-
- Closes #4423
-
-- openssl: use strerror on SSL_ERROR_SYSCALL
-
- Instead of showing the somewhat nonsensical errno number, use strerror()
- to provide a more relatable error message.
-
- Closes #4411
-
-- HTTP3: update quic.aiortc.org + add link to server list
-
- Reported-by: Jeremy Lainé
-
-Jay Satiro (26 Sep 2019)
-- url: don't set appconnect time for non-ssl/non-ssh connections
-
- 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.
-
- [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".
-
- Reported-by: Marcel Hernandez
-
- Ref: https://github.com/curl/curl/issues/3760
-
- Closes https://github.com/curl/curl/pull/3773
-
-Daniel Stenberg (25 Sep 2019)
-- ngtcp2: remove fprintf() calls
-
- - 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
-
- Closes #4421
-
-- [Jay Satiro brought this change]
-
- url: fix the NULL hostname compiler warning case
-
- Closes #4403
-
-- [Jay Satiro brought this change]
-
- travis: move the go install to linux-only
-
- ... to repair the build again
- Closes #4403
-
-- altsvc: correct the #ifdef for the ngtcp2 backend
-
-- altsvc: save h3 as h3-23
-
- Follow-up to d176a2c7e5
-
-- urlapi: question mark within fragment is still fragment
-
- The parser would check for a query part before fragment, which caused it
- to do wrong when the fragment contains a question mark.
-
- Extended test 1560 to verify.
-
- Reported-by: Alex Konev
- Fixes #4412
- Closes #4413
-
-- [Alex Samorukov brought this change]
-
- HTTP3.md: move -p for mkdir, remove -j for make
-
- - mkdir on OSX/Darwin requires `-p` argument before dir
-
- - portabbly figuring out number of cores is an exercise for somewhere
- else
-
- Closes #4407
-
-Patrick Monnerat (24 Sep 2019)
-- os400: getpeername() and getsockname() return ebcdic AF_UNIX sockaddr,
-
- As libcurl now uses these 2 system functions, wrappers are needed on os400
- to convert returned AF_UNIX sockaddrs to ascii.
-
- This is a follow-up to commit 7fb54ef.
- See also #4037.
- Closes #4214
-
-Jay Satiro (24 Sep 2019)
-- [Lucas Pardue brought this change]
-
- strcase: fix raw lowercasing the letter X
-
- Casing mistake in Curl_raw_tolower 'X' wasn't lowercased as 'x' prior to
- this change.
-
- Follow-up to 0023fce which added the function several days ago.
-
- Ref: https://github.com/curl/curl/pull/4401#discussion_r327396546
-
- Closes https://github.com/curl/curl/pull/4408
-
-Daniel Stenberg (23 Sep 2019)
-- http2: Expression 'stream->stream_id != - 1' is always true
-
- PVS-Studio warning
- Fixes #4402
-
-- http2: A value is being subtracted from the unsigned variable
-
- PVS-Studio warning
- Fixes #4402
-
-- libssh: part of conditional expression is always true: !result
-
- PVS-Studio warning
- Fixed #4402
-
-- libssh: part of conditional expression is always true
-
- PVS-Studio warning
- Fixes #4402
-
-- libssh: The expression is excessive or contains a misprint
-
- PVS-Studio warning
- Fixes #4402
-
-- quiche: The expression must be surrounded by parentheses
-
- PVS-Studio warning
- Fixes #4402
-
-- vauth: The parameter 'status' must be surrounded by parentheses
-
- PVS-Studio warning
- Fixes #4402
-
-- [Paul Dreik brought this change]
-
- doh: allow only http and https in debug mode
-
- Otherwise curl may be told to use for instance pop3 to
- communicate with the doh server, which most likely
- is not what you want.
-
- Found through fuzzing.
-
- Closes #4406
-
-- [Paul Dreik brought this change]
-
- doh: return early if there is no time left
-
- Closes #4406
-
-- [Barry Pollard brought this change]
-
- http: lowercase headernames for HTTP/2 and HTTP/3
-
- Closes #4401
- Fixes #4400
-
-Marcel Raad (23 Sep 2019)
-- vtls: fix narrowing conversion warnings
-
- Curl_timeleft returns `timediff_t`, which is 64 bits wide also on
- 32-bit systems since commit b1616dad8f0.
-
- Closes https://github.com/curl/curl/pull/4398
-
-Daniel Stenberg (23 Sep 2019)
-- [Joel Depooter brought this change]
-
- winbuild: Add manifest to curl.exe for proper OS version detection
-
- 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
-
- Closes #4399
-
-- RELEASE-NOTES: synced
-
-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].
-
- [0] https://github.com/libressl-portable/openbsd/commit/56f107201baefb5533486d665a58d8f57fd3aeda
-
- Closes https://github.com/curl/curl/pull/4397
-
-Daniel Stenberg (22 Sep 2019)
-- curl: exit the create_transfers loop on errors
-
- When looping around the ranges and given URLs to create transfers, all
- errors should exit the loop and return. Previously it would keep
- looping.
-
- Reported-by: SumatraPeter on github
- Bug: #4393
- Closes #4396
-
-Jay Satiro (21 Sep 2019)
-- socks: Fix destination host shown on SOCKS5 error
-
- 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:
-
- 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)
-
- 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)
-
- Ref: https://tools.ietf.org/html/rfc1928#section-6
-
- Closes https://github.com/curl/curl/pull/4394
-
-Daniel Stenberg (21 Sep 2019)
-- travis: enable ngtcp2 h3-23 builds
-
-- altsvc: both backends run h3-23 now
-
- Closes #4395
-
-- http: fix warning on conversion from int to bit
-
- Follow-up from 03ebe66d70
-
-- urldata: use 'bool' for the bit type on MSVC compilers
-
- Closes #4387
- Fixes #4379
-
-- appveyor: upgrade VS2017 to VS2019
-
- Closes #4383
-
-- [Zenju brought this change]
-
- FTP: FTPFILE_NOCWD: avoid redundant CWDs
-
- Closes #4382
-
-- cookie: pass in the correct cookie amount to qsort()
-
- 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.
-
- Reported-by: Paul Dreik
- Closes #4386
-
-- [Paul Dreik brought this change]
-
- urlapi: avoid index underflow for short ipv6 hostnames
-
- If the input hostname is "[", hlen will underflow to max of size_t when
- it is subtracted with 2.
-
- hostname[hlen] will then cause a warning by ubsanitizer:
-
- runtime error: addition of unsigned offset to 0x<snip> overflowed to
- 0x<snip>
-
- I think that in practice, the generated code will work, and the output
- of hostname[hlen] will be the first character "[".
-
- This can be demonstrated by the following program (tested in both clang
- and gcc, with -O3)
-
- int main() {
- char* hostname=strdup("[");
- size_t hlen = strlen(hostname);
-
- 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
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: compile with latest ngtcp2 + nghttp3 draft-23
-
- Closes #4392
-
-- THANKS-filter: deal with my typos 'Jat' => 'Jay'
-
-- travis: use go master
-
- ... as the boringssl builds needs a very recent version
-
- Co-authored-by: Jat Satiro
- Closes #4361
-
-- tool_operate: removed unused variable 'done'
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- tool_operate: Expression 'config->resume_from' is always true
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- tool_getparam: remove duplicate switch case
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- libssh2: part of conditional expression is always true: !result
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- urlapi: Expression 'storep' is always true
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- urlapi: 'scheme' is always true
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- urlapi: part of conditional expression is always true: (relurl[0] == '/')
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- setopt: store CURLOPT_RTSP_SERVER_CSEQ correctly
-
- Fixes bug detected by PVS-Studio
- Fixes #4374
-
-- mime: make Curl_mime_duppart() assert if called without valid dst
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- http_proxy: part of conditional expression is always true: !error
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- imap: merged two case-branches performing the same action
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- multi: value '2L' is assigned to a boolean
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- easy: part of conditional expression is always true: !result
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- netrc: part of conditional expression is always true: !done
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- version: Expression 'left > 1' is always true
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- url: remove dead code
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- url: part of expression is always true: (bundle->multiuse == 0)
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- ftp: the conditional expression is always true
-
- ... both !result and (ftp->transfer != FTPTRANSFER_BODY)!
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- ftp: Expression 'ftpc->wait_data_conn' is always false
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- ftp: Expression 'ftpc->wait_data_conn' is always true
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- ftp: part of conditional expression is always true: !result
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
-
-- http: fix Expression 'http->postdata' is always false
-
- Fixes warning detected by PVS-Studio
- Fixes #4374
- Reported-by: Valerii Zapodovnikov
-
-- [Niall O'Reilly brought this change]
-
- doh: avoid truncating DNS QTYPE to lower octet
-
- Closes #4381
-
-- [Jens Finkhaeuser brought this change]
-
- urlapi: CURLU_NO_AUTHORITY allows empty authority/host part
-
- 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
-
-- RELEASE-NOTES: synced
-
-- url: only reuse TLS connections with matching pinning
-
- If the requests have different CURLOPT_PINNEDPUBLICKEY strings set, the
- connection should not be reused.
-
- Bug: https://curl.haxx.se/mail/lib-2019-09/0061.html
- Reported-by: Sebastian Haglund
-
- Closes #4347
-
-- README: add OSS-Fuzz badge [skip ci]
-
- Closes #4380
-
-Michael Kaufmann (18 Sep 2019)
-- http: merge two "case" statements
-
-Daniel Stenberg (18 Sep 2019)
-- [Zenju brought this change]
-
- FTP: remove trailing slash from path for LIST/MLSD
-
- Closes #4348
-
-- mime: when disabled, avoid C99 macro
-
- Closes #4368
-
-- url: cleanup dangling DOH request headers too
-
- Follow-up to 9bc44ff64d9081
-
- Credit to OSS-Fuzz
- Bug: https://crbug.com/oss-fuzz/17269
-
- Closes #4372
-
-- [Christoph M. Becker brought this change]
-
- http2: relax verification of :authority in push promise requests
-
- 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.
-
- Ref: https://curl.haxx.se/mail/lib-2019-09/0041.html
-
- Closes #4365
-
-- doh: clean up dangling DOH handles and memory on easy close
-
- 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.
-
- Reported-by: Paul Dreik
- Closes #4366
-
-- unit1655: make it C90 compliant
-
- Unclear why this was not detected in the CI.
-
- Follow-up to b7666027296a
-
-- smb: check for full size message before reading message details
-
- To avoid reading of uninitialized data.
-
- Assisted-by: Max Dymond
- Bug: https://crbug.com/oss-fuzz/16907
- Closes #4363
-
-- quiche: persist connection details
-
- ... like we do for other protocols at connect time. This makes "curl -I"
- and other things work.
-
- Reported-by: George Liu
- Fixes #4358
- Closes #4360
-
-- openssl: fix warning with boringssl and SSL_CTX_set_min_proto_version
-
- Follow-up to ffe34b7b59
- Closes #4359
-
-- [Paul Dreik brought this change]
-
- doh: fix undefined behaviour and open up for gcc and clang optimization
-
- 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
-
- 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
-
- Closes #4350
-
-- [Paul Dreik brought this change]
-
- doh: fix (harmless) buffer overrun
-
- Added unit test case 1655 to verify.
- Close #4352
-
- the code correctly finds the flaws in the old code,
- if one temporarily restores doh.c to the old version.
-
-Alessandro Ghedini (15 Sep 2019)
-- docs: remove trailing ':' from section names in CURLOPT_TRAILER* man
-
-- docs: fix typo in CURLOPT_HTTP_VERSION man
-
-GitHub (14 Sep 2019)
-- [Daniel Stenberg brought this change]
-
- CI: inintial github action job
-
- First shot at a CI build on github actions
-
-Daniel Stenberg (13 Sep 2019)
-- appveyor: add a winbuild
-
- Assisted-by: Marcel Raad
- Assisted-by: Jay Satiro
-
- Closes #4324
-
-- FTP: allow "rubbish" prepended to the SIZE response
-
- This is a protocol violation but apparently there are legacy proprietary
- servers doing this.
-
- Added test 336 and 337 to verify.
-
- Reported-by: Philippe Marguinaud
- Closes #4339
-
-- [Zenju brought this change]
-
- FTP: skip CWD to entry dir when target is absolute
-
- Closes #4332
-
-Kamil Dudka (13 Sep 2019)
-- curl: fix memory leaked by parse_metalink()
-
- 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
-
-Daniel Stenberg (13 Sep 2019)
-- parsedate: still provide the name arrays when disabled
-
- If FILE or FTP are enabled, since they also use them!
-
- Reported-by: Roland Hieber
- Fixes #4325
- Closes #4343
-
-- [Gilles Vollant brought this change]
-
- curl:file2string: load large files much faster
-
- ... by using a more efficient realloc scheme.
-
- Bug: https://curl.haxx.se/mail/lib-2019-09/0045.html
- Closes #4336
-
-- 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!
-
- Regression since 3f5da4e59a556fc (7.65.0)
-
- Reported-by: Zenju on github
- Reviewed-by: Jay Satiro
- Fixes #4329
- Closes #4340
-
-- [Jimmy Gaussen brought this change]
-
- docs/HTTP3: fix `--with-ssl` ngtcp2 configure flag
-
- Closes #4338
-
-- RELEASE-NOTES: synced
-
-- curlver: bump to 7.66.1
-
-- [Zenju brought this change]
-
- setopt: make it easier to add new enum values
-
- ... by using the *_LAST define names better.
-
- Closes #4321
-
-- asyn-thread: s/AF_LOCAL/AF_UNIX for Solaris
-
- Reported-by: Dagobert Michelsen
- Fixes #4328
- Closes #4333
-
-- [Bernhard Walle brought this change]
-
- winbuild/MakefileBuild.vc: Add vssh
-
- Without that modification, the Windows build using the makefiles doesn't
- work.
-
- Signed-off-by: Bernhard Walle <bernhard.walle@posteo.eu>
-
- Fixes #4322
- Closes #4323
-
-Bernhard Walle (11 Sep 2019)
-- winbuild/MakefileBuild.vc: Fix line endings
-
- The file had mixed line endings.
-
- Signed-off-by: Bernhard Walle <bernhard.walle@posteo.eu>
-
-Jay Satiro (11 Sep 2019)
-- ldap: Stop using wide char version of ldapp_err2string
-
- 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 *).
-
- We have lots of code that expects ldap_err2string to return char *,
- most of it failf used like this:
-
- failf(data, "LDAP local: Some error: %s", ldap_err2string(rc));
-
- Closes https://github.com/curl/curl/pull/4272
-
-Version 7.66.0 (10 Sep 2019)
-
-Daniel Stenberg (10 Sep 2019)
-- RELEASE-NOTES: curl 7.66.0
-
-- THANKS: from the 7.66.0 release
-
-- curl: make sure the parallel transfers do them all
-
- The logic could erroneously break the loop too early before all
- transfers had been transferred.
-
- Reported-by: Tom van der Woerdt
- Fixes #4316
- Closes #4317
-
-- urlapi: one colon is enough for the strspn() input (typo)
-
-- urlapi: verify the IPv6 numerical address
-
- 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]'.
-
- Reported-by: Thomas Vegas
- Closes #4315
-
-- [Clément Notin brought this change]
-
- openssl: use SSL_CTX_set_<min|max>_proto_version() when available
-
- 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.
-
- Closes #4304
-
-- [Clément Notin brought this change]
-
- openssl: indent, re-organize and add comments
-
-- [migueljcrum brought this change]
-
- sspi: fix memory leaks
-
- Closes #4299
-
-- travis: disable ngtcp2 builds (again)
-
-- Curl_fillreadbuffer: avoid double-free trailer buf on error
-
- Reviewed-by: Jay Satiro
- Reported-by: Thomas Vegas
-
- Closes #4307
-
-- tool_setopt: handle a libcurl build without netrc support
-
- Reported-by: codesniffer13 on github
- Fixes #4302
- Closes #4305
-
-- 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
-
-- [Thomas Vegas brought this change]
-
- tftp: Alloc maximum blksize, and use default unless OACK is received
-
- Fixes potential buffer overflow from 'recvfrom()', should the server
- return an OACK without blksize.
-
- Bug: https://curl.haxx.se/docs/CVE-2019-5482.html
- CVE-2019-5482
-
-- [Thomas Vegas brought this change]
-
- tftp: return error when packet is too small for options
-
-- KNOWN_BUGS/TODO: cleanup and remove outdated issues
-
-- RELEASE-NOTES: synced
-
-- netrc: free 'home' on error
-
- Follow-up to f9c7ba9096ec2
-
- Coverity CID 1453474
-
- Closes #4291
-
-- urldata: avoid 'generic', use dedicated pointers
-
- For the 'proto' union within the connectdata struct.
-
- Closes #4290
-
-- cleanup: move functions out of url.c and make them static
-
- Closes #4289
-
-- smtp: check for and bail out on too short EHLO response
-
- Otherwise, a three byte response would make the smtp_state_ehlo_resp()
- function misbehave.
-
- Credit to OSS-Fuzz
- Bug: https://crbug.com/oss-fuzz/16918
-
- Assisted-by: Max Dymond
-
- Closes #4287
-
-- smb: init *msg to NULL in smb_send_and_recv()
-
- ... it might otherwise return OK from this function leaving that pointer
- uninitialized.
-
- Bug: https://crbug.com/oss-fuzz/16907
-
- Closes #4286
-
-- ROADMAP: updated after recent user poll
-
- In rough prio order
-
-- THANKS: remove duplicate
-
-- Curl_addr2string: take an addrlen argument too
-
- 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.
-
- Bug: https://crbug.com/oss-fuzz/16699
-
- Closes #4283
-
-- [Rolf Eike Beer brought this change]
-
- CMake: remove needless newlines at end of gss variables
-
-- [Rolf Eike Beer brought this change]
-
- CI: remove duplicate configure flag for LGTM.com
-
-- [Rolf Eike Beer brought this change]
-
- CMake: use platform dependent name for dlopen() library
-
- Closes #4279
-
-- quiche: expire when poll returned data
-
- ... to make sure we continue draining the queue until empty
-
- Closes #4281
-
-- quiche: decrease available buffer size, don't assign it!
-
- Found-by: Jeremy Lainé
-
-- RELEASE-NOTES: synced
-
-- [Kyohei Kadota brought this change]
-
- curl: fix include conditions
-
-- [Kyohei Kadota brought this change]
-
- plan9: fix installation instructions
-
- Closes #4276
-
-- ngtcp2: on h3 stream close, call expire
-
- ... to trigger a new read to detect the stream close!
-
- Closes #4275
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: build latest ngtcp2 and ngtcp2_crypto_openssl
-
- Closes #4278
-
-- ngtcp2: set flow control window to stream buffer size
-
- Closes #4274
-
-- [Christopher Head brought this change]
-
- CURLOPT_HEADERFUNCTION.3: clarify
-
- Closes #4273
-
-- CURLINFO docs: mention that in redirects times are added
-
- Suggested-by: Brandon Dong
- Fixes #4250
- Closes #4269
-
-- travis: enable ngtcp2 builds again
-
- Switched to the openssl-quic-draft-22 openssl branch.
-
- Closes #4271
-
-- HTTP3: switched openssl branch to use
-
-- [Tatsuhiro Tsujikawa brought this change]
-
- ngtcp2: Build with latest ngtcp2 and ngtcp2_crypto_openssl
-
- Closes #4270
-
-- http2: when marked for closure and wanted to close == OK
-
- It could otherwise return an error even when closed correctly if GOAWAY
- had been received previously.
-
- Reported-by: Tom van der Woerdt
- Fixes #4267
- Closes #4268
-
-- RELEASE-NOTES: synced
-
-- build-openssl: fix build with Visual Studio 2019
-
- Reviewed-by: Marcel Raad
- Contributed-by: osabc on github
- Fixes #4188
- Closes #4266
-
-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
-
-Daniel Stenberg (26 Aug 2019)
-- KNOWN_BUGS: USE_UNIX_SOCKETS on Windows
-
- Closes #4040
-
-- quiche: send the HTTP body correctly on callback uploads
-
- Closes #4265
-
-- travis: disable ngtcp2 builds (temporarily)
-
- Just too many API changes right now
-
- Closes #4264
-
-- ngtcp2: add support for SSLKEYLOGFILE
-
- Closes #4260
-
-- ngtcp2: improve h3 response receiving
-
- Closes #4259
-
-- ngtcp2: use nghttp3_version()
-
-- ngtcp2: sync with upstream API changes
-
- Assisted-by: Tatsuhiro Tsujikawa
-
-- [Kyle Abramowitz brought this change]
-
- scp: fix directory name length used in memcpy
-
- Fix read off end of array due to bad pointer math in getworkingpath for
- SCP home directory case.
-
- Closes #4258