diff options
Diffstat (limited to 'libs/libcurl/docs')
-rw-r--r-- | libs/libcurl/docs/CHANGES | 7911 | ||||
-rw-r--r-- | libs/libcurl/docs/COPYING | 2 | ||||
-rw-r--r-- | libs/libcurl/docs/THANKS | 76 |
3 files changed, 3807 insertions, 4182 deletions
diff --git a/libs/libcurl/docs/CHANGES b/libs/libcurl/docs/CHANGES index 692f78f2bb..25ab5236b6 100644 --- a/libs/libcurl/docs/CHANGES +++ b/libs/libcurl/docs/CHANGES @@ -6,6 +6,3734 @@ Changelog +Version 7.83.1 (11 May 2022) + +Daniel Stenberg (11 May 2022) +- RELEASE-NOTES: synced + + curl 7.83.1 release + +- THANKS: added contributors from 7.83.1 + +- zuul: fix the ngtcp2-gnutls build + + Add packages and tweak the configure options. + + Use the GnuTLS 3.7.4 branch (not main). + + Closes #8829 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: add ca-fallback support for OpenSSL backend + + Closes #8828 + +- url: check SSH config match on connection reuse + + CVE-2022-27782 + + Reported-by: Harry Sintonen + Bug: https://curl.se/docs/CVE-2022-27782.html + Closes #8825 + +- tls: check more TLS details for connection reuse + + CVE-2022-27782 + + Reported-by: Harry Sintonen + Bug: https://curl.se/docs/CVE-2022-27782.html + Closes #8825 + +- cookies: make bad_domain() not consider a trailing dot fine + + The check for a dot in the domain must not consider a single trailing + dot to be fine, as then TLD + trailing dot is fine and curl will accept + setting cookies for it. + + CVE-2022-27779 + + Reported-by: Axel Chong + Bug: https://curl.se/docs/CVE-2022-27779.html + Closes #8820 + +- test977: reproduce ability to set cookie on TLD + + When PSL is not enabled + +- scripts/contributors.sh: correct the copyright range + +- docs/RELEASE-PROCEDURE.md: refreshed and adjsuted the release dates + +- test379: verify --remove-on-error with --no-clobber + +- post_per_transfer: remove the updated file name + + When --remove-on-error is used with --no-clobber, it might have an + updated file name to remove. + + Bug: https://curl.se/docs/CVE-2022-27778.html + + CVE-2022-27778 + + Reported-by: Harry Sintonen + + Closes #8824 + +- hsts: ignore trailing dots when comparing hosts names + + CVE-2022-30115 + + Reported-by: Axel Chong + Bug: https://curl.se/docs/CVE-2022-30115.html + Closes #8821 + +- test440/441: verify HSTS with trailing dots + +- libtest/lib1560: verify the host name percent decode fix + +- urlapi: reject percent-decoding host name into separator bytes + + CVE-2022-27780 + + Reported-by: Axel Chong + Bug: https://curl.se/docs/CVE-2022-27780.html + Closes #8826 + +- nss: return error if seemingly stuck in a cert loop + + CVE-2022-27781 + + Reported-by: Florian Kohnhäuser + Bug: https://curl.se/docs/CVE-2022-27781.html + Closes #8822 + +- test412/413: verify alt-svc with trailing dots + +- altsvc: fix host name matching for trailing dots + + Closes #8819 + +- [Garrett Squire brought this change] + + hyper: fix test 357 + + This change fixes the hyper API such that PUT requests that receive a + 417 response can retry without the Expect header. + + Closes #8811 + +- [Harry Sintonen brought this change] + + sectransp: bail out if SSLSetPeerDomainName fails + + Before the code would just warn about SSLSetPeerDomainName() errors. + + Closes #8798 + +- http_proxy/hyper: handle closed connections + + Enable test 1021 for hyper builds. + + Patched-by: Prithvi MK + Fixes #8700 + Closes #8806 + +- KNOWN_BUGS: timeout when reusing a http3 connection + + Closes #8764 + +- KNOWN_BUGS: configure --with-ca-fallback is not supported by h3 + + Closes #8696 + +- [Ryan Schmidt brought this change] + + Makefile: fix "make ca-firefox" + + Closes #8804 + +Daniel Gustafsson (5 May 2022) +- tests: fix markdown formatting in README + + The asterisk in the abbreviation *NIX (for UNIX/Linux) needs to be + escaped to not mean start of italic formatting. This is consistent + with docs/RELEASE-PROCEDURE.md. + + Closes: #8802 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +Daniel Stenberg (5 May 2022) +- TODO: expand on "Expose tried IP addresses that failed" + + Ref: #8794 + +Daniel Gustafsson (5 May 2022) +- [Fabian Keil brought this change] + + tests/server: declare variable 'reqlogfile' static + + Silences the warning: + + CC socksd-socksd.o + socksd.c:143:13: warning: no previous extern declaration for + non-static variable 'reqlogfile' [-Wmissing-variable-declarations] + const char *reqlogfile = DEFAULT_REQFILE; + ^ + socksd.c:143:7: note: declare 'static' if the variable is not + intended to be used outside of this translation unit + const char *reqlogfile = DEFAULT_REQFILE; + ^ + 1 warning generated. + + ... when compiling with clang 13. + + Closes: #8799 + Reviewed-by: Daniel Gustafsson <daniel@yesql.se> + +- HTTP-COOKIES: add missing CURLOPT_COOKIESESSION + + Commit 980a47b42 added support for ignoring session cookies, but it + was never added to the documentation. + + Closes: #8795 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +Daniel Stenberg (5 May 2022) +- docs/THANKS: remove name duplicate + +- [Philip H brought this change] + + .mailmap: update + + Closes #8800 + +Jay Satiro (5 May 2022) +- mbedtls: fix some error messages + + Prior to this change some of the error messages misidentified the + function that failed. + +Daniel Stenberg (5 May 2022) +- RELEASE-NOTES: synced + +- [Sergey Markelov brought this change] + + x509asn1: make do_pubkey handle EC public keys + + Closes #8757 + +- [Harry Sintonen brought this change] + + mbedtls: bail out if rng init fails + + There was a failf() call but no actual error return. + + Closes #8796 + +- [Sergey Markelov brought this change] + + urlapi: address (harmless) UndefinedBehavior sanitizer warning + + `while(i--)` causes runtime error: unsigned integer overflow: 0 - 1 + cannot be represented in type 'size_t' (aka 'unsigned long') + + Closes #8797 + +- [Fabian Keil brought this change] + + test{898,974,976}: add 'HTTP proxy' keywords + + ... so the tests can be automatically skipped when + testing external HTTP proxies like Privoxy. + + Closes #8791 + +- [Harry Sintonen brought this change] + + gskit_connect_step1: fixed bogus setsockopt calls + + setsockopt takes a reference to value, not value. With the current + code this just leads to -1 return value with errno EFAULT. + + Closes #8793 + +- CURLOPT_SSH_AUTH_TYPES.3: fix the default + + The default is all possible methods. + + Closes #8792 + +- CURLOPT_DOH_URL.3: mention the known bug + + It is mostly duplicating info from KNOWN_BUGS but make it easier to find + for users of this option. + + Closes #8790 + +- CURLOPT_HSTS*FUNCTION.3: document the involved structs as well + + Reviewed-By: Daniel Gustafsson + Closes #8788 + +- docs/SECURITY-PROCESS.md: "Visible command line arguments" + +- SECURITY-PROCESS: mention "URL inconsistencies" + + ... as common problems that are *not* vulns. + +Daniel Gustafsson (2 May 2022) +- contributors: strip off final comma + + The final row of contributors should not end with a comma as it's the + end of the list. + + Closes: #8785 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +Daniel Stenberg (2 May 2022) +- [Philip H brought this change] + + misc: use "autoreconf -fi" instead buildconf + + Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com> + Closes #8777 + +Daniel Gustafsson (2 May 2022) +- [Philip H brought this change] + + cirrus: Use pip for Python packages on FreeBSD + + Using pip instead of easy_install is more in line with how other + CI images are being maintained. + + Closes: #8783 + Reviewed-by: Daniel Gustafsson <daniel@yesql.se> + +- [Philip H brought this change] + + cirrus: Update to FreeBSD 12.3 + + Closes: #8783 + Reviewed-by: Daniel Gustafsson <daniel@yesql.se> + +- tool_getparam: simplify conditional statement + + param_place cannot be NULL here since we immediately efter this block + perform arithmetic on it (and use it in order to get here) so there is + little reason to check. + + Closes: #8786 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +- RELEASE-NOTES: synced + +- gskit: remove unused function set_callback + + This function has been unused since the initial commit of the GSKit + backend in 0eba02fd4. The motivation for the code was getting the + whole certificate chain: the only place where the latter is available + is as a callback parameter. Unfortunately it is not possible to pass + a user pointer to this callback, which precludes the possibility to + associate the cert chain with a data/conn structure. + + For further information, search for pgsk_cert_validation_callback on: + https://www.ibm.com/docs/api/v1/content/ssw_ibm_i_71/apis/gsk_attribute_set_callback.htm + + As the upstream library never added a parameter like that to the API, + we give up the wait and remove the dead code. + + Closes: #8782 + Reviewed-by: Patrick Monnerat <patrick@monnerat.net> + +- curl: free resource in error path + + If the new filename cannot be generated due to memory pressure, free + the allocated aname on the way out to avoid a small leak. + + Closes: #8770 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +- curl: guard against size_t wraparound in no-clobber code + + When generating the new filename, make sure we aren't overflowing the + size_t limit when calculating the new length. This is mostly academic + but good code hygeine nonetheless. + + Closes: #8771 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +Daniel Stenberg (30 Apr 2022) +- gha: build msh3 + + Closes #8779 + +- scripts/cijobs.pl: try "current branch" first then "master" + +- [Yusuke Nakamura brought this change] + + msh3: get msh3 version from MsH3Version + + Closes #8762 + +- [Yusuke Nakamura brought this change] + + msh3: psss remote_port to MsH3ConnectionOpen + + MsH3 supported additional "Port" parameter to connect not hosted on + 443 port QUIC website. + + * https://github.com/nibanks/msh3/releases/tag/v0.3.0 + * https://github.com/nibanks/msh3/pull/37 + + Closes #8762 + +- [Christian Weisgerber brought this change] + + openssl: define HAVE_SSL_CTX_SET_EC_CURVES for libressl + + SSL_CTX_set1_curves_list() has been available since LibreSSL 2.5.3, + released five years ago. + + Bug: https://curl.se/mail/lib-2022-04/0059.html + Closes #8773 + +- http: move Curl_allow_auth_to_host() + + It was mistakenly put within the CURL_DISABLE_HTTP_AUTH #ifdef + + Reported-by: Michael Olbrich + Fixes #8772 + Closes #8775 + +Daniel Gustafsson (29 Apr 2022) +- msh3: print boolean value as text representation + + Print the boolean value as its string representation instead of with + %hhu which isn't a format we typically use. + + Closes: #8763 + Reviewed-by: Nick Banks <nibanks@microsoft.com> + +Daniel Stenberg (29 Apr 2022) +- data/test376: set a proper name + +- GHA/mbedtls: enabled nghttp2 in the build + + Closes #8767 + +- mbedtls: fix compile when h2-enabled + + Fixes #8766 + Reported-by: LigH-de on github + Closes #8768 + +- RELEASE-NOTES: synced + + bumped curlver to 7.83.1-dev + +- SECURITY-PROCESS: extended + + Also clarify BUG-BOUNTY.md with IBB details. + + Closes #8754 + +- [Adam Rosenfield brought this change] + + conn: fix typo 'connnection' -> 'connection' in two function names + + Closes #8759 + +Version 7.83.0 (27 Apr 2022) + +Daniel Stenberg (27 Apr 2022) +- RELEASE-NOTES: synced + + The 7.83.0 release + +- docs/THANKS: contributors from 7.83.0 + +- test 898/974/976: require proxy to run + + Fixes #8755 + Reported-by: Marc Hörsken + Closes #8756 + +- gnutls: don't leak the SRP credentials in redirects + + Follow-up to 620ea21410030 and 139a54ed0a172a + + Reported-by: Harry Sintonen + Closes #8752 + +- CURLOPT*TLSAUTH: they only work with OpenSSL or GnuTLS + + Closes #8753 + +- openssl: don't leak the SRP credentials in redirects either + + Follow-up to 620ea21410030 + + Reported-by: Harry Sintonen + Closes #8751 + +- [Liam Warfield brought this change] + + hyper: fix tests 580 and 581 for hyper + + Hyper now has the ability to preserve header order. This commit adds a + few lines setting the connection options for this feature. + + Related to issue #8617 + Closes #8707 + +- conncache: remove name arg from Curl_conncache_find_bundle + + To simplify, and also since the returned name is not the full actual + name used for the check. The port number and zone id is also involved, + so just showing the name is misleading. + + Closes #8750 + +- tests: verify the fix for CVE-2022-27774 + + - Test 973 redirects from HTTP to FTP, clear auth + - Test 974 redirects from HTTP to HTTP different port, clear auth + - Test 975 redirects from HTTP to FTP, permitted to keep auth + - Test 976 redirects from HTTP to HTTP different port, permitted to keep + auth + +- transfer: redirects to other protocols or ports clear auth + + ... unless explicitly permitted. + + Bug: https://curl.se/docs/CVE-2022-27774.html + Reported-by: Harry Sintonen + Closes #8748 + +- connect: store "conn_remote_port" in the info struct + + To make it available after the connection ended. + +- cookie.d: clarify when cookies are always sent + +- test898: verify the fix for CVE-2022-27776 + + Do not pass on Authorization headers on redirects to another port + +- http: avoid auth/cookie on redirects same host diff port + + CVE-2022-27776 + + Reported-by: Harry Sintonen + Bug: https://curl.se/docs/CVE-2022-27776.html + Closes #8749 + +- libssh2: make the md5 comparison fail if wrong length + + Making it just skip the check unless exactly 32 is too brittle. Even if + the docs says it needs to be exactly 32, it is be safer to make the + comparison fail here instead. + + Reported-by: Harry Sintonen + Bug: https://hackerone.com/reports/1549461 + Closes #8745 + +- conncache: include the zone id in the "bundle" hashkey + + Make connections to two separate IPv6 zone ids create separate + connections. + + Reported-by: Harry Sintonen + Bug: https://curl.se/docs/CVE-2022-27775.html + Closes #8747 + +- [Patrick Monnerat brought this change] + + url: check sasl additional parameters for connection reuse. + + Also move static function safecmp() as non-static Curl_safecmp() since + its purpose is needed at several places. + + Bug: https://curl.se/docs/CVE-2022-22576.html + + CVE-2022-22576 + + Closes #8746 + +- libssh2: compare sha256 strings case sensitively + + Reported-by: Harry Sintonen + Bug: https://hackerone.com/reports/1549435 + Closes #8744 + +- tool_getparam: error out on missing -K file + + Add test 411 to verify. + + Reported-by: Median Median Stride + Bug: https://hackerone.com/reports/1542881 + Closes #8731 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: deal with sub-millisecond timeout + + Closes #8738 + +- misc: update copyright year ranges + +- c_escape: escape '?' in generated --libcurl code + + In order to avoid the risk of it being used in an accidental trigraph in + the generated code. + + Reported-by: Harry Sintonen + Bug: https://hackerone.com/reports/1548535 + Closes #8742 + +- [Philip H brought this change] + + mlc: curl.zuul.vexxhost.dev is reachable again + + remove it from ignorelist for linkcheck + + Closes #8736 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: avoid busy loop in low CWND situation + + Closes #8739 + +- TODO: telnet - exit immediately upon connection if stdin is /dev/null + + Suggested-by: Robin A. Meade + URL: https://curl.se/mail/archive-2022-04/0027.html + +- [Kushal Das brought this change] + + docs: updates spellings with full words + + Closes #8730 + +- tests/FILEFORMAT.md: spellfix + +Daniel Gustafsson (21 Apr 2022) +- misc: fix typos + + Fix a few random typos is comments and workflow names. + +- macos: fix .plist installation into framework + + The copy command introduced in e498a9b1f had leftover '>' from the + previous sed command it replaced, which broke its syntax. Fix by + removing. + + Reported-by: Emanuele Torre <torreemanuele6@gmail.com> + +Daniel Stenberg (21 Apr 2022) +- [Christopher Degawa brought this change] + + Makefile: fix ca-bundle due to mk-ca-bundle.pl being moved + + The script was moved in 8e22fc68e7dda43e9f but the lines that called it + was not changed to reflect it's new position + + Signed-off-by: Christopher Degawa <ccom@randomderp.com> + + Closes #8728 + +Daniel Gustafsson (20 Apr 2022) +- macos: set .plist version in autoconf + + Set the libcurl version in libcurl.plist like how libcurl.vers is + created. + + Closes: #8692 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + Reviewed-by: Nick Zitzmann <nickzman@gmail.com> + +- cookies: Improve errorhandling for reading cookiefile + + The existing programming had some issues with errorhandling for reading + the cookie file. If the file failed to open, we would silently ignore it + and continue as if there was no file (or stdin) passed. In this case, we + would also call fclose() on the NULL FILE pointer, which is undefined + behavior. Fix by ensuring that the FILE pointer is set before calling + fclose on it, and issue a warning in case the file cannot be opened. + Erroring out on nonexisting file would break backwards compatibility of + very old behavior so we can't really go there. + + Closes: #8699 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + Reviewed-by: Jay Satiro <raysatiro@yahoo.com> + +Daniel Stenberg (20 Apr 2022) +- libcurl-tutorial.3: spellfix and minor polish + +- CURLINFO_PRIMARY_PORT.3: spellfix + + Reported-by: Patrick Monnerat + +- [Jay Dommaschk brought this change] + + libssh: fix double close + + libssh closes the socket in ssh_diconnect() so make sure that libcurl + does not also close it. + + Fixes #8708 + Closes #8718 + +Jay Satiro (20 Apr 2022) +- [Gisle Vanem brought this change] + + unit1620: call global_init before calling Curl_open + + Curl_open calls the resolver init and on Windows if the resolver backend + is c-ares then the Windows sockets library (winsock) must already have + been initialized (via global init). + + Ref: https://github.com/curl/curl/pull/8540#issuecomment-1059771800 + + Closes https://github.com/curl/curl/pull/8719 + +Daniel Stenberg (19 Apr 2022) +- CURLINFO_PRIMARY_PORT.3: clarify which port this is + + As it was not entirely clear previously. + + Closes #8725 + +- CURLOPT_UNRESTRICTED_AUTH.3: extended explanation + + Include details about Authentication headers. + + Reported-by: Brad Spencer + Fixes #8724 + Closes #8726 + +- .github/workflows/macos.yml: add a libssh job with c-ares + + ... to enable the memdebug system + + Closes #8720 + +- RELEASE-NOTES: synced + +Jay Satiro (17 Apr 2022) +- [Gisle Vanem brought this change] + + docs/HTTP3.md: fix typo + + also fix msh3 section formatting + + Ref: https://github.com/curl/curl/commit/37492ebb#r70980087 + +Marc Hoersken (17 Apr 2022) +- timediff.[ch]: add curlx helper functions for timeval conversions + + Also move timediff_t definitions from timeval.h to timediff.h and + then make timeval.h include the new standalone-capable timediff.h. + + Reviewed-by: Jay Satiro + Reviewed-by: Daniel Stenberg + + Supersedes #5888 + Closes #8595 + +Daniel Stenberg (17 Apr 2022) +- [Balakrishnan Balasubramanian brought this change] + + tests: refactor server/socksd.c to support --unix-socket + + Closes #8687 + +- [Emanuele Torre brought this change] + + tool_paramhlp: use feof(3) to identify EOF correctly when using fread(3) + + This loop was using the number of bytes read from the file as condition + to keep reading. + + From Linux's fread(3) man page: + > On success, fread() and fwrite() return the number of items read or + > written. This number equals the number of bytes transferred only when + > size is 1. If an error occurs, or the end of the file is reached, the + > return value is a short item count (or zero). + > + > The file position indicator for the stream is advanced by the number + > of bytes successfully read or written. + > + > fread() does not distinguish between end-of-file and error, and + > callers must use feof(3) and ferror(3) to determine which occurred. + + This means that nread!=0 doesn't make much sense as an end condition for + the loop: nread==0 doesn't necessarily mean that EOF has been reached or + an error has occured (but that is usually the case) and nread!=0 doesn't + necessarily mean that EOF has not been reached or that no read errors + have occured. feof(3) and ferror(3) should be uses when using fread(3). + + Currently curl has to performs an extra fread(3) call to get a return + value equal to 0 to stop looping. + + This usually "works" (even though nread==0 shouldn't be interpreted as + EOF) if stdin is a pipe because EOF usually marks the "real" end of the + stream, so the extra fread(3) call will return immediately and the extra + read syscall won't be noticeable: + + bash-5.1$ strace -e read curl -s -F file=@- 0x0.st <<< a 2>&1 | + > tail -n 5 + read(0, "a\n", 4096) = 2 + read(0, "", 4096) = 0 + read(0, "", 4096) = 0 + http://0x0.st/oRs.txt + +++ exited with 0 +++ + bash-5.1$ + + But this doesn't work if curl is reading from stdin, stdin is a + terminal, and the EOF is being emulated using a shell with ^D. Two + consecutive ^D will be required in this case to actually make curl stop + reading: + + bash-5.1$ curl -F file=@- 0x0.st + a + ^D^D + http://0x0.st/oRs.txt + bash-5.1$ + + A possible workaround to this issue is to use a program that handles EOF + correctly to indirectly send data to curl's stdin: + + bash-5.1$ cat - | curl -F file=@- 0x0.st + a + ^D + http://0x0.st/oRs.txt + bash-5.1$ + + This patch makes curl handle EOF properly when using fread(3) in + file2memory() so that the workaround is not necessary. + + Since curl was previously ignoring read errors caused by this fread(3), + ferror(3) is also used in the condition of the loop: read errors and EOF + will have the same meaning; this is done to somewhat preserve the old + behaviour instead of making the command fail when a read error occurs. + + Closes #8701 + +- gen.pl: change wording for mutexed options + + Instead of saying "This option overrides NNN", now say "This option is + mutually exclusive to NNN" in the generated man page ouput, as the + option does not in all cases actually override the others but they are + always mutually exclusive. + + Ref: #8704 + Closes #8716 + +- curl: error out if -T and -d are used for the same URL + + As one implies PUT and the other POST, both cannot be used + simultaneously. + + Add test 378 to verify. + + Reported-by: Boris Verkhovskiy + Fixes #8704 + Closes #8715 + +- lib: remove exclamation marks + + ... from infof() and failf() calls. Make them less attention seeking. + + Closes #8713 + +- fail.d: tweak the description + + Reviewed-by: Daniel Gustafsson + Suggested-by: Robert Charles Muir + Ref: https://twitter.com/rcmuir/status/1514915401574010887 + + Closes #8714 + +Daniel Gustafsson (15 Apr 2022) +- docs: Fix missing semicolon in example code + + Multiple share examples were missing a semicolon on the line defining + the CURLSHcode variable. + + Closes: #8697 + Reported-by: Michael Kaufmann <mail@michael-kaufmann.ch> + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +- infof: consistent capitalization of warning messages + + Ensure that all infof calls with a warning message are capitalized + in the same way. At some point we should probably set up a style- + guide for infof but until then let's aim for a little consistenncy + where we can. + + Closes: #8711 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +- RELEASE-NOTES: synced + +- [Matteo Baccan brought this change] + + perl: removed a double semicolon at end of line + + Remove double semicolons at end of line in Perl code. + + Closes: #8709 + Reviewed-by: Daniel Gustafsson <daniel@yesql.se> + +- curl_easy_header: fix typos in documentation + + Closes: #8694 + Reviewed-by: Daniel Stenberg <daniel@haxx.se> + +Marcel Raad (11 Apr 2022) +- appveyor: add Cygwin build + + Closes https://github.com/curl/curl/pull/8693 + +- appveyor: only add MSYS2 to PATH where required + + Closes https://github.com/curl/curl/pull/8693 + +Daniel Stenberg (10 Apr 2022) +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: fix memory leak + + Closes #8691 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: remove remote_addr which is not used in a meaningful way + + Closes #8689 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: enlarge H3_SEND_SIZE + + Make h3_SEND_SIZE larger because current value (20KiB) is too small + for the high latency environment. + + Closes #8690 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: fix HTTP/3 upload stall and avoid busy loop + + This commit fixes HTTP/3 upload stall if upload data is larger than + H3_SEND_SIZE. Only check writability of socket if a stream is + writable to avoid busy loop when QUIC flow control window is filled + up, or upload buffer is full. + + Closes #8688 + +- [Nick Banks brought this change] + + msh3: add support for QUIC and HTTP/3 using msh3 + + Considered experimental, as the other HTTP/3 backends. + + Closes #8517 + +- TODO: "SFTP with SCP://" + +- GHA: move bearssl jobs over from zuul + + Closes #8684 + +- data/DISABLED: disable test 313 on bearssl builds + + Closes #8684 + +- runtests: add 'bearssl' as testable feature + + Closes #8684 + +- GHA: add openssl3 jobs moved over from zuul + + Closes #8683 + +- schannel: remove dead code that will never run + + As the condition can't ever evaluate true + + Reported-by: Andrey Alifanov + Ref: #8675 + Closes #8677 + +- connecache: remove duplicate connc->closure_handle check + + The superfluous extra check could cause analyzer false positives + and doesn't serve any purpose. + + Closes #8676 + +- [Michał Antoniak brought this change] + + mbedtls: remove server_fd from backend + + Closes #8682 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: use token when detecting :status header field + + Closes #8679 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: make curl 1ms faster + + Pass 0 for an already expired timer. + + Closes #8678 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: fix QUIC_IDLE_TIMEOUT + + QUIC_IDLE_TIMEOUT should be of type ngtcp2_duration which is + nanoseconds resolution. + + Closes #8678 + +- English: use American spelling consistently + + Authorization, Initialization, Organization etc. + + Closes #8673 + +Daniel Gustafsson (5 Apr 2022) +- [Sascha Zengler brought this change] + + BUGS: Fix incorrect punctuation + + Closes #8672 + Reviewed-by: Daniel Gustafsson <daniel@yesql.se> + +Daniel Stenberg (4 Apr 2022) +- tool_listhelp.c: uppercase URL + +- RELEASE-NOTES: synced + +- http: streamclose "already downloaded" + + Instead of connclose()ing, since when HTTP/2 is used it doesn't need to + close the connection as stopping the current transfer is enough. + + Reported-by: Evangelos Foutras + Closes #8665 + +Jay Satiro (1 Apr 2022) +- ftp: fix error message for partial file upload + + - Show the count of bytes written on partial file upload. + + Prior to this change the error message mistakenly showed the count of + bytes read, not written. + + Bug: https://github.com/curl/curl/discussions/8637 + Reported-by: Taras Kushnir + + Closes https://github.com/curl/curl/pull/8649 + +Daniel Stenberg (1 Apr 2022) +- http: correct the header error message to say colon + + Not semicolon + + Reported-by: Gisle Vanem + Ref: #8666 + Closes #8667 + +- lib: #ifdef on USE_HTTP2 better + + ... as nghttp2 might not be the library that provides HTTP/2 support. + + Closes #8661 + +- [Michał Antoniak brought this change] + + mbedtls: remove 'protocols' array from backend when ALPN is not used + + Closes #8663 + +- http2: RST the stream if we stop it on our own will + + For the "simulated 304" case the done-call isn't considered "premature" + but since the server didn't close the stream it needs to be reset to + stop delivering data. + + Closes #8664 + +- http: close the stream (not connection) on time condition abort + + Closes #8664 + +- http2: handle DONE called for the paused stream + + As it could otherwise stall all streams on the connection + + Reported-by: Evangelos Foutras + Fixes #8626 + Closes #8664 + +- tls: make mbedtls and NSS check for h2, not nghttp2 + + This makes them able to also negotiate HTTP/2 even when built to use + hyper for h2. + + Closes #8656 + +- tests/libtest/lib670.c: fixup the copyright year range + + follow-up to b54e18640ea4b7 + +- [Leandro Coutinho brought this change] + + lib670: avoid double check result + + Closes #8660 + +- vtls: use a generic "ALPN, server accepted" message + + Closes #8657 + +- vtls: use a backend standard message for "ALPN: offers %s" + + I call it VTLS_INFOF_ALPN_OFFER_1STR, the '1str' meaning that the + infof() call also needs a string argument: the ALPN ID. + + Closes #8657 + +- [Christian Schmitz brought this change] + + strcase.h: add comment about the return code + + Tool often we run into expecting this to work like strcmp, but it + returns 1 instead of 0 for match. + + Closes #8658 + +- vtls: provide a unified APLN-disagree string for all backends + + Also rephrase to make it sound less dangerous: + + "ALPN: server did not agree on a protocol. Uses default." + + Reported-by: Nick Coghlan + Fixes #8643 + Closes #8651 + +- projects/README: converted to markdown + + Closes #8652 + +- misc: spelling fixes + + Mostly in comments but also in the -w documentation for headers_json. + + Closes #8647 + +- KNOW_BUGS: HTTP3/Transfer closed with n bytes remaining to read + + "HTTP/3 does not support client certs" considered fixed, at least with + the ngtcp2 backend. + + Closes #8523 + +- CURLOPT_PREQUOTE.3: only works for FTP file transfers, not dirs + + Also add to quote.d. Add to TODO as something to add in a future. + + Reported-by: anon00000000 on github + Closes #8602 + Closes #8648 + +- RELEASE-NOTES: synced + +- pop3/smtp: return *WEIRD_SERVER_REPLY when not understood + + This leaves the CURLE_RECV_ERROR error code for explicit failure to + receive network data and allows users to better separate the problems. + + Ref #8356 + Reported-by: Rianov Viacheslav + Closes #8506 + +- docs: lots of minor language polish + + Mostly based on recent language decisions from "everything curl": + + - remove contractions (isn't => is not) + - *an* HTTP (consistency) + - runtime (no hyphen) + - backend (no hyphen) + - URL is uppercase + + Closes #8646 + +Jay Satiro (29 Mar 2022) +- projects: Update VC version names for VS2017, VS2022 + + - Rename VC15 -> VC14.10, VC17 -> VC14.30. + + The projects directory that holds the pre-generated Visual Studio + project files uses VC<ver> to indicate the MSVC version. At some point + support for Visual Studio 2017 (Visual Studio version 15 which uses MSVC + 14.10) was added as VC15. Visual Studio 2022 (Visual Studio version 17 + which uses MSVC 14.30) project files were recently added and followed + that same format using VC17. + + There is no such MSVC version (yet) as VC15 or VC17. + + For VS 2017 for example, the name we use is correct as either VS17, + VS2017, VC14.10. I opted for the latter since we use VC for earlier + versions (eg VC10, VC12, etc). + + Ref: https://github.com/curl/curl/pull/8438#issuecomment-1037070192 + + Closes https://github.com/curl/curl/pull/8447 + +Daniel Stenberg (29 Mar 2022) +- mqtt: better handling of TCP disconnect mid-message + + Reported-by: Jenny Heino + Bug: https://hackerone.com/reports/1521610 + Closes #8644 + +- CURLOPT_DISALLOW_USERNAME_IN_URL.3: use uppercase URL + +- [Ian Blanes brought this change] + + docs/DYNBUF: clarify documentation for Curl_dyn_ptr and Curl_dyn_uptr + + Closes #8606 + +- [Ian Blanes brought this change] + + curl: fix segmentation fault for empty output file names. + + Function glob_match_url set *result to NULL when called with filename = + "", producing an indirect NULL pointer dereference. + + Closes #8606 + +- TODO: Read keys from ~/.ssh/id_ecdsa, id_ed25519 + + It would be nice to expand the list of key locations curl uses for the + newer key types supported by libssh2. + + Closes #8586 + +- ngtcp2: update to work after recent ngtcp2 updates + + Assisted-by: Tatsuhiro Tsujikawa + Reported-by: jurisuk on github + Fixes #8638 + Closes #8639 + +- [Farzin brought this change] + + CURLOPT_PROGRESSFUNCTION.3: fix typo in example + + Closes #8636 + +- curl/header_json: output the header names in lowercase + + To better allow json[“header”]. + + Reported-by: Peter Korsgaard + Bug: https://daniel.haxx.se/blog/2022/03/24/easier-header-picking-with-curl/comment-page-1/#comment-25878 + Closes #8633 + +- RELEASE-NOTES: synced + +- headers.h: make Curl_headers_push() be CURLE_OK when not built + + ... to avoid errors when the function isn't there. + + Reported-by: Marcel Raad + Fixes #8627 + Closes #8628 + +- scripts: move three scripts from lib/ to scripts/ + + Move checksrc.pl, firefox-db2pem.sh and mk-ca-bundle.pl since they don't + particularly belong in lib/ + + Also created an EXTRA_DIST= in scripts/Makefile.am instead of specifying + those files in the root Makefile.am + + Closes #8625 + +Marc Hoersken (23 Mar 2022) +- lib/warnless.[ch]: only check for WIN32 and ignore _WIN32 + + curl_setup.h automatically defines WIN32 if just _WIN32 is defined. + + Therefore make sure curl_setup.h is included through warnless.h. + + Reviewed-by: Daniel Stenberg + Reviewed-by: Jay Satiro + + Closes #8594 + +- tests/server/util.h: align WIN32 condition with util.c + + There is no need to test for both _WIN32 and WIN32 as curl_setup.h + automatically defines the later if the first one is defined. + + Also tests/server/util.c is only checking for WIN32 arouund the + implementation of win32_perror, so just defining _WIN32 + would not be sufficient for a successful compilation. + + Reviewed-by: Daniel Stenberg + Reviewed-by: Jay Satiro + + Closes #8594 + +Daniel Stenberg (22 Mar 2022) +- [Philip H brought this change] + + firefox-db2pem.sh: make the shell script safer + + Reported by lift + + Closes #8616 + +Jay Satiro (22 Mar 2022) +- gtls: fix build for disabled TLS-SRP + + Prior to this change if, at build time, the GnuTLS backend was found to + have TLS-SRP support (HAVE_GNUTLS_SRP) but TLS-SRP was disabled in curl + via --disable-tls-srp (!USE_TLS_SRP) then a build error would occur. + + Bug: https://curl.se/mail/lib-2022-03/0046.html + Reported-by: Robert Brose + + Closes https://github.com/curl/curl/pull/8604 + +- winbuild: Add a Visual Studio example to the README + + - Add an example that explains in detail how the user can add libcurl to + their Visual Studio project. + + Ref: https://github.com/curl/curl/issues/8591 + + Closes https://github.com/curl/curl/pull/8592 + +- docs/opts: Mention Schannel client cert type is P12 + + Schannel backend code behaves same as Secure Transport, it expects a P12 + certificate file or the name of a certificate already in the user's OS + key store. Also, both backends ignore CURLOPT_SSLKEY (tool: --key) + because they expect the private key to already be available from the + keystore or P12 certificate. + + Ref: https://github.com/curl/curl/discussions/8581#discussioncomment-2337260 + + Closes https://github.com/curl/curl/pull/8587 + +Daniel Stenberg (22 Mar 2022) +- lib1945: fix compiler warning 4706 on MSVC + + Follow-up from d1e4a677340c + + Closes #8623 + +- [Philip H brought this change] + + ci/event-based.yml: improve impacket install + + skip python3-pip + install impacket with library module + + Closes #8621 + +- test1459: disable for oldlibssh + + This test with libssh 0.9.3 works fine on github but fails on circleci. + Might as well disable this test for oldlibssh installations. + + Closes #8622 + +- test1135: sync with recent API updates + + This test verifies that the order of functions in public headers remain + the same but hasn't been updated to care for recently added header + files. The order is important for some few platforms - or VERSIONINFO + needs to updated. + + This fix also updates VERSIONINFO to be sure. + + Closes #8620 + +- curl_easy_nextheader.3: fix two typos + + Reported-by: Timothe Litt + Bug: https://curl.se/mail/lib-2022-03/0060.html + +- options: remove mistaken space before paren in prototype + +- cirrus: add --enable-headers-api for some windows builds + +- GHA: --enable-headers-api in all workflows + +- lib: make the headers API depend on --enable-headers-api + +- configure: add --enable-headers-api to enable the headers API + + Defaults to disabled while labeled EXPERIMENTAL. + + Make all the headers API tests require 'headers-api' to run. + +- test1671: verify -w '%{header_json} + +- test1670: verify -w %header{} + +- curl: add %{header_json} support in -w handling + + Outputs all response headers as a JSON object. + +- curl: add %header{name} support in -w handling + + Outputs the response header 'name' + +- header api: add curl_easy_header and curl_easy_nextheader + + Add test 1940 to 1946 to verify. + + Closes #8593 + +- test1459: remove the different exit code for oldlibssh + + When using libssh/0.9.3/openssl/zlib, we seem to be getting the "right" + error code. + + Closes #8490 + +- libssh: unstick SFTP transfers when done event-based + + Test 604 and 606 (at least). + + Closes #8490 + +- gha: move the event-based test over from Zuul + + Switched libssh2 to libssh + + Closes #8490 + +- RELEASE-NOTES: synced + +- http: return error on colon-less HTTP headers + + It's a protocol violation and accepting them leads to no good. + + Add test case 398 to verify + + Closes #8610 + +- test718: edited slightly to return better HTTP + + Since hyper is picky and won't play ball otherwise. + + Bug: https://github.com/hyperium/hyper/issues/2783 + Reported-by: Daniel Valenzuela + Closes #8614 + +- hyper: no h2c support + + Make tests require h2c feature present to run, and only set h2c if + nghttp2 is used in the build. Hyper does not support it. + + Remove those tests from DISABLED + + Fixes #8605 + Closes #8613 + +- configure: bump the copyright year range int the generated output + +- [Andreas Falkenhahn brought this change] + + BINDINGS.md: add Hollywood binding + + Closes #8609 + +- HISTORY: add some 2022 data + +- scripts/copyright.pl: ignore the new mlc_config.json file + +- [Philip H brought this change] + + mlc_config.json: add file to ignore known troublesome URLs + + This is the config file for the CI markdown link checker and lets us + filter URLs that are known to cause problems. Like + https://curl.zuul.vexxhost.dev/ for now. + + Closes #8597 + +- [Philip H brought this change] + + winbuild/README.md: fixup dead link + + Closes #8597 + +Jay Satiro (18 Mar 2022) +- rtsp: don't let CSeq error override earlier errors + + - When done, if an error has already occurred then don't check the + sequence numbers for mismatch. + + A sequence number may not have been received if an error occurred. + + Prior to this change a sequence mismatch error would override earlier + errors. For example, a server that returns nothing would cause error + CURLE_GOT_NOTHING in Curl_http_done which was then overridden by + CURLE_RTSP_CSEQ_ERROR in rtsp_done. + + Closes https://github.com/curl/curl/pull/8525 + +- lib: fix some misuse of curlx_convert_wchar_to_UTF8 + + curlx_convert_wchar_to_UTF8 must be freed by curlx_unicodefree, but + prior to this change some uses mistakenly called free. + + I've reviewed all other uses of curlx_convert_wchar_to_UTF8 and + curlx_convert_UTF8_to_wchar. + + Ref: https://github.com/curl/curl/commit/1d5d0ae + + Closes https://github.com/curl/curl/pull/8521 + +- mk-ca-bundle.pl: Use stricter logic to process the certificates + + .. and bump version to 1.29. + + This change makes the script properly ignore unknown blocks and + otherwise fail when Mozilla changes the certdata format in ways we + don't expect. Though this is less flexible behavior it makes it far less + likely that an invalid certificate can slip through. + + Prior to this change the state machine did not always properly reset, + and it was possible that a certificate marked as invalid could then + later be marked as valid when there was conflicting trust info or + an unknown block was erroneously processed as part of the certificate. + + Ref: https://github.com/curl/curl/pull/7801#pullrequestreview-768384569 + + Closes https://github.com/curl/curl/pull/8411 + +Marcel Raad (17 Mar 2022) +- test375: fix line endings on Windows + + Closes https://github.com/curl/curl/pull/8599 + +Daniel Stenberg (17 Mar 2022) +- http: reject header contents with nul bytes + + They are not allowed by the protocol and allowing them risk that curl + misbehaves somewhere where C functions are used but won't work on the + full contents. Further, they are not supported by hyper and they cause + problems for the new coming headers API work. + + Updated test 262 to verify and enabled it for hyper as well + + Closes #8601 + +- [Philip H brought this change] + + CI: Do not use buildconf. Instead, just use: autoreconf -fi + + Closes #8596 + +- RELEASE-NOTES: synced + +Jay Satiro (14 Mar 2022) +- libssh: Improve fix for missing SSH_S_ stat macros + + - If building libcurl against an old libssh version missing SSH_S_IFMT + and SSH_S_IFLNK then use the values from a supported version. + + Prior to this change if libssh did not define SSH_S_IFMT and SSH_S_IFLNK + then S_IFMT and S_IFLNK, respectively, were used instead. The problem + with that is the user's S_ stat macros don't have the same values across + platforms. For example Windows has values different from Linux. + + Follow-up to 7b0fd39. + + Ref: https://github.com/curl/curl/pull/8511#discussion_r815292391 + Ref: https://github.com/curl/curl/pull/8574 + + Closes https://github.com/curl/curl/pull/8588 + +Marc Hoersken (13 Mar 2022) +- tool and tests: force flush of all buffers at end of program + + On Windows data can be lost in buffers in case of abnormal program + termination, especially in process chains as seen due to flaky tests. + Therefore flushing all buffers manually should avoid this data loss. + + In the curl tool we play the safe game by only flushing write buffers, + but in the testsuite where we manage all buffers, we flush everything. + + This should drastically reduce Windows CI and testsuite flakiness. + + Reviewed-by: Daniel Stenberg + + Supersedes #7833 and #6064 + Closes #8516 + +Daniel Stenberg (12 Mar 2022) +- [Jan Venekamp brought this change] + + BearSSL: add CURLOPT_SSL_CTX_FUNCTION support + + Closes #8478 + +- [Jan Venekamp brought this change] + + BearSSL: add CURLOPT_SSL_CIPHER_LIST support + + Closes #8477 + +Dan Fandrich (11 Mar 2022) +- tool_cb_hdr: Turn the Location: into a terminal hyperlink + + This turns even relative URLs into clickable hyperlinks in a supported + terminal when --styled-output is enabled. Many terminals already turn + URLs into clickable links but there is not enough information in a + relative URL to do this automatically otherwise. + +- keepalive-time.d: It takes many probes to detect brokenness + +Daniel Stenberg (11 Mar 2022) +- [HexTheDragon brought this change] + + curl: add --no-clobber + + Does not overwrite output files if they already exist + + Closes #7708 + Co-authored-by: Daniel Stenberg + +- RELEASE-NOTES: synced + + also bump next pending version to become 7.83.0 + +- [Jean-Philippe Menil brought this change] + + openssl: check SSL_get_peer_cert_chain return value + + Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com> + Closes #8579 + +- [Jay Satiro brought this change] + + mk-ca-bundle.vbs: delete this script in favor of mk-ca-bundle.pl + + mk-ca-bundle.vbs is a Windows-specific script for Mozilla certificate + extraction, similar to mk-ca-bundle.pl which runs on any platform. The + vbs version has not been maintained while the perl version has been + maintained with improvements and security fixes. I don't think it's + worth the work to maintain both versions. Windows users should be able + to use mk-ca-bundle.pl without any problems, as long as they have perl. + + Closes #8412 + +- CURLSHOPT_UNLOCKFUNC.3: fix the callback prototype + + Copy and paste error + + Reported-by: Francisco Olarte + Fixes #8573 + Closes #8577 + +- remove-on-error.d: typo + + Reported-by: Colin Leroy + Bug: https://github.com/curl/curl/pull/8503#pullrequestreview-906520081 + +- curl: add --remove-on-error + + If a transfer returns an error, using this option makes curl remove the + leftover downloded (partial) local file before exiting. + + Added test 376 to verify + + Closes #8503 + +- libssh: fix build with old libssh versions + + ... that don't have the SSH_S_* defines. Spotted on a machine using + libssh 0.7.3 + + Closes #8574 + +- hyper: fix status_line() return code + + Detected while working on #7708 that happened to trigger an error here + with a new test case. + + Closes #8572 + +- [Alejandro R. Sedeño brought this change] + + configure.ac: move -pthread CFLAGS setting back where it used to be + + The fix for #8276 proposed in #8374 set `CFLAGS="$CFLAGS -pthead"` + earlier than it used to be set, applying it in cases where it should not + have been applied. + + This moves the AIX XLC check to a new `case $host in` block inside of + the `if test "$USE_THREADS_POSIX" != "1"` block, where `CFLAGS="$CFLAGS + -pthead"` used to happen. + + Fixes #8541 + Closes #8542 + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: add client certificate authentication for OpenSSL + + Closes #8522 + +- tool_operate: fix a scan-build warning + + ... and avoid the temp storing of the return code in a diff variable. + + Closes #8565 + +- test375: verify that --proxy errors out if proxy is disabled in the build + + Closes #8565 + +- curl: error out when options need features not present in libcurl + + Trying to use a proxy when libcurl was built with proxy support disabled + should make curl error out properly. + + Remove knowledge of disabled features from the tool code and instead + make it properly respond to what libcurl returns. Update all tests to + properly require the necessary features to be present/absent so that the + test suite can still be run even with libcurl builds with disabled + features. + + Ref: https://curl.se/mail/archive-2022-03/0013.html + Closes #8565 + +- ngtcp2: disconnect the QUIC connection proper + + Reported-by: mehatzri on github + Reviewed-by: Tatsuhiro Tsujikawa + Fixes #8534 + closes #8569 + +Dan Fandrich (9 Mar 2022) +- test386: Fix an incorrect test markup tag + +Daniel Stenberg (9 Mar 2022) +- [Don J Olmstead brought this change] + + nonblock: restore setsockopt method to curlx_nonblock + + The implementation using setsockopt was removed when BeOS support was + purged. However this functionality wasn't BeOS specific, it is still + used by for example Orbis OS (Playstation 4/5 OS). + + Closes #8562 + +- openssl: fix CN check error code + + Due to a missing 'else' this returns error too easily. + + Regressed in: d15692ebb + + Reported-by: Kristoffer Gleditsch + Fixes #8559 + Closes #8560 + +- [Frank Meier brought this change] + + connect: make Curl_getconnectinfo work with conn cache from share handle + + Closes #8524 + +- [lwthiker brought this change] + + openssl: enable CURLOPT_SSL_EC_CURVES with BoringSSL + + The CURLOPT_SSL_EC_CURVES option (used by the '--curves' flag) in + libcurl was ignored when compiling with BoringSSL because + HAVE_SSL_CTX_SET_EC_CURVES was explicitly disabled if BoringSSL was + detected. However, this feature is supported in BoringSSL since + 5fd1807d. This commit enables it, and also reduces the required minimal + OpenSSL version to 1.0.2 as per OpenSSL's official documentation. + + Fixes #8553 + Closes #8556 + +- [Samuel Henrique brought this change] + + json.d: fix typo (overriden -> overridden) + + Closes #8557 + +- wolfssl: fix compiler error without IPv6 + + Reported-by: Joseph Chen + Fixes #8550 + Closes #8552 + +- RELEASE-NOTES: synced + + and bump pending version to 7.82.1 + +- [Paul Howarth brought this change] + + runtests: make 'oldlibssh' be before 0.9.4 + + The 'oldlibssh' feature indicates that the error code returned by libssh + for a broken known_hosts file should be 67 rather than 60 (test1459). + This feature was added as part of #8444 with 'oldlibssh' mapping to + libssh versions prior to 0.9.6, and then refined as part of #8511 to map + to versions prior to 0.9.5. + + In Red Hat Enterprise Linux 8.5 there is a patched version of libssh + version 0.9.4 (https://git.centos.org/rpms/libssh/blob/c8/f/SOURCES) in + which test1459 fails because it returns the "new" value rather than the + "old" one. It's plausible that one of the patches is responsible for + this rather than the underlying code but I don't think so. + + This change therefore drops the 'oldlibssh' version check to map to + libssh versions older than 0.9.4, which fixes builds on RHEL-8. + + Closes #8548 + +- ipv4/6.d: clarify that they are about using IP addresses + + ... they may still *resolve* other families, but not use those + addresses. + + Ref: #8530 + Closes #8543 + +- [r-a-sattarov brought this change] + + curl/system.h: update ifdef condition for MCST-LCC compiler + + in mcst-lcc compiler => 1.25 added a new macro definition to determine + compiler + + Closes #8546 + +Marc Hoersken (6 Mar 2022) +- CI: install Python package impacket to run SMB test 1451 + + Install Python package impacket in relevant CI workflows. + + Follow up to #7935 + Supersedes #7940 + Closes #8544 + +Daniel Stenberg (5 Mar 2022) +- [Michał Antoniak brought this change] + + connect: use TCP_KEEPALIVE only if TCP_KEEPIDLE is not defined + + Closes #8539 + +- docs/HYPER.md: updated to reflect current hyper build needs + +- GHA: build hyper with nightly rustc + + Closes #8545 + +Version 7.82.0 (5 Mar 2022) + +Daniel Stenberg (5 Mar 2022) +- RELEASE-NOTES: synced + + The 7.82.0 release + +- THANKS: updates from the 7.82.0 release notes + +- misc: update copyright year ranges + +Jay Satiro (5 Mar 2022) +- unit1610: init SSL library before calling SHA256 functions + + The SSL library must be initialized (via global initialization) because + libcurl's SHA256 functions may call SHA256 functions in the SSL library. + + Reported-by: Gisle Vanem + + Fixes https://github.com/curl/curl/issues/8538 + Closes https://github.com/curl/curl/pull/8540 + +- examples/curlx: support building with OpenSSL 1.1.0+ + + - Access members of X509_STORE_CTX in OpenSSL 1.1.0+ by using API + functions. + + The X509_STORE_CTX struct has been opaque since OpenSSL 1.1.0. + + Ref: https://curl.se/mail/lib-2022-03/0004.html + + Closes https://github.com/curl/curl/pull/8529 + +- h2h3: fix typo + + Bug: https://github.com/curl/curl/issues/8381#issuecomment-1055440241 + Reported-by: Michael Kaufmann + +- [Farzin brought this change] + + CURLOPT_XFERINFOFUNCTION.3: fix example struct assignment + + Closes https://github.com/curl/curl/pull/8519 + +Daniel Stenberg (26 Feb 2022) +- azure-pipelines: add a build on Windows with libssh + + Closes #8511 + +- runtests: make 'oldlibssh' be before 0.9.5 + + Closes #8511 + +- libssh: fix include files and defines use for Windows builds + + Reported-by: 梦终无痕 + Bug: https://curl.se/mail/lib-2022-02/0131.html + Closes #8511 + +- RELEASE-NOTES: synced + +- [illusory-dream brought this change] + + winbuild: add parameter WITH_SSH + + For building with libssh + Closes #8514 + +- configure: change output for cross-compiled alt-svc support + + It said 'no', while it actually is 'yes' + + Closes #8512 + +- gha: add a macOS CI job with libssh + + Closes #8513 + +- TODO: remove "Bring back libssh tests on Travis" + + The job was added to Circle CI in d8ddd0e7536 + +- TODO: remove "better persistency for HTTP/1.0" + + Let's not bother. + +- TODO: remove "Option to ignore private IP" + + ... as curl ignores the IP entirely by default these days. + +- TODO: remove "hardcode the "localhost" addresses" + + This is implmented since 1a0ebf6632f88 + +- TODO: 1.24 was a dupe of 1.1 + +- TODO: remove "Typesafe curl_easy_setopt()" + + I don't consider this a serious TODO item + +- KNOWN_BUGS: remove "Uploading HTTP/3 files gets interrupted" + + This works now + +- KNOWN_BUGS: remove "HTTP/3 multipart POST with quiche fails" + + It works now + +- quiche: remove two leftover debug infof() outputs + +- [Tatsuhiro Tsujikawa brought this change] + + ngtcp2: Reset dynbuf when it is fully drained + + Reported-by: vl409 on github + Fixes #7351 + Closes #8504 + +- [Stewart Gebbie brought this change] + + hostip: avoid unused parameter error in Curl_resolv_check + + When built without DNS-over-HTTP and without asynchronous resolvers, + neither the dns nor the data parameters are used. + + That is Curl_resolv_check appears to call + Curl_resolver_is_resolved(data, dns). But, + with CURL_DISABLE_DOH without CURLRES_ASYNCH, the call is actually + elided via a macro definition. + + This fix resolves the resultant: "unused parameter 'data'" error. + + Closes #8505 + +- http2: move two infof calls to debug-h2-only + + and remove a superflous one + + Ref: https://github.com/curl/curl/discussions/8498 + Closes #8502 + +- [Jean-Philippe Menil brought this change] + + quiche: fix upload for bigger content-length + + Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com> + Closes #8421 + +Jay Satiro (23 Feb 2022) +- [Farzin brought this change] + + CURLOPT_PROGRESSFUNCTION.3: fix example struct assignment + + Closes https://github.com/curl/curl/pull/8500 + +Daniel Stenberg (22 Feb 2022) +- [Rob Boeckermann brought this change] + + OS400/README: clarify compilation steps + + Closes #8494 + +- [Rob Boeckermann brought this change] + + OS400: fix typos in rpg include file + + This resolves issues compiling rpg code that includes the curl header + file. + + Closes #8494 + +- [Michał Antoniak brought this change] + + vtls: fix socket check conditions + + fix condition to check the second socket during associate and + disassociate connection + + Closes #8493 + +- libssh2: don't typecast socket to int for libssh2_session_handshake + + Since libssh2_socket_t uses SOCKET on windows which can be larger than + int. + + Closes #8492 + +- RELEASE-NOTES: fix typo and make one desc shorter + +- RELEASE-NOTES: synced + +- CURLOPT_XFERINFOFUNCTION.3: fix typo in example + + Reported-by: coralw on github + Fixes #8487 + Closes #8488 + +- README: disable linkchecks for the sponsor links + + Closes #8489 + +Jay Satiro (21 Feb 2022) +- openssl: check if sessionid flag is enabled before retrieving session + + Ideally, Curl_ssl_getsessionid should not be called unless sessionid + caching is enabled. There is a debug assertion in the function to help + ensure that. Therefore, the pattern in all vtls is basically: + + if(primary.sessionid) {lock(); Curl_ssl_getsessionid(...); unlock();} + + There was one instance in openssl.c where sessionid was not checked + beforehand and this change fixes that. + + Prior to this change an assertion would occur in openssl debug builds + during connection stage if session caching was disabled. + + Reported-by: Jim Beveridge + + Fixes https://github.com/curl/curl/issues/8472 + Closes https://github.com/curl/curl/pull/8484 + +- multi: allow user callbacks to call curl_multi_assign + + Several years ago a change was made to block user callbacks from calling + back into the API when not supported (recursive calls). One of the calls + blocked was curl_multi_assign. Recently the blocking was extended to the + multi interface API, however curl_multi_assign may need to be called + from within those user callbacks (eg CURLMOPT_SOCKETFUNCTION). + + I can't think of any callback where it would be unsafe to call + curl_multi_assign so I removed the restriction entirely. + + Reported-by: Michael Wallner + + Ref: https://github.com/curl/curl/commit/b46cfbc + Ref: https://github.com/curl/curl/commit/340bb19 + + Fixes https://github.com/curl/curl/issues/8480 + Closes https://github.com/curl/curl/pull/8483 + +Daniel Stenberg (21 Feb 2022) +- [Michał Antoniak brought this change] + + ssl: reduce allocated space for ssl backend when FTP is disabled + + Add assert() for the backend pointer in many places + + Closes #8471 + +- [Michał Antoniak brought this change] + + checkprefix: remove strlen calls + + Closes #8481 + +Jay Satiro (20 Feb 2022) +- [1337vt brought this change] + + curl.h: fix typo + + Closes https://github.com/curl/curl/pull/8482 + +- [Jan Venekamp brought this change] + + sectransp: mark a 3DES cipher as weak + + - Change TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA strength to weak. + + All other 3DES ciphers are already marked as weak. + + Closes https://github.com/curl/curl/pull/8479 + +- [Jan Venekamp brought this change] + + bearssl: fix EXC_BAD_ACCESS on incomplete CA cert + + - Do not create trust anchor object for a CA certificate until after it + is processed. + + Prior to this change the object was created at state BR_PEM_BEGIN_OBJ + (certificate processing begin state). An incomplete certificate (for + example missing a newline at the end) never reaches BR_PEM_END_OBJ + (certificate processing end state) and therefore the trust anchor data + was not set in those objects, which caused EXC_BAD_ACCESS. + + Ref: https://github.com/curl/curl/pull/8106 + + Closes https://github.com/curl/curl/pull/8476 + +- [Jan Venekamp brought this change] + + bearssl: fix connect error on expired cert and no verify + + - When peer verification is disabled use the x509_decode engine instead + of the x509_minimal engine to parse and extract the public key from + the first cert of the chain. + + Prior to this change in such a case no key was extracted and that caused + CURLE_SSL_CONNECT_ERROR. The x509_minimal engine will stop parsing if + any validity check fails but the x509_decode won't. + + Ref: https://github.com/curl/curl/pull/8106 + + Closes https://github.com/curl/curl/pull/8475 + +- [Jan Venekamp brought this change] + + bearssl: fix session resumption (session id) + + Prior to this change br_ssl_client_reset was mistakenly called with + resume_session param set to 0, which disabled session resumption. + + Ref: https://github.com/curl/curl/pull/8106 + + Closes https://github.com/curl/curl/pull/8474 + +Daniel Stenberg (18 Feb 2022) +- [Michał Antoniak brought this change] + + openssl: fix build for version < 1.1.0 + + Closes #8470 + +- [Joel Depooter brought this change] + + schannel: move the algIds array out of schannel.h + + This array is only used by the SCHANNEL_CRED struct in the + schannel_acquire_credential_handle function. It can therefore be kept as + a local variable. This is a minor update to + bbb71507b7bab52002f9b1e0880bed6a32834511. + + This change also updates the NUM_CIPHERS value to accurately count the + number of ciphers options listed in schannel.c, which is 47 instead of + 45. It is unlikely that anyone tries to set all 47 values, but if they + had tried, the last two would not have been set. + + Closes #8469 + +- [Alejandro R. Sedeño brought this change] + + configure.ac: use user-specified gssapi dir when using pkg-config + + Using the system pkg-config path in the face of a user-specified + library path is asking to link the wrong library. + + Reported-by: Michael Kaufmann + Fixes #8289 + Closes #8456 + +- [Kevin Adler brought this change] + + os400: Add link to QADRT devkit to README.OS400 + + Closes #8455 + +- [Kevin Adler brought this change] + + os400: Add function wrapper for system command + + The wrapper will exit if the system command failed instead of blindly + continuing on. + + In addition, only copy docs which exist, since now the copy failure will + cause the build to stop. + + Closes #8455 + +- [Kevin Adler brought this change] + + os400: Default build to target current release + + V6R1M0 is not available as a target release since IBM i 7.2. To keep + from having to keep this up to date in git, default to the current + release. Users can configure this to whatever release they want to + actually build for. + + Closes #8455 + +- docs/INTERNALS.md: clean up, refer to the book + + The explanatory parts are now in the everything curl book (which can + also use images etc). This document now refers to that resource and only + leaves listings of supported versions of libs, tools and operating + systems. See https://everything.curl.dev/internals + + Closes #8467 + +Marcel Raad (17 Feb 2022) +- des: fix compile break for OpenSSL without DES + + When `USE_OPENSSL` was defined but OpenSSL had no DES support and a + different crypto library was used for that, `Curl_des_set_odd_parity` + was called but not defined. This could for example happen on Windows + and macOS when using OpenSSL v3 with deprecated features disabled. + + Use the same condition for the function definition as used at the + caller side, but leaving out the OpenSSL part to avoid including + OpenSSL headers. + + Closes https://github.com/curl/curl/pull/8459 + +Daniel Stenberg (17 Feb 2022) +- RELEASE-NOTES: synced + +- docs/DEPRECATE: remove NPN support in August 2022 + + Closes #8458 + +- ftp: provide error message for control bytes in path + + Closes #8460 + +- http: fix "unused parameter ‘conn’" warning + + Follow-up from 7d600ad1c395 + + Spotted on appveyor + + Closes #8465 + +Jay Satiro (17 Feb 2022) +- [Alejandro R. Sedeño brought this change] + + sha256: Fix minimum OpenSSL version + + - Change the minimum OpenSSL version for using their SHA256 + implementation from 0.9.7 to 0.9.8. + + EVP_sha256() does not appear in the OpenSSL source before 0.9.7h, and + does not get built by default until 0.9.8, so trying to use it for all + 0.9.7 is wrong, and before 0.9.8 is unreliable. + + Closes https://github.com/curl/curl/pull/8464 + +Daniel Stenberg (16 Feb 2022) +- KNOWN_BUGS: remove "slow connect to localhost on Windows" + + localhost is not resolved anymore since 1a0ebf6632f88 + +- KNOWN_BUGS: remove "HTTP/3 download is 5x times slower than HTTP/2" + + It's not actually a bug. More like room for improvement. + +- KNOWN_BUGS: remove "HTTP/3 download with quiche halts after a while" + + Follow-up to 96f85a0fef694 + +- KNOWN_BUGS: remove "pulseUI vpn" as a problem + + We haven't heard about this for a long time and rumours have it they + might have fixed it. + +- urldata: remove conn->bits.user_passwd + + The authentication status should be told by the transfer and not the + connection. + + Reported-by: John H. Ayad + Fixes #8449 + Closes #8451 + +- [Kevin Adler brought this change] + + gskit: Convert to using Curl_poll + + As mentioned in 32766cb, gskit was the last user of Curl_select which is + now gone. Convert to using Curl_poll to allow build to work on IBM i. + + Closes #8454 + +- [Kevin Adler brought this change] + + gskit: Fix initialization of Curl_ssl_gskit struct + + In c30bf22, Curl_ssl_getsock was factored out in to a member of + struct Curl_ssl but the gskit initialization was not updated to reflect + this new member. + + Closes #8454 + +- [Kevin Adler brought this change] + + gskit: Fix errors from Curl_strerror refactor + + 2f0bb864c1 replaced sterror with Curl_strerror, but the strerror buffer + shadows the set_buffer "buffer" parameter. To keep consistency with the + other functions that use Curl_strerror, rename the parameter. + + In addition, strerror.h is needed for the definition of STRERROR_LEN. + + Closes #8454 + +Marcel Raad (15 Feb 2022) +- ntlm: remove unused feature defines + + They're not used anymore and always supported. + + Closes https://github.com/curl/curl/pull/8453 + +Daniel Stenberg (15 Feb 2022) +- [Kantanat Wannapaka brought this change] + + README.md: fix link and layout + + replace <a></a> tags and <img></img> tags + + Closes #8448 + +- KNOWN_BUGS: fix typo "libpsl" + +Jay Satiro (14 Feb 2022) +- h2h3: fix compiler warning due to function prototype mismatch + + - Add missing const qualifier in Curl_pseudo_headers declaration. + +Daniel Stenberg (14 Feb 2022) +- [Stefan Eissing brought this change] + + urlapi: handle "redirects" smarter + + - avoid one malloc when setting a new url via curl_url_set() + and CURLUPART_URL. + - extract common pattern into a new static function. + + Closes #8450 + +- cijobs: pick up circleci configure lines better + +- circleci: add a job using wolfSSH + + Build only, no tests. + + Closes #8445 + +- scripts/ciconfig.pl: show used options not available + +- circleci: add a job using libssh + + Closes #8444 + +- runtests: set 'oldlibssh' for libssh versions before 0.9.6 + + ... and make test 1459 check for the different return code then. + + Closes #8444 + +Jay Satiro (13 Feb 2022) +- Makefile.am: Generate VS 2022 projects + + Follow-up to f13d4d0 which added VS 2022 project support. + + Ref: https://github.com/curl/curl/pull/8438 + +- [Daniel Stenberg brought this change] + + projects: remove support for MSVC before VC10 (Visual Studio 2010) + + - Remove Visual Studio project files for VC6, VC7, VC7.1, VC8 and VC9. + + Those versions are too old to be maintained any longer. + + Closes https://github.com/curl/curl/pull/8442 + +- [Stav Nir brought this change] + + projects: add support for Visual Studio 17 (2022) + + Closes https://github.com/curl/curl/pull/8438 + +Daniel Stenberg (13 Feb 2022) +- RELEASE-NOTES: synced + +- connect: follow-up fix the copyright year + +- [Michał Antoniak brought this change] + + misc: remove unused data when IPv6 is not supported + + Closes #8430 + +- scripts/ciconfig: show CI job config info + + Closes #8446 + +- quiche: handle stream reset + + A stream reset now causes a CURLE_PARTIAL_FILE error. I'm not convinced + this is the right action nor the right error code. + + Reported-by: Lucas Pardue + Fixes #8437 + Closes #8440 + +- mime: use a define instead of the magic number 24 + + MIME_BOUNDARY_DASHES is now the number of leading dashes in the + generated boundary string. + + Closes #8441 + +- [Henrik Holst brought this change] + + hostcheck: reduce strlen calls on chained certificates + + Closes #8428 + +- [Patrick Monnerat brought this change] + + mime: some more strlen() call removals. + + Closes #8423 + +- scripts/cijobs.pl: detect zuul cmake jobs better + +- url: exclude zonefrom_url when no ipv6 is available + + Closes #8439 + +- if2ip: make Curl_ipv6_scope a blank macro when IPv6-disabled + + Closes #8439 + +- [Henrik Holst brought this change] + + mprintf: remove strlen calls on empty strings in dprintf_formatf + + Turns out that in dprintf_formatf we did a strlen on empty strings, a + bit strange is how common this actually is, 24 alone when doing a simple + GET from https://curl.se + + Closes #8427 + +- wolfssl: return CURLE_AGAIN for the SSL_ERROR_NONE case + + Closes #8431 + +- wolfssl: when SSL_read() returns zero, check the error + + Returning zero indicates end of connection, so if there's no data read + but the connection is alive, it needs to return -1 with CURLE_AGAIN. + + Closes #8431 + +- quiche: after leaving h3_recving state, poll again + + This could otherwise easily leave libcurl "hanging" after the entire + transfer is done but without noticing the end-of-transfer signal. + + Assisted-by: Lucas Pardue + Closes #8436 + +- quiche: when *recv_body() returns data, drain it before polling again + + Assisted-by: Lucas Pardue + + Closes #8429 + +- [gaoxingwang on github brought this change] + + configure: fix '--enable-code-coverage' typo + + Fixes #8425 + Closes #8426 + +- lib/h2h3: #ifdef on ENABLE_QUIC, not the wrong define + + Otherwise the build fails when H3 is enabled but the build doesn't + include nghttp2. + + Closes #8424 + +- hostcheck: pass in pattern length too, to avoid a strlen call + + Removes one strlen() call per SAN name in a cert-check. + + Closes #8418 + +- [Henrik Holst brought this change] + + misc: remove strlen for Curl_checkheaders + Curl_checkProxyheaders + + Closes #8409 + +- configure: requires --with-nss-deprecated to build with NSS + + Add deprecation plans to docs/DEPRECATE.md + + Closes #8395 + +- mqtt: free 'sendleftovers' in disconnect + + Fix a memory-leak + + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43646 + Closes #8415 + +- [Patrick Monnerat brought this change] + + openldap: pass string length arguments to client_write() + + This uses the new STRCONST() macro and saves 2 strlen() calls on short + string constants per LDIF output line. + + Closes #8404 + +- [Henrik Holst brought this change] + + misc: reduce strlen() calls with Curl_dyn_add() + + Use STRCONST() to switch from Curl_dyn_add() to Curl_dyn_addn() for + string literals. + + Closes #8398 + +- http2: fix the array copy to nghttp2_nv + + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=44517 + Follow-up to 9f985a11e794 + Closes #8414 + +- RELEASE-NOTES: synced + +- scripts/cijobs.pl: output data about all currect CI jobs + + This script parses the config files for all the CI services currently in + use and output the information in a uniform way. The idea is that the + output from this script should be possible to massage into informational + tables or graphs to help us visualize what they are all testing and NOT + testing. + + Closes #8408 + +- maketgz: return error if 'make dist' fails + + To better detect this problem in CI jobs + + Reported-by: Marcel Raad + Bug: https://curl.se/mail/lib-2022-02/0070.html + Closes #8402 + +- h2h3: pass correct argument types to infof() + + Detected by Coverity. CID 1497993 + + Closes #8401 + +- lib/Makefile: remove config-tpf.h from the dist + + Follow-up from da15443dddea2bfb. Missed before because the 'distcheck' + CI job was not working as intended. + + Reported-by: Marcel Raad + Bug: https://curl.se/mail/lib-2022-02/0070.html + Closes #8403 + +- configure: remove support for "embedded ares" + + In March 2010 (commit 4259d2df7dd) we removed the embedded 'ares' + directory from the curl source tree but we have since supported + especially detecting and using that build directory. The time has come + to remove that kludge and ask users to specify the c-ares dir correctly + with --enable-ares. + + Closes #8397 + +- [Sebastian Sterk brought this change] + + github/workflows/mbedtls: fix indent & remove unnecessary line breaks + + Closes #8399 + +- CI: move the NSS job from zuul to GHA + + Closes #8396 + +- tests/unit/Makefile.am: add NSS_LIBS to build with NSS fine + + Closes #8396 + +Marcel Raad (7 Feb 2022) +- curl-openssl: fix SRP check for OpenSSL 3.0 + + When OpenSSL 3.0 is built with `--api=3.0` and `no-deprecated`, the SRP + functions exist in the library, but are disabled for user code. Check + if they are actually usable instead of only if they exist. Also, check + for the functions actually required for TLS-SRP. + + TLS-SRP support is still enabled if OpenSSL is configured with just + `--api=3.0` or with `--api=1.1.1 no-deprecated`. + + Closes https://github.com/curl/curl/pull/8394 + +Daniel Stenberg (7 Feb 2022) +- [Henrik Holst brought this change] + + http: make Curl_compareheader() take string length arguments too + + Also add STRCONST, a macro that returns a string literal and it's length + for functions that take "string,len" + + Removes unnecesary calls to strlen(). + + Closes #8391 + +- vquic/vquic.h: removed the unused H3 psuedo defines + +- ngtcp2: use Curl_pseudo_headers + +- quiche: use Curl_pseudo_headers + +- http2: use Curl_pseudo_headers + +- h2h3: added Curl_pseudo_headers() + + For use with both http2 and http3 requests. + +- ngtcp2/quiche: make :scheme possible to set + +- http2: allow CURLOPT_HTTPHEADER change ":scheme" + + The only h2 psuedo header that wasn't previously possible to change by a + user. This change also makes it impossible to send a HTTP/1 header that + starts with a colon, which I don't think anyone does anyway. + + The other pseudo headers are possible to change indirectly by doing the + rightly crafted request. + + Reported-by: siddharthchhabrap on github + Fixes #8381 + Closes #8393 + +- h2/h3: provide and refer to pseudo headers as defines + + ... and do sizeof() on the defines to use constants better. + + Closes #8389 + +- [Michał Antoniak brought this change] + + smb: passing a socket for writing and reading data instead of FIRSTSOCKET + + Closes #8383 + +- x509asn1: toggle off functions not needed for diff tls backends + + ... and clean the header file from private defines/structs (move to C + file) and unused function prototypes. + + Closes #8386 + +- lib: move hostcheck and x509sn1 sources to vtls/ + + ... since they are used strictly by TLS code. + + Closes #8386 + +Marcel Raad (4 Feb 2022) +- version_win32: fix warning for `CURL_WINDOWS_APP` + + The build version is not supported by the UWP code. + + Closes https://github.com/curl/curl/pull/8385 + +Daniel Stenberg (4 Feb 2022) +- tests/disable-scan.pl: properly detect multiple symbols per line + + Test 1165 would fail on some systems because it didn't detect + CURL_DISABLE_* symbols that were used to the right of another one on the + same line! The script would only detect and extract the first one. + + Reported-by: Marcel Raad + Fixes #8384 + Closes #8388 + +Jay Satiro (4 Feb 2022) +- config.d: Clarify _curlrc filename is still valid on Windows + + Recent changes added support for filename .curlrc on Windows, and + when it's not found curl falls back on the original Windows filename + _curlrc. _curlrc was removed from the doc, however it is still valid. + + Closes https://github.com/curl/curl/pull/8382 + +Daniel Stenberg (4 Feb 2022) +- lib: remove support for CURL_DOES_CONVERSIONS + + TPF was the only user and support for that was dropped. + + Closes #8378 + +- TPF: drop support + + There has been no TPF related changes done since September 2010 (commit + 7e1a45e224e57) and since this is a platform that is relatively different + than many others (== needs attention), I draw the conclusion that this + build is broken since a long time. + + Closes #8378 + +- scripts/delta: check the file delta for current branch + + ... also polish the output style a little bit + +Jay Satiro (3 Feb 2022) +- [Fabian Keil brought this change] + + runtests.pl: tolerate test directories without Makefile.inc + + Silences the following warnings when using a Makefile.inc-free + TESTDIR using the "-o" argument: + + readline() on closed filehandle D at ./runtests.pl line 592. + Use of uninitialized value $disttests in pattern match (m//) at + ./runtests.pl line 3602. + + Closes https://github.com/curl/curl/pull/8379 + +Daniel Stenberg (3 Feb 2022) +- [Henrik Holst brought this change] + + setopt: do bounds-check before strdup + + Curl_setstropt() allocated memory for the string before checking if the + string was within bounds. The bounds check should be done first. + + Closes #8377 + +- [Michał Antoniak brought this change] + + mbedtls: enable use of mbedtls without filesystem functions support + + Closes #8376 + +- [Bernhard Walle brought this change] + + configure: support specification of a nghttp2 library path + + This enables using --with-nghttp2=<dir> on systems without pkg-config. + + Closes #8375 + +- scripts/release-notes.pl: remove leftover debug output + +- RELEASE-NOTES: synced + +- scripts/release-notes.pl: fix number extraction for full URLs + +- [Leah Neukirchen brought this change] + + scripts/completion.pl: improve zsh completion + + - Detect all spellings of <file>, <file name> etc as well as <path>. + - Only complete directories for <dir>. + - Complete URLs for <URL>. + - Complete --request and --ftp-method. + + Closes #8363 + +- [Davide Cassioli brought this change] + + configure: use correct CFLAGS for threaded resolver with xlC on AIX + + Fixes #8276 + Closes #8374 + +- mailmap: Henrik Holst + +Jay Satiro (2 Feb 2022) +- build: fix ngtcp2 crypto library detection + + - Change library link check for ngtcp2_crypto_{gnutls,openssl} to + to use function ngtcp2_crypto_recv_client_initial_cb instead of + ngtcp2_crypto_ctx_initial. + + The latter function is no longer external since two days ago in + ngtcp2/ngtcp2@533451f. curl HTTP/3 CI builds have been failing since + then because they would not link to the ngtcp2 crypto library. + + Ref: https://github.com/ngtcp2/ngtcp2/pull/356 + + Closes https://github.com/curl/curl/pull/8372 + +- [Henrik Holst brought this change] + + urlapi: remove an unnecessary call to strlen + + - Use strcpy instead of strlen+memcpy to copy the url path. + + Ref: https://curl.se/mail/lib-2022-02/0006.html + + Closes https://github.com/curl/curl/pull/8370 + +Daniel Stenberg (1 Feb 2022) +- scripts/copyright.pl: fix for handling removed files better + +- vxworks: drop support + + No changes or fixes in vxworks related code since 2009 leads me to + believe that this doesn't work anymore. + + Closes #8362 + +- [Henrik Holst brought this change] + + base64: remove an unnecessary call to strlen + + Closes #8369 + +- tool_getparam: initial --json support + + Adds these test cases: + + 383 - simple single command line option + 384 - reading it from stdin + 385 - getting two --json options on command line + 386 - --next works after --json + + Closes #8314 + +- [Bjarni Ingi Gislason brought this change] + + curl_getdate.3: remove pointless .PP line + + mandoc: WARNING: skipping paragraph macro: PP empty + + Reported-by: Samuel Henrique + Closes #8365 + +- [Sebastian Sterk brought this change] + + multi: grammar fix in comment + + After 'must', the verb is used without 'to'. Correct: "must" or "have + to" + + Closes #8368 + +- openldap: fix compiler warning when built without SSL support + + openldap.c:841:52: error: unused parameter ‘data’ [-Werror=unused-parameter] + + Closes #8367 + +- [Samuel Henrique brought this change] + + CURLSHOPT_LOCKFUNC.3: fix typo "relased" -> "released" + + Found when packaging 7.81.0 for Debian. + + Closes #8364 + +- netware: remove support + + There are no current users and no Netware related changes done in the + code for over 13 years is a clear sign this is abandoned. + + Closes #8358 + +- CI: move two jobs from Zuul to Circle CI + + - openssl-no-verbose + - openssl-no-proxy + + Closes #8359 + +- cirlceci: also run a c-ares job on arm with debug enabled + + Closes #8357 + +- ci: move the OpenSSL + c-ares job from Zuul to Circle CI + + Closes #8357 + +- mailmap: Jan-Piet Mens + +- [luminixinc on github brought this change] + + multi: remember connection_id before returning connection to pool + + Fix a bug that does not require a new CVE as discussed on hackerone.com. + Previously `connection_id` was accessed after returning connection to + the shared pool. + + Bug: https://hackerone.com/reports/1463013 + Closes #8355 + +Jay Satiro (31 Jan 2022) +- write-out.d: Fix num_headers formatting + +- [Jan-Piet Mens brought this change] + + docs: capitalize the name 'Netscape' + + Closes https://github.com/curl/curl/pull/8354 + +Daniel Stenberg (30 Jan 2022) +- RELEASE-NOTES: synced + +- [Antoine Pietri brought this change] + + docs: grammar proofread, typo fixes + + (Partially automated) proofread of most of the documentation, leading to + various typo fixes. + + Closes #8353 + +- urldata: CONN_IS_PROXIED replaces bits.close when proxy can be disabled + + To remove run-time checks for such builds. + + Closes #8350 + +- setopt: fix the TLSAUTH #ifdefs for proxy-disabled builds + + Closes #8350 + +- conncache: make conncache_add_bundle return the pointer + + Simplifies the logic a little and avoids a ternary operator. + + Ref: #8346 + Closes #8349 + +- mailmap: neutric on github + +Jay Satiro (30 Jan 2022) +- [neutric on github brought this change] + + docs/TheArtOfHttpScripting: fix example POST URL + + Closes https://github.com/curl/curl/pull/8352 + +Daniel Stenberg (28 Jan 2022) +- nss: handshake callback during shutdown has no conn->bundle + + The callback gets called because of the call to PR_Recv() done to + attempt to avoid RST on the TCP connection. The conn->bundle pointer is + already cleared at this point so avoid dereferencing it. + + Reported-by: Eric Musser + Fixes #8341 + Closes #8342 + +- [Michał Antoniak brought this change] + + mbedtls: remove #include <mbedtls/certs.h> + + mbedtls/certs.h file contains only certificates example (all definitions + is beginning by mbedtls_test_*). None of them is used so we can avoid + include the file. + + Closes #8343 + +- [Michał Antoniak brought this change] + + mbedtls: enable use of mbedtls without CRL support + + Closes #8344 + +- [Bernhard Walle brought this change] + + configure: set CURL_LIBRARY_PATH for nghttp2 + + To execute the test program, we might need the library path so that the + lib is found at runtime. + + Closes #8340 + +Jay Satiro (28 Jan 2022) +- schannel: restore debug message in schannel_connect_step2 + + This is a follow-up to recent commit 2218c3a which removed the debug + message to avoid an unused variable warning. The message has been + reworked to avoid the warning. + + Ref: https://github.com/curl/curl/pull/8320#issuecomment-1022957904 + + Closes https://github.com/curl/curl/pull/8336 + +- test3021: disable all msys2 path transformation + + - Disable all MSYS2 path transformation in test3021 and test3022. + + Prior to this change path transformation in those tests was disabled + only for arguments that start with forward slashes. However arguments + that are in base64 contain forward slashes at any position and caused + unwanted translations. + + == Info: Denied establishing ssh session: mismatch sha256 fingerprint. + Remote +/EYG2YDzDGm6yiwepEMSuExgRRMoTi8Di1UN3kixZw= is not equal to + +C:/msys64/EYG2YDzDGm6yiwepEMSuExgRRMoTi8Di1UN3kixZw + + In the above example an argument containing a base64 sha256 fingerprint + was passed to curl after MSYS2 translated +/ into +C:/msys64/, and then + the fingerprint didn't match what was expected. + + Ref: https://www.msys2.org/wiki/Porting/ + + Fixes https://github.com/curl/curl/issues/8084 + Closes https://github.com/curl/curl/pull/8325 + +Daniel Stenberg (27 Jan 2022) +- CI: move scan-build job from Zuul to Azure Pipelines + + Closes #8338 + +Marcel Raad (27 Jan 2022) +- openssl: fix `ctx_option_t` for OpenSSL v3+ + + The options have been changed to `uint64_t` in + https://github.com/openssl/openssl/commit/56bd17830f2d5855b533d923d4e0649d3ed61d11. + + Closes https://github.com/curl/curl/pull/8331 + +Daniel Stenberg (27 Jan 2022) +- CI: move 'distcheck' job from zuul to azure pipelines + + Assisted-by: Kushal Das + + Closes #8334 + +- vtls: pass on the right SNI name + + The TLS backends convert the host name to SNI name and need to use that. + This involves cutting off any trailing dot and lowercasing. + + Co-authored-by: Jay Satiro + Closes #8320 + +- url: revert the removal of trailing dot from host name + + Reverts 5de8d84098db1bd24e (May 2014, shipped in 7.37.0) and the + follow-up changes done afterward. + + Keep the dot in names for everything except the SNI to make curl behave + more similar to current browsers. This means 'name' and 'name.' send the + same SNI for different 'Host:' headers. + + Updated test 1322 accordingly + + Fixes #8290 + Reported-by: Charles Cazabon + Closes #8320 + +- [neutric on github brought this change] + + docs/TheArtOfHttpScripting: fix capitalization + + Closes #8333 + +- tests/memanalyze.pl: also count and show "total allocations" + + This is the total number of bytes allocated, increasing for new + allocations and never reduced when freed. The existing "Maximum + allocated" is the high water mark. + + Closes #8330 + +- mailmap: spellfix githuh => github + +- RELEASE-NOTES: synced + +- hostcheck: fixed to not touch used input strings + + Avoids the need to clone the strings before check, thus avoiding + mallocs, which for cases where there are many SAN names in a cert could + end up numerous. + + Closes #8321 + +- ngtcp2: adapt to changed end of headers callback proto + + Closes #8322 + +- [Xiaoke Wang brought this change] + + openssl: check SSL_get_ex_data to prevent potential NULL dereference + + Closes #8268 + +Jay Satiro (23 Jan 2022) +- md5: check md5_init_func return value + + Prior to this change the md5_init_func (my_md5_init) return value was + ignored. + + Closes https://github.com/curl/curl/pull/8319 + +- md5: refactor for standard compliance + + - Wrap OpenSSL / wolfSSL MD5 functions instead of taking their function + addresses during static initialization. + + Depending on how curl was built the old way may have used a dllimport + function address during static initialization, which is not standard + compliant, resulting in Visual Studio warning C4232 (nonstandard + extension). Instead the function pointers now point to the wrappers + which call the MD5 functions. + + This change only affects OpenSSL and wolfSSL because calls to other SSL + libraries' md5 functions were already wrapped. Also sha256.c already + does this for all SSL libraries. + + Ref: https://github.com/curl/curl/pull/8298 + + Closes https://github.com/curl/curl/pull/8318 + +Daniel Stenberg (21 Jan 2022) +- [Lucas Pardue brought this change] + + docs: update IETF links to use datatracker + + The tools.ietf.org domain has been deprecated a while now, with the + links being redirected to datatracker.ietf.org. + + Rather than make people eat that redirect time, this change switches the + URL to a more canonical source. + + Closes #8317 + +- [Harry Sarson brought this change] + + CI: test building wolfssl with --enable-opensslextra + + Closes #8315 + +- [Harry Sarson brought this change] + + misc: allow curl to build with wolfssl --enable-opensslextra + + put all #include of openssl files behind wolfssl ifdefs so that we can + use the wolfssl/ prefixed include paths. Without these curl only builds + when wolfssl is built with enable-all. + + Fixes #8292 + Closes #8315 + +- [Lucas Pardue brought this change] + + quiche: change qlog file extension to `.sqlog` + + quiche has just switched it's qlog serialization format to JSON-SEQ by + default . The spec says this SHOULD use `.sqlog` extension. + + I believe ngtcp2 also supports JSON-SEQ by default as of + https://github.com/ngtcp2/ngtcp2/commit/9baf06fc3f352a1d062b6953ae1de22cae30639d + + Let's update curl so that tools know what format we are using! + + Closes #8316 + +Jay Satiro (21 Jan 2022) +- projects: Fix Visual Studio wolfSSL configurations + + - Change build-wolfssl.bat to disable SSLv3, enable TLSv1.3, enable + wolfSSL_DES_ecb_encrypt (needed by NTLM) and enable alt cert chains. + + - Disable warning C4214 'bit field types other than int'. + + - Add include directory wolfssl\wolfssl. + + wolfSSL offers OpenSSL API compatibility that libcurl uses, and some + recent change in libcurl included an include file for wolfSSL like + openssl/foo.h, which has a path like wolfssl\wolfssl\openssl\foo.h. + + The include directory issue was reported in #8292 but it's currently + unclear whether this type of change is needed for other build systems. + + Bug: https://github.com/curl/curl/issues/8292 + Reported-by: Harry Sarson + + Closes https://github.com/curl/curl/pull/8298 + +Daniel Stenberg (21 Jan 2022) +- openssl: return error if TLS 1.3 is requested when not supported + + Previously curl would just silently ignore it if the necessary defines + are not present at build-time. + + Reported-by: Stefan Eissing + Fixes #8309 + Closes #8310 + +- TODO: Passing NOTIFY option to CURLOPT_MAIL_RCPT + + Closes #8232 + +- [Philip H brought this change] + + workflows/wolfssl: install impacket + + needed Python Package for SMB tests + + Closes #8307 + +- url: make Curl_disconnect return void + + 1. The function would only ever return CURLE_OK anyway + 2. Only one caller actually used the return code + 3. Most callers did (void)Curl_disconnect() + + Closes #8303 + +- docs: document HTTP/2 not insisting on TLS 1.2 + + Both for --http2 and CURLOPT_HTTP_VERSION. + + Reported-by: jhoyla on github + Fixes #8235 + Closes #8300 + +- cmdline-opts/gen.pl: fix option matching to improve references + + Previously it could mistakenly match partial names when there are + options that start with the same prefix, leading to the wrong references + used. + + Closes #8299 + +- TODO: Less memory massaging with Schannel + +- [Patrick Monnerat brought this change] + + runtests.pl: disable debuginfod + + Valgrind and gdb implement this feature: as this highly slows down tests, + disable it. + + Closes #8291 + +- RELEASE-NOTES: synced + +- CURLMOPT_TIMERFUNCTION/DATA.3: fix the examples + + ... to not call libcurl recursively back. + + Closes #8286 + +- multi: set in_callback for multi interface callbacks + + This makes most libcurl functions return error if called from within a + callback using the same multi handle. For example timer or socket + callbacks calling curl_multi_socket_action. + + Reported-by: updatede on github + Fixes #8282 + Closes #8286 + +- docs/HISTORY.md: mention alt-svc and HSTS + +- misc: remove the final watcom references + + Follow-up to bbf8cae44dedc495e6 + + We removed support for the watcom builds files back in September + 2020. This removes all remaining watcom references and ifdefs. + + Closes #8287 + +- misc: remove BeOS code and references + + There has not been a mention of this OS in any commit since December + 2004 (58f4af7973e3d2). The OS is also long gone. + + Closes #8288 + +- tool_getparam: DNS options that need c-ares now fail without it + + Just silently accepting the options and then not having any effect is + not good. + + Ref: #8283 + Closes #8285 + +- curl: remove "separators" (when using globbed URLs) + + Unless muted (with -s) When doing globbing, curl would output mime-like + separators between the separate transfers. This is not documented + anywhere, surprises users and clobbers the output. Gone now. + + Updated test 18 and 1235 + + Reported-by: jonny112 on github + Bug: https://github.com/curl/curl/discussions/8257 + Closes #8278 + +Jay Satiro (15 Jan 2022) +- [Niels Martignène brought this change] + + mbedtls: fix CURLOPT_SSLCERT_BLOB (again) + + - Increase the buffer length passed to mbedtls_x509_crt_parse to account + for the null byte appended to the temporary blob. + + Follow-up to 867ad1c which uses a null terminated copy of the + certificate blob, because mbedtls_x509_crt_parse requires PEM data + to be null terminated. + + Ref: https://github.com/curl/curl/commit/867ad1c#r63439893 + Ref: https://github.com/curl/curl/pull/8146 + + Closes https://github.com/curl/curl/pull/8260 + +Daniel Stenberg (15 Jan 2022) +- [Alessandro Ghedini brought this change] + + quiche: verify the server cert on connect + + Similarly to c148f0f551f9bea0e3d0, make quiche correctly acknowledge + `CURLOPT_SSL_VERIFYPEER` and `CURLOPT_SSL_VERIFYHOST`. + + Fixes #8173 + Closes #8275 + +- [Ikko Ashimine brought this change] + + checksrc: fix typo in comment + + enfore -> enforce + + Closes #8281 + +- curl-openssl: remove the OpenSSL headers and library versions check + + It is more work to maintain that check than the (any?) benefit it + brings. + + Fixes #8279 + Reported-by: Satadru Pramanik + Closes #8280 + +- mqtt: free any leftover when done + + Oss-fuzz found an issue when the "sendleftovers" pointer could leak memory. + Fix this by always freeing it (if still assigned) in the done function. + + Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43515 + Closes #8274 + +- formdata: avoid size_t => long typecast overflows + + Typically a problem for platforms with 32 bit long and 64 bit size_t + + Reported-by: Fabian Yamaguchi + Bug: https://hackerone.com/reports/1444539 + Closes #8272 + +- RELEASE-NOTES: synced + + bump next release to become 7.82.0 + +Marcel Raad (13 Jan 2022) +- build: enable -Warith-conversion + + This makes the behavior consistent between GCC 10 and earlier versions. + + Closes https://github.com/curl/curl/pull/8271 + +- build: fix -Wenum-conversion handling + + Don't enable that warning when warnings are disabled. + Also add it to CMake. + + Closes https://github.com/curl/curl/pull/8271 + +- appveyor: use VS 2017 image for the autotools builds + + The newer images don't have all required MSYS2 packages. + + Fixes https://github.com/curl/curl/issues/8248 + Closes https://github.com/curl/curl/pull/8265 + +- appveyor: update images from VS 2019 to 2022 + + Closes https://github.com/curl/curl/pull/8265 + +Daniel Stenberg (12 Jan 2022) +- [Michał Antoniak brought this change] + + mbedtls: return CURLcode result instead of a mbedtls error code + + ... when a certificate fails to be loaded from a blob + + Closes #8266 + +- curl_multi_socket.3: remove callback and typical usage descriptions + + 1. The callback is better described in the option for setting it. Having + it in a single place reduces the risk that one of them is wrong. + + 2. The "typical usage" is wrong since the functions described in this + man page are both deprecated so they cannot be used in any "typical" way + anymore. + + Closes #8262 + +- curl-functions.m4: revert DYLD_LIBRARY_PATH tricks in CURL_RUN_IFELSE + + Mostly reverts ba0657c343f, but now instead just run the plain macro on + darwin. The approach as used on other platforms is simply not necessary + on macOS. + + Fixes #8229 + Reported-by: Ryan Schmidt + Closes #8247 + +- [Patrick Monnerat brought this change] + + openldap: implement SASL authentication + + As credentials can be quite different depending on the mechanism used, + there are no default mechanisms for LDAP and simple bind with a DN is + then used. + + The caller has to provide mechanism(s) using CURLOPT_LOGIN_OPTIONS to + enable SASL authentication and disable simple bind. + + Closes #8152 + +Jay Satiro (10 Jan 2022) +- [Cameron Will brought this change] + + CURLOPT_RESOLVE.3: change example port to 443 + + 83cc966 changed documentation from using http to https. However, + CURLOPT_RESOLVE being set to port 80 in the documentation means that it + isn't valid for the new URL. Update to 443. + + Closes https://github.com/curl/curl/pull/8258 + +Daniel Stenberg (10 Jan 2022) +- [Fabian Keil brought this change] + + test374: gif data without new line at the end + + Closes #8239 + +- [Fabian Keil brought this change] + + runtests.pl: support the nonewline attribute for the data part + + Added to FILEFORMAT + + Closes #8239 + +- [Patrick Monnerat brought this change] + + curl tool: erase some more sensitive command line arguments + + As the ps command may reveal sensitive command line info, obfuscate + options --tlsuser, --tlspasswd, --proxy-tlsuser, --proxy-tlspassword and + --oauth2-bearer arguments. + + Reported-by: Stephen Boost <s.booth@epcc.ed.ac.uk> + + Closes #7964 + +- mesalink: remove support + + Mesalink has ceased development. We can no longer encourage use of it. + It seems to be continued under the name TabbySSL, but no attempts have + (yet) been to make curl support it. + + Fixes #8188 + Closes #8191 + +- ldap: return CURLE_URL_MALFORMAT for bad URL + + For consistency, use the same return code for URL malformats, + independently of what scheme that is used. Previously this would return + CURLE_LDAP_INVALID_URL, but starting now that error cannot be returned. + + Closes #8170 + +- docs/cmdline-opts: add "mutexed" options for more http versions + + Update four http version man page sections. + + Closes #8254 + +- [Stephen M. Coakley brought this change] + + rustls: add CURLOPT_CAINFO_BLOB support + + Add support for `CURLOPT_CAINFO_BLOB` `CURLOPT_PROXY_CAINFO_BLOB` to the + rustls TLS backend. Multiple certificates in a single PEM string are + supported just like OpenSSL does with this option. + + This is compatible at least with rustls-ffi 0.8+ which is our new + minimum version anyway. + + I was able to build and run this on Windows, pulling trusted certs from + the system and then add them to rustls by setting + `CURLOPT_CAINFO_BLOB`. Handy! + + Closes #8255 + +- scripts/copyright.pl: ignore missing files + +- RELEASE-NOTES: synced + +- data/DISABLED: disable test 313 for wolfssl builds + + It was previously disabled only in the CI jobs yaml + + Closes #8252 + +- runtests: make 'wolfssl' a testable feature + + Closes #8252 + +- GHA: install stunnel in the medbtls + wolfssl CI jobs + + Closes #8252 + +- CI: move the rustls CI job to GHA from Zuul + + Closes #8251 + +- DISABLE: disable a dozen tests in the rustls build + + Disables tests that don't yet work with the rustls backend. + + Fixes #8004 + Closes #8250 + +- runtests: make 'rustls' a testable feature + +- remote-header-name.d: clarify + + - it strips off the path from the server provided name + - it saves in current directory or --output-dir + + Ref: https://curl.se/mail/archive-2022-01/0032.html + Closes #8249 + +- url: given a user in the URL, find pwd for that user in netrc + + Add test 380 and 381 to verify, edited test 133 + + Reported-by: Manfred Schwarb + Fixes #8241 + Closes #8243 + +- [Niels Martignène brought this change] + + mbedtls: Fix ssl_init error with mbedTLS 3.1.0+ + + Since mbedTLS 3.1.0, mbedtls_ssl_setup() fails if the provided + config struct is not valid. + + mbedtls_ssl_config_defaults() needs to be called before the config + struct is passed to mbedtls_ssl_setup(). + + Closes #8238 + +- [Filip Lundgren brought this change] + + cmake: fix iOS CMake project generation error + + Closes #8244 + +- ngtcp2: fix declaration of ‘result’ shadows a previous local + + Follow-up to 8fbd6feddfa587cfd3 + + Closes #8245 + +- openssl.h: avoid including OpenSSL headers here + + ... by instead using the struct version of the typedef'ed pointer. To + fix build errors when both Schannel and OpenSSL are enabled. + + Fixes #8240 + Reported-by: Jan Ehrhardt + Closes #8246 + +- curl_url_set.3: mention when CURLU_ALLOW_SPACE was added + +- tool_findfile: free mem properly + + Follow-up to 764e4f066d5 + + Closes #8242 + +- tool_findfile: check ~/.config/curlrc too + + ... after the initial checks for .curlrc and if XDG_CONFIG_HOME is not + set, use $HOME and $CURL_HOME to check if ~/.config/curlrc is present. + + Add test 436 to verify + + Reported-by: Sandro Jaeckel + Fixes #8208 + Closes #8213 + +- runtests: allow client/file to specify multiple directories + + ... and make sure to mkdir them all + +- scripts/copyright.pl: support many provided file names on the cmdline + +- [Fabian Keil brought this change] + + tests/FILEFORMAT.md: fix typo + +- [Fabian Keil brought this change] + + Add test373: multiple chunks with binary zeros + +- [Fabian Keil brought this change] + + Add test372: binary zero in data element + +- [Fabian Keil brought this change] + + tests/server/getpart.c: properly deal with binary data containing NUL bytes + +- [Fabian Keil brought this change] + + runtests.pl: properly print the test if it contains binary zeros + +- mailmap: Xiaoke Wang + +- openssl: copyright year update + + Follow-up to 30aea2b1ede + +- scripts/copyright.pl: hush unless -v (for verbose) is used + +- [Xiaoke Wang brought this change] + + openssl: check the return value of BIO_new_mem_buf() + + Closes #8233 + +- examples/multi-app.c: call curl_multi_remove_handle as well + + Fixes #8234 + Reported-by: Melroy van den Berg + Closes #8236 + +- COPYING: bump copyright year range + +- RELEASE-NOTES: synced + + and bump curlver after release + +- docs: fix mandoc -T lint formatting complaints + + Closes #8228 + +- next.d. remove .fi/.nf as they are handled by gen.pl + + Closes #8228 + +- gen.pl: terminate "example" sections better + + If the example (section that is prefixed with spaces) ends the + description gen.pl would previously miss to output the terminating .fi + + Closes #8228 + +- [Satadru Pramanik brought this change] + + curl-functions.m4: fix LIBRARY_PATH adjustment to avoid eval + + $$ usage in a m4 file introduces the PID in linux. + Instead, just duplicate previous working code with a case switch. + + Fixes #8229 + Closes #8230 + Version 7.81.0 (5 Jan 2022) Daniel Stenberg (5 Jan 2022) @@ -457,7 +4185,7 @@ Daniel Stenberg (13 Dec 2021) Closes #8137 -- [x2018 brought this change] +- [Xiaoke Wang brought this change] sha256/md5: return errors when init fails @@ -761,7 +4489,7 @@ Jay Satiro (2 Dec 2021) Prior to this change the fingerprint was mistakenly printed in binary. Daniel Stenberg (1 Dec 2021) -- [x2018 brought this change] +- [Xiaoke Wang brought this change] openssl: check the return value of BIO_new() @@ -1698,7 +5426,7 @@ Daniel Stenberg (29 Oct 2021) Closes #7885 -- [x2018 brought this change] +- [Xiaoke Wang brought this change] url: check the return value of curl_url() @@ -3761,4180 +7489,3 @@ Daniel Stenberg (23 Aug 2021) Reported-by: Randall S. Becker Fixes #7606 Closes #7608 - -Jay Satiro (22 Aug 2021) -- mksymbolsmanpage.pl: Fix showing symbol's last used version - - Prior to this change the symbol's deprecated version was erroneously - shown as its last used version. - - Bug: https://github.com/curl/curl/commit/4e53b94#commitcomment-55239509 - Reported-by: i-ky@users.noreply.github.com - -Daniel Stenberg (21 Aug 2021) -- mksymbolsmanpage.pl: match symbols case insenitively - - Follow-up to 4e53b9430c750 which made this bug show. - - Reported-by: i-ky - Bug: https://github.com/curl/curl/commit/4e53b9430c7504de8984796e2a2091ec16f27136#commitcomment-55239253 - Closes #7607 - -- asyn-ares: call ares_freeaddrinfo() to clean up addrinfo results - - As this leaks memory otherwise - - Follow-up to ba904db0705c931 - - Closes #7599 - -- [Ehren Bendler brought this change] - - wolfssl: clean up wolfcrypt error queue - - If wolfSSL is built in certain ways (OPENSSL_EXTRA or Debug), the error - queue gets added on to for each session and never freed. Fix it by - calling ERR_clear_error() like in vtls/openssl when needed. This func is - a no-op in wolfcrypt if the error queue is not enabled. - - Closes #7594 - -- man pages: remove trailing whitespaces - - Extended test 1173 (via the manpage-syntax.pl script) to detect and warn - for them. - - Ref: #7602 - Reported-by: a1346054 on github - Closes #7604 - -- mailmap: add Gleb Ivanovsky - -- config.d: escape the backslash properly - - Closes #7603 - -- [Don J Olmstead brought this change] - - curl_setup.h: sync values for HTTP_ONLY - - The values for HTTP_ONLY differed between CMakeLists.txt and - curl_setup.h. Sync them and sort the values in curl_setup.h to make it - easier to spot differences. - - Closes #7601 - -Jay Satiro (21 Aug 2021) -- configure: set classic mingw minimum OS version to XP - - - If the user has not specified a minimum OS version (via WINVER or - _WIN32_WINNT macros) then set it to Windows XP. - - Prior to this change classic MinGW defaulted the minimum OS version - to Windows NT 4.0 which is way too old. At least Windows XP is needed - for getaddrinfo (which resolves hostnames to IPv6 addresses). - - Ref: https://github.com/curl/curl/issues/7483#issuecomment-891597034 - - Closes https://github.com/curl/curl/pull/7581 - -- schannel: Work around typo in classic mingw macro - - - Define ALG_CLASS_DHASH (the typo from the include) to ALG_CLASS_HASH. - - Prior to this change there was an incomplete fix to ignore the - CALG_TLS1PRF macro on those versions of MinGW where it uses the - ALG_CLASS_DHASH typoed macro. - - Ref: 48cf45c - Ref: https://osdn.net/projects/mingw/ticket/38391 - Ref: https://github.com/curl/curl/issues/2924 - - Closes https://github.com/curl/curl/pull/7580 - -Daniel Stenberg (20 Aug 2021) -- RELEASE-NOTES: synced - -- http_proxy: fix user-agent and custom headers for CONNECT with hyper - - Enable test 287 - - Closes #7598 - -- c-hyper: initial support for "dumping" 1xx HTTP responses - - With the use hyper_request_on_informational() - - Enable test 155 and 158 - - Closes #7597 - -Marc Hoersken (18 Aug 2021) -- tests/*server.pl: flush output before executing subprocess - - Also avoid shell processes staying around by using exec. - This is necessary to avoid output data being buffering - inside the process chain of Perl, Bash/Shell and our - test server binaries. On non-Windows systems the exec - will also make the subprocess replace the intermediate - shell, but on Windows it will at least bind the processes - together since there is no real fork or exec available. - - See: https://cygwin.com/cygwin-ug-net/highlights.html - and: https://docs.microsoft.com/cpp/c-runtime-library/exec-wexec-functions - Ref: https://github.com/curl/curl/pull/7530#issuecomment-900949010 - - Reviewed-by: Daniel Stenberg - Reviewed-by: Jay Satiro - Closes #7530 - -- CI: use GitHub Container Registry instead of Docker Hub - - Avoid limits on Docker Hub and improve image pull/download speed. - - Closes #7587 - -Daniel Stenberg (18 Aug 2021) -- openssl: when creating a new context, there cannot be an old one - - Remove the previous handling that would call SSL_CTX_free(), and instead - add an assert that halts a debug build if there ever is a context - already set at this point. - - Closes #7585 - -Jay Satiro (18 Aug 2021) -- KNOWN_BUGS: Renegotiate from server may cause hang for OpenSSL backend - - Closes https://github.com/curl/curl/issues/6785 - -Viktor Szakats (17 Aug 2021) -- docs/BINDINGS: URL update - -Marc Hoersken (17 Aug 2021) -- tests/server/*.c: align handling of portfile argument and file - - 1. Call the internal variable portname (like pidname) everywhere. - 2. Have a variable wroteportfile (like wrotepidfile) everywhere. - 3. Make sure the file is cleaned up on exit (like pidfile). - 4. Add parameter --portfile to usage outputs everywhere. - - Reviewed-by: Daniel Stenberg - - Replaces #7523 - Closes #7574 - -Daniel Gustafsson (17 Aug 2021) -- KNOWN_BUGS: Fix a number of typos in KNOWN_BUGS - - Fixes a set of typos found in section 11.3. - -Daniel Stenberg (17 Aug 2021) -- getparameter: fix the --local-port number parser - - It could previously get tricked into parsing the uninitialized stack - based buffer. - - Reported-by: Brian Carpenter - Closes #7582 - -- KNOWN_BUGS: Can't use Secure Transport with Crypto Token Kit - - Closes #7048 - -- [Jan Verbeek brought this change] - - curl: add warning for ignored data after quoted form parameter - - In an argument like `-F 'x=@/etc/hostname;filename="foo"abc'` the `abc` - is ignored. This adds a warning if the ignored data isn't all - whitespace. - - Closes #7394 - -Jay Satiro (17 Aug 2021) -- codeql: fix error "Resource not accessible by integration" - - - Enable codeql writing security-events. - - GitHub set the default permissions to read, apparently since earlier - this year. - - Ref: https://github.com/github/codeql-action/issues/464 - Ref: https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/ - - Fixes https://github.com/curl/curl/issues/7575 - Closes https://github.com/curl/curl/pull/7576 - -- tool_operate: Fix --fail-early with parallel transfers - - - Abort via progress callback to fail early during parallel transfers. - - When a critical error occurs during a transfer (eg --fail-early - constraint) then other running transfers will be aborted via progress - callback and finish with error CURLE_ABORTED_BY_CALLBACK (42). In this - case, the callback error does not become the most recent error and a - custom error message is used for those transfers: - - curld --fail --fail-early --parallel - https://httpbin.org/status/404 https://httpbin.org/delay/10 - - curl: (22) The requested URL returned error: 404 - curl: (42) Transfer aborted due to critical error in another transfer - - > echo %ERRORLEVEL% - 22 - - Fixes https://github.com/curl/curl/issues/6939 - Closes https://github.com/curl/curl/pull/6984 - -Daniel Stenberg (17 Aug 2021) -- [Sergey Markelov brought this change] - - sectransp: support CURLINFO_CERTINFO - - Fixes #4130 - Closes #7372 - -- ngtcp2: remove the acked_crypto_offset struct field init - - ... as it is gone from the API upstream. - - Closes #7578 - -- misc: update incorrect copyright year ranges - - Closes #7577 - -- KNOWN_BUGS: HTTP/3 quiche upload large file fails - - Closes #7532 - -- KNOWN_BUGS: CMake build with MIT Kerberos does not work - - Closes #6904 - -- TODO: add asynch getaddrinfo support - - Closes #6746 - -- RELEASE-NOTES: synced - -- [Artur Sinila brought this change] - - http2: revert call the handle-closed function correctly on closed stream - - Reverts 252790c5335a221 - - Assisted-by: Gergely Nagy - Fixes #7400 - Closes #7525 - -- [Patrick Monnerat brought this change] - - auth: do not append zero-terminator to authorisation id in kerberos - - RFC4752 Section 3.1 states "The authorization identity is not terminated - with a zero-valued (%x00) octet". Although a comment in code said it may - be needed anyway, nothing confirms it. In addition, servers may consider - it as part of the identity, causing a failure. - - Closes #7008 - -- [Patrick Monnerat brought this change] - - auth: use sasl authzid option in kerberos - - ... instead of deriving it from active ticket. - Closes #7008 - -- [Patrick Monnerat brought this change] - - auth: we do not support a security layer after kerberos authentication - - Closes #7008 - -- [Patrick Monnerat brought this change] - - auth: properly handle byte order in kerberos security message - - Closes #7008 - -- [z2_ brought this change] - - x509asn1: fix heap over-read when parsing x509 certificates - - Assisted-by: Patrick Monnerat - Closes #7536 - -- KNOWN_BUGS: Disconnects don't do verbose - - Closes #6995 - -- mailmap: fixup Michał Antoniak - -- [Michał Antoniak brought this change] - - build: fix compiler warnings - - For when CURL_DISABLE_VERBOSE_STRINGS and DEBUGBUILD flags are both - active. - - - socks.c : warning C4100: 'lineno': unreferenced formal parameter - (co-authored by Daniel Stenberg) - - - mbedtls.c: warning C4189: 'port': local variable is initialized but - not referenced - - - schannel.c: warning C4189: 'hostname': local variable is initialized - but not referenced - - Cloes #7528 - -- [Gleb Ivanovsky brought this change] - - CODE_STYLE-md: fix bold font style - - Markdown gets confused with abundance of asterisks, so use underscores - instead. - - Reviewed-by: Daniel Gustafsson - Closes #7569 - -- [Gleb Ivanovsky brought this change] - - CODE_STYLE-md: add missing comma - - Reviewed-by: Daniel Gustafsson - Closes #7570 - -- [Daniel Gustafsson brought this change] - - examples/ephiperfifo.c: simplify signal handler - - The signal handler registered for SIGINT is only handling SIGINT - so there isn't much need for inspecting the signo. While there, - rename the handler to be more specific. - - g_should_exit should really be of sig_atomic_t type, but relying - on autoconf in the examples seems like a bad idea so keep that - for now. - - Reviewed-by: Daniel Stenberg - Closes #7310 - -- c-hyper: initial step for 100-continue support - - Enabled test 154 - - Closes #7568 - -- [Ikko Ashimine brought this change] - - vtls: fix typo in schannel_verify.c - - occurence -> occurrence - - Closes #7566 - -- [Emil Engler brought this change] - - curl_url_get.3: clarify about path and query - - The current man-page lacks some details regarding the obtained path and - query. - - Closes #7563 - -- c-hyper: fix header value passed to debug callback - - Closes #7567 - -Viktor Szakats (12 Aug 2021) -- cleanup: URL updates - - - replace broken URL with the one it was most probably pointing to - when added (lib/tftp.c) - - replace broken URL with archive.org link (lib/curl_ntlm_wb.c) - - delete unnecessary protocol designator from archive.org URL - (docs/BINDINGS.md) - - Closes #7562 - -Daniel Stenberg (12 Aug 2021) -- [April King brought this change] - - DEPRECATE.md: linkify curl-library mailing list - - Closes #7561 - -- [Barry Pollard brought this change] - - output.d: add method to suppress response bodies - - Closes #7560 - -- TODO: remove 'c-ares deviates on http://1346569778' - - Fixed since 56a037cc0ad1b2 (7.77.0) - -- [Colin O'Dell brought this change] - - BINDINGS.md: update links to use https where available - - Closes #7558 - -- asyn-ares.c: move all version number checks to the top - - ... and use #ifdef [feature] in the code as per our guidelines. - -- ares: use ares_getaddrinfo() - - ares_getaddrinfo() is the getaddrinfo() cloned provided by c-ares, introduced - in version 1.16.0. - - With older c-ares versions, curl invokes ares_gethostbyname() twice - once for - IPv4 and once for IPv6 to resolve both addresses, and then combines the - returned results. - - Reported-by: jjandesmet - Fixes #7364 - Closes #7552 - -- [Tatsuhiro Tsujikawa brought this change] - - ngtcp2: utilize crypto API functions to simplify - - Closes #7551 - -- [megatronking brought this change] - - ngtcp2: reset the oustanding send buffer again when drained - - Closes #7538 - -Michael Kaufmann (10 Aug 2021) -- progress: fix a compile warning on some systems - - lib/progress.c:380:40: warning: conversion to 'long double' from - 'curl_off_t {aka long long int}' may alter its value [-Wconversion] - - Closes #7549 - -Daniel Stenberg (10 Aug 2021) -- RELEASE-NOTES: synced - -- http: consider cookies over localhost to be secure - - Updated test31. - Added test 392 to verify secure cookies used for http://localhost - - Reviewed-by: Daniel Gustafsson - Fixes #6733 - Closes #7263 - -- TODO: erase secrets from heap/stack after use - - Closes #7268 - -Jay Satiro (10 Aug 2021) -- hostip: Make Curl_ipv6works function independent of getaddrinfo - - - Do not assume IPv6 is not working when getaddrinfo is not present. - - The check to see if IPv6 actually works is now independent of whether - there is any resolver that can potentially resolve a hostname to IPv6. - - Prior to this change if getaddrinfo() was not found at compile time then - Curl_ipv6works() would be defined as a macro that returns FALSE. - - When getaddrinfo is not found then libcurl is built with CURLRES_IPV4 - defined instead of CURLRES_IPV6, meaning that it cannot do IPv6 lookups - in the traditional way. With this commit if libcurl is built with IPv6 - support (ENABLE_IPV6) but without getaddrinfo (CURLRES_IPV6), and the - IPv6 stack is actually working, then it is possible for libcurl to - resolve IPv6 addresses by using DoH. - - Ref: https://github.com/curl/curl/issues/7483#issuecomment-890765378 - - Closes https://github.com/curl/curl/pull/7529 - -- test1565: fix windows build errors - - - Use our wait_ms() instead of sleep() since Windows doesn't have the - latter. - - - Use a separate variable to keep track of whether the pthread_t thread - id is valid. - - On Windows pthread_t is not an integer type. pthread offers no macro for - invalid pthread_t thread id, so validity is kept track of separately. - - Closes https://github.com/curl/curl/pull/7527 - -- [Jeremy Falcon brought this change] - - winbuild/README.md: clarify GEN_PDB option - - - Document that GEN_PDB option creates an external database. - - Ref: https://github.com/curl/curl/issues/7502 - -Daniel Stenberg (9 Aug 2021) -- [Tatsuhiro Tsujikawa brought this change] - - ngtcp2: replace deprecated functions with nghttp3_conn_shutdown_stream_read - - Closes #7546 - -- [Tatsuhiro Tsujikawa brought this change] - - ngtcp2: rework the return value handling of ngtcp2_conn_writev_stream - - Rework the return value handling of ngtcp2_conn_writev_stream and treat - NGTCP2_ERR_STREAM_SHUT_WR separately. - - Closes #7546 - -- configure: error out if both ngtcp2 and quiche are specified - - Reported-by: Vincent Grande - See #7539 - Closes #7545 - -- [Jeff Mears brought this change] - - easy: use a custom implementation of wcsdup on Windows - - ... so that malloc/free overrides from curl_global_init are used for - wcsdup correctly. - - Closes #7540 - -- zuul: add an mbedtls3 CI job - - Closes #7544 - -- [Benau brought this change] - - mbedTLS: initial 3.0.0 support - - Closes #7428 - -- RELEASE-NOTES: synced - -- configure.ac: revert bad nghttp2 library detection improvements - - This reverts commit b4b34db65f9f8, 673753344c5f and 29c7cf79e8b. - - The logic is now back to assuming that the nghttp2 lib is called nghttp2 and - nothing else. - - Reported-by: Rui Pinheiro - Reported-by: Alex Crichton - Fixes #7514 - Closes #7515 - -- happy-eyeballs-timeout-ms.d: polish the wording - - Reported-by: Josh Soref - Fixes #7433 - Closes #7542 - -- [modbw brought this change] - - mbedtls_threadlock: fix unused variable warning - - Closes #7393 - -- [Tatsuhiro Tsujikawa brought this change] - - ngtcp2: compile with the latest ngtcp2 and nghttp3 - - Closes #7541 - -Marc Hoersken (31 Jul 2021) -- CI/cirrus: reduce compile time with increased parallism - - Cirrus CI VMs have 2 CPUs, let's use them also for Windows builds. - - Reviewed-by: Daniel Stenberg - Closes #7505 - -Daniel Stenberg (30 Jul 2021) -- [Bin Lan brought this change] - - tool/tests: fix potential year 2038 issues - - The length of 'long' in a 32-bit system is 32 bits, which cannot be used - to save timestamps after 2038. Most operating systems have extended - time_t to 64 bits. - - Remove the castings to long. - - Closes #7466 - -- compressed.d: it's a request, not an order - - Clarified - - Reported-by: Dan Jacobson - Reviewed-by: Daniel Gustafsson - Fixes #7516 - Closes #7517 - -- [Bernhard M. Wiedemann brought this change] - - tests: make three tests pass until 2037 - - after 2038 something in test1915 fails on 32-bit OSes - - Closes #7512 - -Daniel Gustafsson (30 Jul 2021) -- connect: remove superfluous conditional - - Commit dbd16c3e2 cleaned up the logic for traversing the addrinfos, - but the move left a conditional on ai which no longer is needed as - the while loop reevaluation will cover it. - - Closes #7511 - Reviewed-by: Carlo Marcelo Arenas Belón - Reviewed-by: Daniel Stenberg <daniel@haxx.se> - -Daniel Stenberg (29 Jul 2021) -- RELEASE-NOTES: synced - - and bump curlver to 7.79.0 for next release - -Marc Hoersken (29 Jul 2021) -- tests/*server.py: remove pidfile on server termination - - Avoid pidfile leaking/laying around after server already exited. - - Reviewed-by: Daniel Stenberg - Closes #7506 - -Daniel Gustafsson (27 Jul 2021) -- tool_main: fix typo in comment - - The referred to library is NSPR, so fix the switched around characters. - -Daniel Stenberg (28 Jul 2021) -- [Aleksandr Krotov brought this change] - - bearssl: support CURLOPT_CAINFO_BLOB - - Closes #7468 - -- curl.1: mention "global" flags - - Mention options that are "global". A global command line option is one - that doesn't get reset at --next uses and therefore don't need to be - used again. - - Reported-by: Josh Soref - - Fixes #7457 - Closes #7510 - -- CURLOPT_DOH_URL.3: CURLOPT_OPENSOCKETFUNCTION is not inherited - - Reported-by: Daniel Woelfel - Fixes #7441 - Closes #7509 - -- KNOWN_BUGS: add more HTTP/3 problems - - Closes #7351 - Closes #7339 - Closes #7125 - -Marc Hoersken (27 Jul 2021) -- CI/azure: reduce compile time with increased parallism - - Azure Pipelines CI VMs have 2 CPUs, let's use them. - - Closes #7489 - -Jay Satiro (27 Jul 2021) -- [Josh Soref brought this change] - - docs: fix grammar - - Fixes https://github.com/curl/curl/issues/7444 - Fixes https://github.com/curl/curl/issues/7451 - Fixes https://github.com/curl/curl/issues/7465 - Closes https://github.com/curl/curl/pull/7495 - -- mail-rcpt.d: fix grammar - - Remove confusing sentence that says to specify an e-mail address for - mail transfer, since that's implied. - - Reported-by: Josh Soref - - Fixes https://github.com/curl/curl/issues/7452 - Closes https://github.com/curl/curl/pull/7495 - -Daniel Stenberg (27 Jul 2021) -- c-hyper: remove the hyper_executor_poll() loop from Curl_http - - 1. it's superfluous - 2. it didn't work identically to the Curl_hyper_stream one which could - cause problems like #7486 - - Pointed-out-by: David Cook - Closes #7499 - -- curl-openssl.m4: check lib64 for the pkg-config file - - OpenSSL recently started putting the libs in $prefix/lib64 on 'make - install', so we check that directory for pkg-config data if the 'lib' - check fails. - - Closes #7503 - -- CURLOPT_SSL_CTX_*.3: tidy up the example - - Use the proper code style. Don't store return codes that aren't read. - Copy the same example into CURLOPT_SSL_CTX_FUNCTION.3 as well. - - Closes #7500 - -- example/cookie_interface: fix scan-build printf warning - - Follow-up to 4b79c4fb565 - - Fixes #7497 - Closes #7498 - -- [Josh Soref brought this change] - - limit-rate.d: clarify base unit - - Fixes #7439 - Closes #7494 - -- [Carlo Marcelo Arenas Belón brought this change] - - examples/cookie_interface: avoid printfing time_t directly - - time_t representation is undefined and varies on bitsize and signedness, - and as of C11 could be even non integer. - - instead of casting to unsigned long (which would truncate in systems - with a 32bit long after 2106) use difftime to get the elapsed time as a - double and print that (without decimals) instead. - - alternatively a cast to curl_off_t and its corresponding print - formatting could have been used (at least in POSIX) but portability and - curl agnostic code was prioritized. - - Closes #7490 - -Marc Hoersken (25 Jul 2021) -- tests/servers: remove obsolete pid variable - - Variable is not used since pidfile handling moved to util.[ch] - - Reviewed-by: Jay Satiro - Closes #7482 - -- tests/servers: use our platform-aware pid for server verification - - The pid used for server verification is later stored as pid2 in - the hash of running test servers and therefore used for shutdown. - - The pid used for shutdown must be the platform-aware (Win32) pid - to avoid leaking test servers while running them using Cygwin/msys. - - Reviewed-by: Jay Satiro - Closes #7481 - -- tests/runtests.pl: cleanup copy&paste mistakes and unused code - - Reviewed-by: Jay Satiro - Part of #7481 - -Daniel Stenberg (25 Jul 2021) -- RELEASE-NOTES: synced - - bumped to 7.78.1 for next release - -- http_proxy: clear 'sending' when the outgoing request is sent - - ... so that Curl_connect_getsock() will know how to wait for the socket - to become readable and not writable after the entire CONNECT request has - been issued. - - Regression added in 7.77.0 - - Reported-by: zloi-user on github - Assisted-by: Jay Satiro - Fixes #7155 - Closes #7484 - -Jay Satiro (25 Jul 2021) -- [Josh Soref brought this change] - - openssl: fix grammar - - Closes https://github.com/curl/curl/pull/7480 - -- configure.ac: tweak nghttp2 library name fix again - - - Change extraction to handle multiple library names returned by - pkg-config (eg a possible scenario with pkg-config --static). - - Ref: https://github.com/curl/curl/pull/7472 - - Closes https://github.com/curl/curl/pull/7485 - -Dan Fandrich (23 Jul 2021) -- Get rid of the unused HAVE_SIG_ATOMIC_T et. al. - - It was added in 2006 but I see no evidence it was ever used. - -Jay Satiro (23 Jul 2021) -- docs: change max-filesize caveat again - - - Add protocols field to max-filesize.d. - - - Revert wording on unknown file size caveat and do not discuss specific - protocols in that section. - - Partial revert of ecf0225. All max-filesize options now have the list of - protocols and it's clearer just to have that list without discussing - specific protocols in the caveat. - - Reported-by: Josh Soref - - Ref: https://github.com/curl/curl/issues/7453#issuecomment-884128762 - -Daniel Stenberg (22 Jul 2021) -- [Christian Weisgerber brought this change] - - configure: tweak nghttp2 library name fix - - commit 29c7cf79e8b44cf (shipped in 7.78.0) introduced a problem by - assuming that LIB_H2 does not have any leading whitespace. At least - OpenBSD's native pkg-config can produce such whitespace, though: - - $ pkg-config --libs-only-l libnghttp2 - -lnghttp2 - - As a result, the configure check for libnghttp2 will erroneously fail. - - Bug: https://curl.se/mail/lib-2021-07/0050.html - Closes #7472 - -- [Bastian Krause brought this change] - - docs/MQTT: update state of username/password support - - PR #7243 implemented username/password support for MQTT, so let's drop - these items from the caveats. - - Signed-off-by: Bastian Krause <bst@pengutronix.de> - - Closes #7474 - -- [Oleg Pudeyev brought this change] - - CURLMOPT_TIMERFUNCTION.3: remove misplaced "time" - - Closes #7470 - -Version 7.78.0 (21 Jul 2021) - -Daniel Stenberg (21 Jul 2021) -- RELEASE-NOTES: synced - - curl 7.78.0 release - -- winbuild/MakefileBuild.vc: bump copyright year - -Jay Satiro (21 Jul 2021) -- docs: mention max-filesize options also apply to MQTT transfers - - Also make it clearer that the caveat 'if the file size is unknown it - the option will have no effect' may apply to protocols other than FTP - and HTTP. - - Reported-by: Josh Soref - - Fixes https://github.com/curl/curl/issues/7453 - -- [Josh Soref brought this change] - - docs/cmdline: fix grammar and typos - -- [Josh Soref brought this change] - - dump-header.d: Drop suggestion to use for cookie storage - - Since --cookie-jar is the preferred way to store cookies, no longer - suggest using --dump-header to do so. - - Co-authored-by: Daniel Stenberg - - Closes https://github.com/curl/curl/issues/7414 - -- [Josh Soref brought this change] - - doc/cmdline: fix grammar and typos - - Closes https://github.com/curl/curl/pull/7454 - Closes https://github.com/curl/curl/pull/7455 - Closes https://github.com/curl/curl/pull/7456 - Closes https://github.com/curl/curl/pull/7459 - Closes https://github.com/curl/curl/pull/7460 - Closes https://github.com/curl/curl/pull/7461 - Closes https://github.com/curl/curl/pull/7462 - Closes https://github.com/curl/curl/pull/7463 - -Daniel Stenberg (20 Jul 2021) -- vtls: fix connection reuse checks for issuer cert and case sensitivity - - CVE-2021-22924 - - Reported-by: Harry Sintonen - Bug: https://curl.se/docs/CVE-2021-22924.html - -- sectransp: check for client certs by name first, then file - - CVE-2021-22926 - - Bug: https://curl.se/docs/CVE-2021-22926.html - - Assisted-by: Daniel Gustafsson - Reported-by: Harry Sintonen - -- telnet: fix option parser to not send uninitialized contents - - CVS-2021-22925 - - Reported-by: Red Hat Product Security - Bug: https://curl.se/docs/CVE-2021-22925.html - -Jay Satiro (20 Jul 2021) -- connect: fix wrong format specifier in connect error string - - 0842175 (not in any release) used the wrong format specifier (long int) - for timediff_t. On an OS such as Windows libcurl's timediff_t (usually - 64-bit) is bigger than long int (32-bit). In 32-bit Windows builds the - upper 32-bits of the timediff_t were erroneously then used by the next - format specifier. Usually since the timeout isn't larger than 32-bits - this would result in null as a pointer to the string with the reason for - the connection failing. On other OSes or maybe other compilers it could - probably result in garbage values (ie crash on deref). - - Before: - Failed to connect to localhost port 12345 after 1201 ms: (nil) - - After: - Failed to connect to localhost port 12345 after 1203 ms: Connection refused - - Closes https://github.com/curl/curl/pull/7449 - -- winbuild: support alternate nghttp2 static lib name - - - Support both nghttp2.lib and nghttp2_static.lib for static nghttp2. - - nghttp2 briefly changed its static lib name to nghttp2_static, but then - made the _static suffix optional. - - Ref: https://github.com/nghttp2/nghttp2/pull/1394 - Ref: https://github.com/nghttp2/nghttp2/pull/1418 - Ref: https://github.com/nghttp2/nghttp2/issues/1466 - - Reported-by: Pierre Yager - - Fixes https://github.com/curl/curl/issues/7446 - Closes https://github.com/curl/curl/pull/7447 - -- [Josh Soref brought this change] - - docs/cmdline: fix grammar and typos - - Closes https://github.com/curl/curl/pull/7432 - Closes https://github.com/curl/curl/pull/7436 - Closes https://github.com/curl/curl/pull/7438 - Closes https://github.com/curl/curl/pull/7440 - Closes https://github.com/curl/curl/pull/7445 - -- [Josh Soref brought this change] - - delegation.d: mention what happens when used multiple times - - Closes https://github.com/curl/curl/pull/7408 - -- [Josh Soref brought this change] - - create-file-mode.d: mention what happens when used multiple times - - Closes https://github.com/curl/curl/pull/7407 - -- [Josh Soref brought this change] - - config.d: split comments and option-per line - - Closes https://github.com/curl/curl/pull/7405 - -Daniel Stenberg (19 Jul 2021) -- misc: copyright year range updates - -- mailmap: add Tobias and Timur - -Daniel Gustafsson (18 Jul 2021) -- [Josh Soref brought this change] - - docs: spell out directories instead of dirs in create-dirs - - Write out directories rather than using the dirs abbrevation. Also - use plural form consistently, even if the code in the end might just - create a single directory. - - Closes #7406 - Reviewed-by: Daniel Stenberg <daniel@haxx.se> - Reviewed-by: Daniel Gustafsson <daniel@yesql.se> - -- [Tobias Nyholm brought this change] - - docs: correct spelling errors and a broken link - - Update grammar and spelling in docs and source code comments. - - Closes: #7427 - Reviewed-by: Daniel Stenberg <daniel@haxx.se> - -Marc Hoersken (18 Jul 2021) -- CI/cirrus: install impacket from PyPI instead of FreeBSD packages - - Availability of impacket as FreeBSD package is too flaky. - - Stick to legacy version of cryptography which still - supports OpenSSL version 1.0.2 due to FreeBSD 11. - - Reviewed-by: Daniel Stenberg - - Closes #7418 - -Daniel Stenberg (18 Jul 2021) -- [Josh Soref brought this change] - - docs/cmdline: mention what happens when used multiple times - - For --dns-ipv4-addr, --dns-ipv6-addr and --dns-servers - - Closes #7410 - Closes #7411 - Closes #7412 - -- [Michał Antoniak brought this change] - - lib: fix compiler warnings with CURL_DISABLE_NETRC - - warning C4189: 'netrc_user_changed': local variable is initialized but - not referenced - - warning C4189: 'netrc_passwd_changed': local variable is initialized but - not referenced - - Closes #7423 - -- disable-epsv.d: remove duplicate "(FTP)" - - ... since the tooling adds that to the output based on the "Protocols:" - tag. - -- [Max Zettlmeißl brought this change] - - docs: make the documentation for --etag-save match the program behaviour - - When using curl with the option `--etag-save` I expected it to save the - ETag without its surrounding quotes, as stated by the documentation in - the repository and by the generated man pages. - - My first endeavour was to fix the program, but while investigating the - history of the relevant parts, I discovered that curl once saved the - ETag without the quotes. This was undone by Daniel Stenberg in commit - `98c94596f5928840177b6bd3c7b0f0dd03a431af`, therefore I decided that in - this case the documentation should be adjusted to match the behaviour of - curl. - - The changed save behaviour also made parts of the `--etag-compare` - documentation wrong or superfluous, so I adjusted those accordingly. - - Closes #7429 - -- [Josh Soref brought this change] - - write-out.d: add missing periods - - Closes #7404 - -- [Josie Huddleston brought this change] - - easy: during upkeep, attach Curl_easy to connections in the cache - - During the protocol-specific parts of connection upkeep, some code - assumes that the data->conn pointer already is set correctly. However, - there's currently no guarantee of that in the code. - - This fix temporarily attaches each connection to the Curl_easy object - before performing the protocol-specific connection check on it, in a - similar manner to the connection checking in extract_if_dead(). - - Fixes #7386 - Closes #7387 - Reported-by: Josie Huddleston - -- [Josh Soref brought this change] - - cleanup: spell DoH with a lowercase o - - Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> - - Closes #7413 - -- [Josh Soref brought this change] - - TheArtOfHttpScripting: polish - - - add missing backticks and comma - - - fix proxy description: - - * example proxy isn't local - * locally doesn't really make sense - - Closes #7416 - -- [Josh Soref brought this change] - - form.d: add examples of `,`/`;` for file[name] - - Fixes #7415 - Closes #7417 - -- [Michał Antoniak brought this change] - - mbedtls: Remove unnecessary include - - - curl_setup.h: all references to mbedtls_md4* functions and structures - are in the md4.c. This file already includes the <mbedtls/md4.h> file - along with the file existence control (defined (MBEDTLS_MD4_C)) - - - curl_ntlm_core.c: unnecessary include - repeated below - - Closes #7419 - -- RELEASE-NOTES: synced - -Jay Satiro (16 Jul 2021) -- [User Sg brought this change] - - multi: fix crash in curl_multi_wait / curl_multi_poll - - Appears to have been caused by 51c0ebc (precedes 7.77.0) which added a - VALID_SOCK check to one of the loops through the sockets but not the - other. - - Reported-by: sylgal@users.noreply.github.com - Authored-by: sylgal@users.noreply.github.com - - Fixes https://github.com/curl/curl/issues/7379 - Closes https://github.com/curl/curl/pull/7389 - -- [Daniel Gustafsson brought this change] - - tool_help: remove unused define - - The PRINT_LINES_PAUSE macro is no longer used, and has been mostly - cleaned out but one occurrence remained. - - Closes https://github.com/curl/curl/pull/7380 - -- [Sergey Markelov brought this change] - - build: fix compiler warnings when CURL_DISABLE_VERBOSE_STRINGS - - fix compiler warnings about unused variables and parameters when - built with --disable-verbose. - - Closes https://github.com/curl/curl/pull/7377 - -- [Andrea Pappacoda brought this change] - - build: fix IoctlSocket FIONBIO check - - Prior to this change HAVE_IOCTLSOCKET_CAMEL_FIONBIO mistakenly checked - for (lowercase) ioctlsocket when it should have checked for IoctlSocket. - - Closes https://github.com/curl/curl/pull/7375 - -- [Timur Artikov brought this change] - - configure: fix nghttp2 library name for static builds - - Don't hardcode the nghttp2 library name, - because it can vary, be "nghttp2_static" for example. - - Fixes https://github.com/curl/curl/issues/7367 - Closes https://github.com/curl/curl/pull/7368 - -Gisle Vanem (16 Jul 2021) -- [PellesC] fix _lseeki64() macro - -- [SChannel] Use '_tcsncmp()' instead - - Revert previous change for PellesC. - - Instead replace all use of `_tcsnccmp()` with `_tcsncmp()`. - -- [PellesC] missing '_tcsnccmp' - - PellesC compiler does not have this macro in it's `<tchar.h>` - -Daniel Gustafsson (14 Jul 2021) -- TODO: add mention of mbedTLS 3 incompatibilities - - Wyatt OʼDay reported in #7385 that mbedTLS isn't backwards compatible - and curl no longer builds with it. Document the need to fix our support - until so has been done. - - Closes #7390 - Fixes #7385 - Reported-by: Wyatt OʼDay - Reviewed-by: Jay Satiro <raysatiro@yahoo.com> - -- docs: fix inconsistencies in EGDSOCKET documentation - - Only the OpenSSL backend actually use the EGDSOCKET, and also use - TLS consistently rather than mixing SSL and TLS. While there, also - fix a minor spelling nit. - - Closes: #7391 - Reviewed-by: Jay Satiro <raysatiro@yahoo.com> - -- [Борис Верховский brought this change] - - docs: document missing arguments to commands - - This is a followup to commit f410b9e538129e77607fef1 fixing a few - more commands which takes arguments. - - Closes #7382 - Reviewed-by: Daniel Gustafsson <daniel@yesql.se> - -- [Randolf J brought this change] - - docs: fix incorrect argument name reference - - The documentation for the read callback was erroneously referencing - the nitems argument by nmemb. The error was introduced in commit - ce0881edee3c7. - - Closes #7383 - Reviewed-by: Daniel Gustafsson <daniel@yesql.se> - -- [Борис Верховский brought this change] - - tool_help: Document that --tlspassword takes a password - - Closes #7378 - Reviewed-by: Daniel Stenberg <daniel@haxx.se> - -- scripts: Fix typo in release-notes instructions - - The command to run had a typo in the pathname which prevented copy - pasting it to work, which has annoyed me enough to fix this now. - -- RELEASE-NOTES: synced - -Jay Satiro (10 Jul 2021) -- write-out.d: Clarify urlnum is not unique for de-globbed URLs - - Reported-by: Коваленко Анатолий Викторович - - Fixes https://github.com/curl/curl/issues/7342 - Closes https://github.com/curl/curl/pull/7369 - -Daniel Gustafsson (3 Jul 2021) -- [William Desportes brought this change] - - docs: Fix typos - - Closes: #7370 - Reviewed-by: Daniel Gustafsson <daniel@yesql.se> - -Daniel Stenberg (8 Jul 2021) -- [Jonathan Wernberg brought this change] - - Revert "ftp: Expression 'ftpc->wait_data_conn' is always false" - - The reverted commit introduced a logic error in code that was - correct. - - The client using libcurl would notice the error since FTP file - uploads in active transfer mode would somtimes complete with - success despite no transfer having been performed and the - "uploaded" file thus not being on the remote server afterwards. - - The FTP server would notice the error because it receives a - RST on the data connection it has established with the client - before any data was transferred at all. - - The logic error happens if the STOR response from the server have - arrived by the time ftp_multi_statemach() in the affected code path - is called, but the incoming data connection have not arrived yet. - In that case, the processing of the STOR response will cause - 'ftpc->wait_data_conn' to be set to TRUE, contradicting the comment - in the code. Since 'complete' will also be set, later logic would - believe the transfer was done. - - In most cases, the STOR response will not have arrived yet when - the affected code path is executed, or the incoming connection will - also have arrived, and thus the error would not express itself. - But if the speed difference of the device using libcurl and the - FTP server is exactly right, the error may happen as often as in - one out of hundred file transfers. - - This reverts commit 49f3117a238b6eac0e22a32f50699a9eddcb66ab. - - Bug: https://curl.se/mail/lib-2021-07/0025.html - Closes #7362 - -- msnprintf: return number of printed characters excluding null byte - - ... even when the output is "capped" by the maximum length argument. - - Clarified in the docs. - - Closes #7361 - -- infof: remove newline from format strings, always append it - - - the data needs to be "line-based" anyway since it's also passed to the - debug callback/application - - - it makes infof() work like failf() and consistency is good - - - there's an assert that triggers on newlines in the format string - - - Also removes a few instances of "..." - - - Removes the code that would append "..." to the end of the data *iff* - it was truncated in infof() - - Closes #7357 - -- examples/multi-single: fix scan-build warning - - warning: Value stored to 'mc' during its initialization is never read - - Follow-up to ae8e11ed5fd2ce - - Closes #7360 - -- wolfssl: failing to set a session id is not reason to error out - - ... as it is *probably* just timed out. - - Reported-by: Francisco Munoz - - Closes #7358 - -- docs/examples: use curl_multi_poll() in multi examples - - The API is soon two years old and deserves being shown as the primary - way to drive multi code as it makes it much easier to write code. - - multi-poll: removed - - multi-legacy: add to show how we did multi API use before - curl_multi_wait/poll. - - Closes #7352 - -- KNOWN_BUGS: flaky Windows CI builds - - Closes #6972 - -- RELEASE-NOTES: synced - -- test1147: hyper doesn't allow "crazy" request headers like built-in - - ... so strip that from the test. - - Closes #7349 - -- c-hyper: bail on too long response headers - - To match with built-in behaviors. Makes test 1154 work. - - Closes #7350 - -- test1151: added missing CRLF to work with hyper - - Closes #7350 - -- c-hyper: add support for transfer-encoding in the request - - Closes #7348 - -- [Andrea Pappacoda brought this change] - - cmake: remove libssh2 feature checks - - libssh2 features are detected based on version since commit - 9dbbba997608f7c3c5de1c627c77c8cd2aa85b73 - - Closes #7343 - -- test1116: hyper doesn't pass through "surprise-trailers" - - Closes #7344 - -- socks4: scan for the IPv4 address in resolve results - - Follow-up to 84d2839740 which changed the resolving to always resolve - both address families, but since SOCKS4 only supports IPv4 it should - scan for and use the first available IPv4 address. - - Reported-by: shithappens2016 on github - Fixes #7345 - Closes #7346 - -Jay Satiro (5 Jul 2021) -- proto.d: fix formatting for paragraphs after margin changes - - Closes https://github.com/curl/curl/pull/7341 - -- pinnedpubkey.d: fix formatting for version support lists - - Closes https://github.com/curl/curl/pull/7340 - -Daniel Stenberg (2 Jul 2021) -- TODO: "Support in-memory certs/ca certs/keys" done - - Has been suppored for a while now with the *BLOB options. - -- examples: safer and more proper read callback logic - - The same callback code is used in: - - imap-append.c - smtp-authzid.c - smtp-mail.c - smtp-multi.c - smtp-ssl.c - smtp-tls.c - - It should not assume that it can copy full lines into the buffer as it - will encourage sloppy coding practices. Instead use byte-wise logic and - check/acknowledge the buffer size appropriately. - - Reported-by: Harry Sintonen - Fixes #7330 - Closes #7331 - -- test1519: adjusted to work with hyper - - Closes #7333 - -- test1518: adjusted to work with hyper - - ... by making sure the stdout output doesn't look like HTTP headers. - - Closes #7333 - -- test1514: add a CRLF to the response to make it correct - - Makes hyper accept it fine instead returning HYPERE_UNEXPECTED_EOF on - us. - - Closes #7334 - -- formdata: avoid "Argument cannot be negative" warning - - ... when converting a curl_off_t to size_t, by using - CURL_ZERO_TERMINATED before passing the argument to the function. - - Detected by Coverity CID 1486590. - - Closes #7328 - Assisted-by: Daniel Gustafsson - -- lib: more %u for port and int for %*s fixes - - Detected by Coverity - - Closes #7329 - -- doh: (void)-prefix call to curl_easy_setopt - -- lib: fix type of len passed to *printf's %*s - - ... it needs to be 'int'. Detected by Coverity CID 1486611 (etc) - - Closes #7326 - -- lib: use %u instead of %ld for port number printf - - Follow-up to 764c6bd3bf which changed the type of some port number - fields. Detected by Coverity (CID 1486624) etc. - - Closes #7325 - -- version: turn version number functions into returning void - - ... as we never use the return codes from them. - - Reviewed-by: Daniel Gustafsson - Closes #7319 - -- mqtt: extend the error message for no topic - - ... and mention that it needs URL encoding. - - Reported-by: Peter Körner - Fixes #7316 - Closes #7317 - -- formdata: correct typecast in curl_mime_data call - - Coverity pointed out it the mismatch. CID 1486590 - - Closes #7327 - -- url: (void)-prefix a curl_url_get() call - - Coverity (CID 1486645) pointed out a use of curl_url_get() in the - parse_proxy function where the return code wasn't checked. A - (void)-prefix makes the intention obvious. - - Closes #7320 - -- glob: pass an 'int' as len when using printf's %*s - - Detected by Coverity CID 1486629. - - Closes #7324 - -- vtls: use free() not curl_free() - - curl_free() is provided for users of the API to free returned data, - there's no need to use it internally. - - Closes #7318 - -- zuul: use the new rustls directory name - - Follow-up to 6d972c8b1cbb3 which missed updating this directory name. - - Also no longer call it crustls in the docs and bump to rusttls-ffi 0.7.1 - - Closes #7311 - -Jay Satiro (29 Jun 2021) -- http: fix crash in rate-limited upload - - - Don't set the size of the piece of data to send to the rate limit if - that limit is larger than the buffer size that will hold the piece. - - Prior to this change if CURLOPT_MAX_SEND_SPEED_LARGE - (curl tool: --limit-rate) was set then it was possible that a temporary - buffer used for uploading could be written to out of bounds. A likely - scenario for this would be a non-trivial amount of post data combined - with a rate limit larger than CURLOPT_UPLOAD_BUFFERSIZE (default 64k). - - The bug was introduced in 24e469f which is in releases since 7.76.0. - - perl -e "print '0' x 200000" > tmp - curl --limit-rate 128k -d @tmp httpbin.org/post - - Reported-by: Richard Marion - - Fixes https://github.com/curl/curl/issues/7308 - Closes https://github.com/curl/curl/pull/7315 - -Daniel Stenberg (29 Jun 2021) -- copyright: add boiler-plate headers to CI config files - - And whitelist .zuul.ignore - - Closes #7314 - -- CI: remove travis details - - Rename still used leftovers to "zuul" as that's now the CI using them. - - Closes #7313 - -- RELEASE-NOTES: synced - -- openssl: avoid static variable for seed flag - - Avoid the race condition risk by instead storing the "seeded" flag in - the multi handle. Modern OpenSSL versions handle the seeding itself so - doing the seeding once per multi-handle instead of once per process is - less of an issue. - - Reported-by: Gerrit Renker - Fixes #7296 - Closes #7306 - -- configure: inhibit the implicit-fallthrough warning on gcc-12 - - ... since it no longer acknowledges the comment markup we use for that - purpose. - - Reported-by: Younes El-karama - Fixes #7295 - Closes #7307 - -Daniel Gustafsson (28 Jun 2021) -- [Andrei Rybak brought this change] - - misc: fix typos in comments which repeat a word - - Fix typos in code comments which repeat various words. In trivial - cases, just delete the repeated word. Reword the affected sentence in - "lib/url.c" for it to make sense. - - Closes #7303 - Reviewed-by: Daniel Gustafsson <daniel@yesql.se> - -Daniel Stenberg (27 Jun 2021) -- lib677: make it survive torture testing - - Follow-up to a5ab72d5edd7 - - Closes #7300 - -- [Tommy Chiang brought this change] - - docs/BINDINGS: fix outdated links - - * luacurl page is now not accessible, fix it with wayback machine page - * Scheme one seems not providing https now, change it back to http one - - Closes #7301 - -- [Jacob Hoffman-Andrews brought this change] - - curstls: bump crustls version and use new URL - - crustls moved to https://github.com/rustls/rustls-ffi. This also bumps - the expected version to 0.7.0. - - Closes #7297 - -- RELEASE-NOTES: synced - -- examples: length-limit two sscanf() uses of %s - - Reported-by: Jishan Shaikh - Fixes #7293 - Closes #7294 - -- [Richard Whitehouse brought this change] - - multi: alter transfer timeout ordering - - - Check whether a connection has succeded before checking whether it's - timed out. - - This means if we've connected quickly, but subsequently been - descheduled, we allow the connection to succeed. Note, if we timeout, - but between checking the timeout, and connecting to the server the - connection succeeds, we will allow it to go ahead. This is viewed as - an acceptable trade off. - - - Add additional failf logging around failed connection attempts to - propogate the cause up to the caller. - - Co-Authored-by: Martin Howarth - Closes #7178 - -- test677: IMAP CONNECT_ONLY, custom command and then exit - - Adjusted ftpserver.pl to add support for the IMAP IDLE command - - Adjusted test 660 to sync with the fix - -- multi: do not switch off connect_only flag when closing - - ... as it made protocol specific disconnect commands wrongly get used. - - Bug: https://curl.se/mail/lib-2021-06/0024.html - Reported-by: Aleksander Mazur - Closes #7288 - -- http: make the haproxy support work with unix domain sockets - - ... it should then pass on "PROXY UNKNOWN" since it doesn't know the - involved IP addresses. - - Reported-by: Valentín Gutiérrez - Fixes #7290 - Closes #7291 - -- [Xiang Xiao brought this change] - - curl.h: include sys/select.h for NuttX RTOS - - Closes #7287 - -- [Bin Meng brought this change] - - curl.h: remove the execution bit - - The execution bit of curl.h file was wrongly added: - - commit 2621025d6f96 ("curl.h: <sys/select.h> is supported by VxWorks7") - - and should be removed. - - Follow-up to 2621025d6f96 ("curl.h: <sys/select.h> is supported by VxWorks7") - Signed-off-by: Bin Meng <bmeng.cn@gmail.com> - Closes #7286 - -- [Bin Lan brought this change] - - curl.h: <sys/select.h> is supported by VxWorks7 - - Closes #7285 - -- [Bachue Zhou brought this change] - - quiche: use send() instead of sendto() to avoid macOS issue - - sendto() always returns "Socket is already connected" error on macos - - Closes #7260 - -- [Li Xinwei brought this change] - - cmake: fix support for UnixSockets feature on Win32 - - Move the definition of sockaddr_un struct from config-win32.h to - curl_setup.h, so that it could be shared by all build systems. - - Add ADDRESS_FAMILY typedef for old mingw, now old mingw can also use - unix sockets. - - Also fix the build of tests/server/sws.c on Win32 when USE_UNIX_SOCKETS - is defined. - - Closes #7034 - -- [Gregory Muchka brought this change] - - hostip: (macOS) free returned memory of SCDynamicStoreCopyProxies - - From Apples documentation on SCDynamicStoreCopyProxies, "Return Value: A - dictionary of key-value pairs that represent the current internet proxy - settings, or NULL if no proxy settings have been defined or if an error - occurred. You must release the returned value." - - Failure to release the returned value of SCDynamicStoreCopyProxies can - result in a memory leak. - - Source: https://developer.apple.com/documentation/systemconfiguration/1517088-scdynamicstorecopyproxies - - Closes #7265 - -- RELEASE-NOTES: synced - -Jay Satiro (21 Jun 2021) -- vtls: fix warning due to function prototype mismatch - - b09c8ee changed the function prototype. Caught by Visual Studio. - -- curl_multibyte: Remove local encoding fallbacks - - - If the UTF-8 to UTF-16 conversion fails in Windows Unicode builds then - no longer fall back to assuming the string is in a local encoding. - - Background: - - Some functions in Windows Unicode builds must convert UTF-8 to UTF-16 to - pass to the Windows CRT API wide-character functions since in Windows - UTF-8 is not a valid locale (or at least 99% of the time right now). - - Prior to this change if the Unicode encoding conversion failed then - libcurl would assume, for backwards compatibility with applications that - may have written their code for non-Unicode builds, attempt to convert - the string from local encoding to UTF-16. - - That type of "best effort" could theoretically cause some type of - security or other problem if a string that was locally encoded was also - valid UTF-8, and therefore an unexpected UTF-8 to UTF-16 conversion - could occur. - - Ref: https://github.com/curl/curl/pull/7246 - - Closes https://github.com/curl/curl/pull/7257 - -Daniel Stenberg (20 Jun 2021) -- curl_endian: remove the unused Curl_write64_le function - - The last usage was removed in cca455a36 - - Closes #7280 - -- vtls: only store TIMER_APPCONNECT for non-proxy connect - - Introducing a 'isproxy' argument to the connect function so that it - knows wether to store the time stamp or not. - - Reported-by: Yongkang Huang - Fixes #7274 - Closes #7274 - -- gnutls: set the preferred TLS versions in correct order - - Regression since 781864bedbc57 (curl 7.77.0) - - Reported-by: civodul on github - Assisted-by: Nikos Mavrogiannopoulos - Fixes #7277 - Closes #7278 - -- [Gergely Nagy brought this change] - - configure/cmake: remove checks for unused gethostbyaddr and gethostbyaddr_r - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove checks for unused inet_ntoa and inet_ntoa_r - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove unused define HAVE_PERROR - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure: remove unused check for gai_strerror - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove unused define HAVE_FREEIFADDRS - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove unused define HAVE_FORK - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove unused define HAVE_FDOPEN - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove checks for unused sgtty.h - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove remaining checks for rsa.h - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove remaining checks for err.h - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove remaining checks for crypto.h - - Closes #7276 - -- [Gergely Nagy brought this change] - - configure/cmake: remove checks for unused getservbyport_r - - Closes #7276 - -- --socks4[a]: clarify where the host name is resolved - - Closes #7273 - -- libcurl-security.3: mention file descriptors and forks - - ... and move the security report section last. - - Reported-by: Harry Sintonen - Closes #7270 - -- [Alex Xu (Hello71) brought this change] - - configure.ac: make non-executable - - it needs to be processed by autoconf or autoreconf, and doesn't have a - suitable shebang to be directly executed. other projects normally set - configure.ac -x. - - Closes #7272 - -- configure: do not strip out debug flags - - To allow users to set them when invoking configure without using - --with-debug. - - Reported-by: Alex Xu - Fixes #7216 - Closes #7267 - -- libssh2: limit time a disconnect can take to 1 second - - Closes #7271 - -- TLS: prevent shutdown loops to get stuck - - ... by making sure the loops are only allowed to read the shutdown - traffic a limited number of times. - - Reported-by: Harry Sintonen - Closes #7271 - -- hyper: propagate errors back up from read callbacks - - Makes test 513 work with hyper - - Closes #7266 - -- KNOWN_BUGS: Negotiate on Windows fails - - Closes #5881 - -- KNOWN_BUGS: renames instead of locking for atomic operations - - Closes #6882 - Closes #6884 - -- zuul: add two missing CI jobs - - ... that were configured, just not run - - Closes #7261 - -Viktor Szakats (15 Jun 2021) -- idn: fix libidn2 with windows unicode builds - - Unicode Windows builds use UTF-8 strings internally in libcurl, - so make sure to call the UTF-8 flavour of the libidn2 API. Also - document that Windows builds with libidn2 and UNICODE do expect - CURLOPT_URL as an UTF-8 string. - - Reported-by: dEajL3kA on github - Assisted-by: Jay Satiro - Reviewed-by: Marcel Raad - Closes #7246 - Fixes #7228 - -Daniel Stenberg (15 Jun 2021) -- curl_url_set: reject spaces in URLs w/o CURLU_ALLOW_SPACE - - They were never officially allowed and slipped in only due to sloppy - parsing. Spaces (ascii 32) should be correctly encoded (to %20) before - being part of a URL. - - The new flag bit CURLU_ALLOW_SPACE when a full URL is set, makes libcurl - allow spaces. - - Updated test 1560 to verify. - - Closes #7073 - -- RELEASE-NOTES: synced - - ... and bump to version 7.78.0 for the next planned release. - -Jay Satiro (15 Jun 2021) -- docs: Remove outdated curl tool limitation - - - Document that HTTP/2 multiplexing is supported by the curl tool when - parallel transfers are used. - - Supported since 7.66.0 via --parallel, but the doc wasn't updated. - - Closes https://github.com/curl/curl/pull/7259 - -- http2: Clarify 'Using HTTP2' verbose message - - - Change phrasing from multi-use to multiplexing since the former may - not be as well understood. - - Before: * Using HTTP2, server supports multi-use - - After: * Using HTTP2, server supports multiplexing - - Bug: https://github.com/curl/curl/discussions/7255 - Reported-by: David Hu - - Closes https://github.com/curl/curl/pull/7258 - -Daniel Stenberg (14 Jun 2021) -- winbuild/README: VC should be set to 6 'or larger' - - Previously it listed all versions up to 15 (missing 16) but this new - phrasing is more open ended. - - Reported-by: Hugh Macdonald - Fixes #7253 - Closes #7254 - -- [Jacob Hoffman-Andrews brought this change] - - rustls: remove native_roots fallback - - For the commandline tool, we expect to be passed - SSL_CONN_CONFIG(CAfile); for library use, the use should pass a set of - trusted roots (like in other TLS backends). - - This also removes a dependency on Security.framework when building on - macOS. - - Closes #7250 - -- [Albin Vass brought this change] - - travis: remove jobs that have migrated to zuul - - Closes #7245 - -- [Mohammed Naser brought this change] - - CI: add jobs using Zuul - - It also includes a few changes to get the builds going: - - Added autoconf to common dependencies - - Added automake to common dependencies - - Added libtool to common dependencies - - Added libssl-dev to common dependencies - - Co-authored-by: Albin Vass - - Closes #7245 - -- netrc: skip 'macdef' definitions - - Add test 494 to verify - - Reported-by: Harry Sintonen - Fixes #7238 - Closes #7244 - -- multi: add scan-build-6 work-around in curl_multi_fdset - - scan-build-6 otherwise warns, saying: warning: The left operand of '>=' - is a garbage value otherwise, which is false. - - Later scan-builds don't claim this on the same code. - - Closes #7248 - -- asyn-ares: remove check for 'data' in Curl_resolver_cancel - - It implied it would survive a NULL in there which it won't. Instead do - an assert. - - Pointed out by scan-build. - - Closes #7248 - -- url.c: remove two variable assigns that are never read - - Pointed out by scan-build - - Closes #7248 - -- [Gealber Morales brought this change] - - mqtt: add support for username and password - - Minor-edits-by: Daniel Stenberg - Added test 2200 to 2205 - - Closes #7243 - -- travis: remove the arm job - - We do it on circle CI instead - -- CI: add .circleci/config.yml - - Assisted-by: Gabriel Simmer - - Closes #7239 - -- RELEASE-NOTES: synced - -- runtests: init $VERSION to avoid warnings when using -l - -- openssl: don't remove session id entry in disassociate - - When a connection is disassociated from a transfer, the Session ID entry - should remain. - - Regression since 7f4a9a9 (shipped in libcurl 7.77.0) - Reported-by: Gergely Nagy - Reported-by: Paul Groke - - Fixes #7222 - Closes #7230 - -- single_transfer: ignore blank --output-dir - - ... as otherwise it creates a rather unexpected target directory with a - leading slash. - - Reported-by: Harry Sintonen - Fixes #7218 - Closes #7233 - -- tests: update README about servers and port numbers - - Closes #7242 - -- conn_shutdown: if closed during CONNECT cleanup properly - - Reported-by: Alex Xu - Reported-by: Phil E. Taylor - - Fixes #7236 - Closes #7237 - -- [Christian Weisgerber brought this change] - - sws: malloc request struct instead of using stack - - ... 2MB requests is otherwise just too big for some systems. - - (The allocations are not freed properly.) - - Bug: https://curl.se/mail/lib-2021-06/0018.html - - Closes #7235 - -- [Mark Swaanenburg brought this change] - - lib: don't compare fd to FD_SETSIZE when using poll - - FD_SETSIZE is irrelevant when using poll. So ensuring that the file - descriptor is smaller than FD_SETSIZE in VALID_SOCK, can cause - multi_wait to ignore perfectly valid file descriptors and simply wait - for 1s to avoid hammering the CPU in a busy loop. - - Fixes #7240 - Closes #7241 - -- [zhangxiuhua brought this change] - - doh: fix wrong DEBUGASSERT for doh private_data - - Closes #7227 - -- [yb999 brought this change] - - tests: update README.md with a missing single quote - - Closes #7231 - -- GHA: run all tests for hyper too - - As it lists disabled ones in DISABLED now - - Closes #7209 - -- tests/data/DISABLED: add tests not working with hyper - - The goal is to remove them all from here over time. - - Closes #7209 - -- runtests: also find the last test in Makefile.inc - - Closes #7209 - -- test3010: work with hyper mode - - Closes #7209 - -- configure: disable RTSP when hyper is selected - - Makes test 1013 work - - Closes #7209 - -- test1594/1595/1596: fix to work in hyper mode - - Closes #7209 - -- test1438/1457: add HTTP keyword to make hyper mode work - - Closes #7209 - -- test1340/1341: adjusted for hyper mode - - Closes #7209 - -- test1218: adjusted for hyper mode - - Closes #7209 - -- test1216: adjusted for hyper mode - - Closes #7209 - -- test1230: adjust to work in hyper mode - - Closes #7209 - -- c-hyper: abort CONNECT response reading early on non 2xx responses - - Fixes test 493 - - Closes #7209 - -- test434: add HTTP keyword - - Closes #7209 - -- test599: adjusted to work in hyper mode - - Closes #7209 - -- c-hyper: fix the uploaded field in progress callbacks - - Makes test 578 work - - Closes #7209 - -- test566: adjust to work with hyper mode - - Closes #7209 - -- [Fawad Mirza brought this change] - - CURLOPT_WRITEFUNCTION.3: minor update of the example - - Safely avoid chunk.size garbage value if declared non globally. - - Closes #7219 - -- [Bastian Krause brought this change] - - configure: rename get-easy-option configure option to get-easy-options - - "get-easy-options" is the configure option advertised by the help text - anyway, so use that. - - Fixes #7211 - Closes #7213 - - Follow-up to ad691b191 ("configure: added --disable-get-easy-options") - Suggested-by: Daniel Stenberg <daniel@haxx.se> - Signed-off-by: Bastian Krause <bst@pengutronix.de> - -- runtests: skip disabled tests unless -f is used - - To make it easier to write ranges like '115 to 229' without that - explicitly enabling tests that are listed in DISABLED, this makes - runtests always skip disabled tests unless the -f command line option is - used. - - Previously the code attempted to not run such tests, but didn't do it - correctly. - - Closes #7212 - -- [Jun-ya Kato brought this change] - - ngtcp2: disable TLSv1.3 compatible mode when using GnuTLS - - The latest GnuTLS-3.7.2 implements disable switch for TLSv1.3 compatible - mode for middle box but it is enabled by default, which is unnecessary - for QUIC. - - Fixes #6896 - Closes #7202 - -- test644: remove as duplicate of test 587 - - Closes #7208 - -Daniel Gustafsson (8 Jun 2021) -- RELEASE-NOTES: synced - -- cookies: track expiration in jar to optimize removals - - Removing expired cookies needs to be a fast operation since we want to - be able to perform it often and speculatively. By tracking the timestamp - of the next known expiration we can exit early in case the timestamp is - in the future. - - Closes: #7172 - Reviewed-by: Daniel Stenberg <daniel@haxx.se> - -Daniel Stenberg (7 Jun 2021) -- GHA: add several libcurl tests to the hyper job - - 500 to 512 - -- test500: adjust to work with hyper mode - -- c-hyper: support CURLINFO_STARTTRANSFER_TIME - - Closes #7204 - -- c-hyper: support CURLOPT_HEADER - - When enabled, the headers are passed to the body write callback as well. - - Like in test 500 - - Closes #7204 - -- GHA: run the newly fixed tests with hyper - - Closes #7205 - -- test433: adjust for hyper mode - - Closes #7205 - -- test395: hyper cannot work around > 64 bit content-lengths like built-in - - Closes #7205 - -- test394: hyper returns a different error - - Closes #7205 - -- test393: make Content-Length fit within 64 bit for hyper - - Closes #7205 - -- test347: CRLFify to work in hyper mode - - Closes #7205 - -- test339: CRLFify better to work in hyper mode - - Closes #7205 - -- travis: remove the hyper build - -- GHA: add a linux-hyper job - - Closes #7206 - -- test328: avoid a header-looking body to make hyper mode work - - The test still works the same, just modified two bytes in the content. - - Closes #7203 - -- release-notes.pl: also spot common 'closes' typo - -- metalink: remove - - Warning: this will make existing curl command lines that use metalink to - stop working. - - Reasons for removal: - - 1. We've found several security problems and issues involving the - metalink support in curl. The issues are not detailed here. When - working on those, it become apparent to the team that several of the - problems are due to the system design, metalink library API and what - the metalink RFC says. They are very hard to fix on the curl side - only. - - 2. The metalink usage with curl was only very briefly documented and was - not following the "normal" curl usage pattern in several ways, making - it surprising and non-intuitive which could lead to further security - issues. - - 3. The metalink library was last updated 6 years ago and wasn't so - active the years before that either. An unmaintained library means - there's a security problem waiting to happen. This is probably reason - enough. - - 4. Metalink requires an XML parsing library, which is complex code (even - the smaller alternatives) and to this day often gets security - updates. - - 5. Metalink is not a widely used curl feature. In the 2020 curl user - survey, only 1.4% of the responders said that they'd are using it. In - 2021 that number was 1.2%. Searching the web also show very few - traces of it being used, even with other tools. - - 6. The torrent format and associated technology clearly won for - downloading large files from multiple sources in parallel. - - Cloes #7176 - -- docs/INSTALL: remove mentions of configure --with-darwin-ssl - - ... as it isn't supported since a while back. - - Make configure fail with a warning if used. - - Reported-by: Vadim Grinshpun - Bug: https://curl.se/mail/lib-2021-06/0008.html - Closes #7200 - -- RELEASE-NOTES: synced - -- [Gregor Jasny brought this change] - - cmake: Avoid leaking absolute paths into exported config - - The `find_libarary` command resolves the library or framework - into an absolute path. In case of system frameworks which are - located within an Xcode-provided SDK this results in the Xcode - path and SDK version being part of the library path. - - Because those library paths end up in the exported CMake config - importing curl will fail once the Xcode location or SDK version - changes: - - ```cmake - set_target_properties(CURL::libcurl PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" - INTERFACE_LINK_LIBRARIES "lber;ldap;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/SystemConfiguration.framework;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB" - ) - ``` - - A work-around is to link against system-level frameworks with - `-framework XYZ`. In case of `SystemConfiguration` we might be able - to omit the lookup-check because we could assume the framework is - always present. - - Closes #7152 - -- [Shikha Sharma brought this change] - - http2_connisdead: handle trailing GOAWAY better - - When checking the connection the input processing returns error - immediately, we now consider that a dead connnection. - - Bug: https://curl.se/mail/lib-2021-06/0001.html - Closes #7192 - -- [Dmitry Karpov brought this change] - - ares: always store IPv6 addresses first - - Trying dual-stack on some embedded platform, I noticed that quite - frequently (20%) libCurl starts from IPv4 regardless the Happy Eyeballs - timeout value. After debugging this issue, I noticed that this happens - if c-ares resolver response for IPv6 family comes before IPv4 (which was - randomly happening in my tests). - - In such cases, because libCurl puts the last resolver response on top of - the address list, when IPv4 resolver response comes after IPv6 one - the - IPv4 family starts the connection phase instead of IPv6 family. - - The solution for this issue is to always put IPv6 addresses on top of - the address list, regardless the order of resolver responses. - - Bug: https://curl.se/mail/lib-2021-06/0003.html - - Closes #7188 - -- Revert "Revert "socketpair: fix potential hangs"" - - This reverts commit 3e70c3430a370a31eff2c1d8fea29edaca8f1127. - - Thus brings back the change from #7144 as was originally landed in - c769d1eab4de8b - - Closes #7144 (again) - -- [Ebe Janchivdorj brought this change] - - schannel: move code out of SChannel_connect_step1 - - Reviewed-by: Marc Hoersken - Closes #7168 - -- tests/data/Makefile.inc: error: trailing backslash on last line - - Follow-up to d8dcb399b8009d - -- TODO: Support rate-limiting for MQTT - -- [Dmitry Kostjuchenko brought this change] - - warnless: simplify type size handling - - By using sizeof(T), existing defines and relying on the compiler to - define the required signed/unsigned mask. - - Closes #7181 - -Gisle Vanem (4 Jun 2021) -- [Win32] Fix for USE_WATT32 - - My Watt-32 tcp/ip stack works on Windows but it does not have `WSAIoctl()` - -Daniel Stenberg (4 Jun 2021) -- [Alexis Vachette brought this change] - - url: bad CURLOPT_CONNECT_TO syntax now returns error - - Added test 3020 to verify - - Closes #7183 - -- github: remove the cmake macOS gcc-8 jobs - - They're too similar to the gcc-9 ones to be useful (and seems to not - work anymore). - - Closes #7187 - -- test269: disable for hyper - - --ignore-content-length / CURLOPT_IGNORE_CONTENT_LENGTH doesn't work - with hyper. - - Closes #7184 - -- runtests: enable 'hyper mode' only for HTTP tests - - The 'hyper mode' makes line-ending checks work in the test suite for - when hyper is used. Now it also requires that HTTP or HTTPS are - mentioned as keywords to be enabled so that it doesn't wrongly adjusts - tests for other protocols. - - This makes test 271 (TFTP) work again in hyper enabled builds. - - Closes #7185 - -- [Alexis Vachette brought this change] - - hostip: bad CURLOPT_RESOLVE syntax now returns error - - Added test 3019 - Fixes #7170 - Closes #7174 - -Daniel Gustafsson (3 Jun 2021) -- cookies: fix typo and expand comment - - Fix a typo in the sorting comment, and while in there elaborate slightly - on why creationtime can be used as a tiebreaker. - -- cookies: remove unused header - - Commit 1c1d9f1affbd3367bcb24062e261d0ea5d185e3a removed the last use - for the inet_pton.h headerfile, this removes the inclusion of the - header. - - Closes: #7182 - Reviewed-by: Daniel Stenberg <daniel@haxx.se> - -Daniel Stenberg (3 Jun 2021) -- Revert "socketpair: fix potential hangs" - - This reverts commit c769d1eab4de8b9f1bd84d992c63692fdc43c5be. - - See #7144 for details - -- [Paul Groke brought this change] - - socketpair: fix potential hangs - - Fixes potential hang in accept by using select + non-blocking accept. - - Fixes potential hang in peer check by replacing the send/recv check with - a getsockname/getpeername check. - - Adds length check for returned sockaddr data. - - Closes #7144 - -- runtests: parse data/Makefile.inc instead of using make - - The warning about missing entries in that file then doesn't require that - the Makefile has been regenerated which was confusing. - - The scan for the test num is a little more error prone than before - (since now it doesn't actually verify that it is legitimate Makefile - syntax), but I think it is good enough. - - Closes #7177 - -- [Harry Sintonen brought this change] - - filecheck: quietly remove test-place/*~ - - Closes #7179 - -- CURLE_SETOPT_OPTION_SYNTAX: new error name for wrong setopt syntax - - For options that pass in lists or strings that are subsequently parsed - and must be correct. This broadens the scope for the option previously - known as CURLE_TELNET_OPTION_SYNTAX but the old name is of course still - provided as a #define for existing applications. - - Closes #7175 - -- tests: fix Accept-Encoding strips to work with Hyper builds - - The previous strip also removed the CR which turned problematic. - - valgrind.supp: add zstd suppression using hyper - - Reported-and-analyzed-by: Kevin Burke - Fixes #7169 - Closes #7171 - -- github: timeout jobs on macOS after 90 minutes - - Assisted-by: Marc Hoersken - Closes #7173 - -- [Harry Sintonen brought this change] - - mqtt: detect illegal and too large file size - - Add test 3017 and 3018 to verify. - Closes #7166 - -- [Abhinav Singh brought this change] - - cmake: add CURL_DISABLE_NTLM option - - Closes #7028 - -- [Abhinav Singh brought this change] - - configure: add --disable-ntlm option - - Closes #7028 - -- [Abhinav Singh brought this change] - - define: re-add CURL_DISABLE_NTLM and corresponding ifdefs - - This flag will be further exposed by adding build options. - - Reverts #6809 - Closes #7028 - -- RELEASE-NOTES: synced - -Viktor Szakats (1 Jun 2021) -- travis: delete --enable-hsts option (it is the default now) [ci skip] - - Reviewed-by: Daniel Stenberg - Closes #7167 - -Daniel Stenberg (1 Jun 2021) -- hostip: fix 3 coverity complaints - - Follow-up to 1a0ebf6632f889eed - - - Check the return code to Curl_inet_pton() in two instances, even - though we know the input is valid so the functions won't fail. - - - Clear the 'struct sockaddr_in' struct before use so that the - 'sin_zero' field isn't left uninitialized. - - Detected by Coverity. - Assisted-by: Harry Sintonen - Closes #7163 - -- c-hyper: fix NTLM on closed connection tested with test159 - - Closes #7154 - -- conncache: lowercase the hash key for better match - - As host names are case insensitive, the use of case sensitive hashing - caused unnecesary cache misses and therefore lost performance. This - lowercases the hash key. - - Reported-by: Harry Sintonen - Fixes #7159 - Closes #7161 - -- mbedtls: make mbedtls_strerror always work - - If the function doesn't exist, provide a macro that just clears the - error message. Removes #ifdef uses from the code. - - Closes #7162 - -- vtls: exit addsessionid if no cache is inited - - Follow-up to b249592d29ae0 - - Avoids NULL pointer derefs. - - Closes #7165 - -- [Harry Sintonen brought this change] - - Curl_ntlm_core_mk_nt_hash: fix OOM in error path - - Closes #7164 - -Michael Kaufmann (1 Jun 2021) -- ssl: read pending close notify alert before closing the connection - - This avoids a TCP reset (RST) if the server initiates a connection - shutdown by sending an SSL close notify alert and then closes the TCP - connection. - - For SSL connections, usually the server announces that it will close the - connection with an SSL close notify alert. curl should read this alert. - If curl does not read this alert and just closes the connection, some - operating systems close the TCP connection with an RST flag. - - See RFC 1122, section 4.2.2.13 - - If curl reads the close notify alert, the TCP connection is closed - normally with a FIN flag. - - The new code is similar to existing code in the "SSL shutdown" function: - try to read an alert (non-blocking), and ignore any read errors. - - Closes #7095 - -Daniel Stenberg (1 Jun 2021) -- [Laurent Dufresne brought this change] - - setopt: fix incorrect comments - - Closes #7157 - -- [Laurent Dufresne brought this change] - - mbedtls: add support for cert and key blob options - - CURLOPT_SSLCERT_BLOB and CURLOPT_SSLKEY_BLOB weren't usable with - mbedtls backend, so the support was added. - - Closes #7157 - -- [Gregor Jasny brought this change] - - cmake: try well-known send/recv signature for Apple - - The CMake `try_compile` command is especially slow for - the Xcode generator. With this patch applied it first tests - for the currently used (and Open Group specified) send/recv - signature. In case this fails testing falls-back to the - permutations. - - speed-up: - - ``` - time cmake .. -GNinja -DCMAKE_USE_SECTRANSP=ON -DHTTP_ONLY=ON -DCMAKE_USE_LIBSSH2=OFF - before: 11.64s user 11.09s system 55% cpu 40.754 total - after: 7.84s user 6.57s system 51% cpu 28.074 total - ``` - - ``` - time cmake .. -GXcode -DCMAKE_USE_SECTRANSP=ON -DHTTP_ONLY=ON -DCMAKE_USE_LIBSSH2=OFF - before: 217.07s user 104.15s system 60% cpu 8:51.79 total - after: 108.76s user 51.80s system 58% cpu 4:32.58 total - ``` - - Closes #7158 - -- http2: init recvbuf struct for pushed streams - - Debug builds would warn that these structs were not initialized properly - for pushed streams. - - Ref: #7148 - Closes #7153 - -- Curl_ssl_getsessionid: fail if no session cache exists - - This function might get called for an easy handle for which the session - cache hasn't been setup. It now just returns a "miss" in that case. - - Reported-by: Christoph M. Becker - Fixes #7148 - Closes #7153 - -- GOVERNANCE: add 'user', 'committer' and 'contributor' - - As those are commonly used terms in the project. - - Closes #7151 - -- URL-SYNTAX.md: document the new 'localhost' treatment - -- hostip: make 'localhost' return fixed values - - Resolving the case insensitive host name 'localhost' now returns the - addresses 127.0.0.1 and (if IPv6 is enabled) ::1 without using any - resolver. - - This removes the risk that users accidentally resolves 'localhost' to - something else. By making sure 'localhost' is always local, we can - assume a "secure context" for such transfers (for cookies etc). - - Closes #7039 - -Daniel Gustafsson (31 May 2021) -- docs: fix typos - -Daniel Stenberg (30 May 2021) -- hsts: ignore numberical IP address hosts - - Also, use a single function library-wide for detecting if a given hostname is - a numerical IP address. - - Reported-by: Harry Sintonen - Fixes #7146 - Closes #7149 - -- test178: adjust for hyper - - Hyper returns the same error for wrong HTTP version as for negative - content-length. Test 178 verifies that negative content-length is - rejected but the hyper backend will return a different error for it (and - without any helpful message telling why the message was bad). It will - also not return any headers at all for the response, not even the ones - that arrived before the error. - - Closes #7147 - -- HYPER: remove mentions of deprecated development branch - -- c-hyper: handle NULL from hyper_buf_copy() - - Closes #7143 - -- HSTS: not experimental anymore - -- [Douglas R. Reno brought this change] - - INSTALL: use correct extension for CURL-DISABLE.md - - In INSTALL.MD, it's currently set to CURL-DISABLE-md instead of - CURL-DISABLE.md. This generates a 404 on the cURL website as well as - when viewing the docs through Github. - - Closes #7142 - -- travis: run tests 1 - 153 with hyper - -- c-hyper: convert HYPERE_INVALID_PEER_MESSAGE to CURLE_UNSUPPORTED_PROTOCOL - - Makes test 129 work (HTTP/1.2 response). - - Closes #7141 - -- http_proxy: deal with non-200 CONNECT response with Hyper - - Makes test 94 and 95 work - - Closes #7141 - -- c-hyper: clear NTLM auth buffer when request is issued - - To prevent previous ones to get reused on subsequent requests. Matches - how the built-in HTTP code works. Makes test 90 to 93 work. - - Add test 90 to 93 in travis. - - Closes #7139 - -- [Joel Depooter brought this change] - - schannel: set ALPN length correctly for HTTP/2 - - In a3268eca792f1 this code was changed to use the ALPN_H2 constant - instead of the NGHTTP2_PROTO_ALPN constant. However, these constants are - not the same. The nghttp2 constant included the length of the string, - like this: "\x2h2". The ALPN_H2 constant is just "h2". Therefore we need - to re-add the length of the string to the ALPN buffer. - - Closes #7138 - -- travis: run tests 1-89 in the hyper build - - Closes #7137 - -- Revert "c-hyper: handle body on HYPER_TASK_EMPTY" - - This reverts commit c3eefa95c31f55657f0af422e8268d738f689066. - - Reported-by: Kevin Burke - Fixes #7122 - Closes #7136 - -- [Jon Rumsey brought this change] - - ccsidcurl: fix the compile errors - - Looks like the declaration of cpp shoule be const char ** and return - null if convert_version_info_string fails. - - Fixes #7134 - Closes #7135 - -- [Viktor Szakats brought this change] - - docs: use --max-redirs instead of --max-redir - - For consistency. - - Closes #7130 - -- RELEASE-NOTES: synced - - ... and bump to 7.77.1 - -- [Michael Forney brought this change] - - travis: add bearssl build - - Closes #7133 - -- [Michael Forney brought this change] - - bearssl: explicitly initialize all fields of Curl_ssl - - Also, add comments like the other vtls backends. - - Closes #7133 - -- [Michael Forney brought this change] - - bearssl: remove incorrect const on variable that is modified - - hostname may be set to NULL later on in this function if it is an - IP address. - - Closes #7133 - -Version 7.77.0 (26 May 2021) - -Daniel Stenberg (26 May 2021) -- RELEASE-NOTES: synced - -- THANKS: added contributors from 7.77.0 cycle - -- copyright: update copyright year ranges to 2021 - -- [Radek Zajic brought this change] - - hostip: fix broken macOS/CMake/GCC builds - - Follow-up to 31f631a142d855f06 - - Fixes #7128 - Closes #7129 - -- TODO: netrc caching and sharing - - URL: https://curl.se/mail/archive-2021-05/0018.html - -- [Orgad Shaneh brought this change] - - setopt: streamline ssl option code - - Make it use the same style as the code next to it - - Closes #7123 - -- [Radek Zajic brought this change] - - lib/hostip6.c: make NAT64 address synthesis on macOS work - - Closes #7121 - -- [ejanchivdorj brought this change] - - sectransp: fix EXC_BAD_ACCESS caused by uninitialized buffer - - When the SecCertificateCopyCommonName function fails, it leaves - common_name in a invalid state so CFStringCompare uses the invalid - result, causing EXC_BAD_ACCESS. - - The fix is to check the return value of the function before using the - name. - - Closes #7126 - -- [Paweł Wegner brought this change] - - CMake: add CURL_ENABLE_EXPORT_TARGET option - - install(EXPORT ...) causes trouble when embedding curl dependencies - which don't provide install(EXPORT ...) targets (e.g libressl and - nghttp2) with cmake's add_subdirectory. - - Reviewed-by: Jakub Zakrzewski - Closes #7060 - -- [Alessandro Ghedini brought this change] - - quiche: update for network path aware API - - Latest version of quiche requires the application to pass the peer - address of received packets, and it provides the address for outgoing - packets back. - - Closes #7120 - -- [Jacob Hoffman-Andrews brought this change] - - rustls: switch read_tls and write_tls to callbacks - - And update to 0.6.0, including a rename from session to connection for - many fields. - - Closes #7071 - -- [Koichi Shiraishi brought this change] - - sectransp: fix 7f4a9a9b2a49 commit about missing comma - - Follow-up to 7f4a9a9b2a495 - - Closes #7119 - -- [Harry Sintonen brought this change] - - openssl: associate/detach the transfer from connection - - CVE-2021-22901 - - Bug: https://curl.se/docs/CVE-2021-22901.html - -- [Harry Sintonen brought this change] - - telnet: check sscanf() for correct number of matches - - CVE-2021-22898 - - Bug: https://curl.se/docs/CVE-2021-22898.html - -- schannel: don't use static to store selected ciphers - - CVE-2021-22897 - - Bug: https://curl.se/docs/CVE-2021-22897.html - -- docs/tests: remove freenode references - -- RELEASE-NOTES: synced - -- [Sergey Markelov brought this change] - - NSS: make colons, commas and spaces valid separators in cipher list - - Fixes #7110 - Closes #7115 - -- curl: include libmetalink version in --version output - - Closes #7112 - -Jay Satiro (21 May 2021) -- [Matias N. Goldberg brought this change] - - cmake: Use multithreaded compilation on VS 2008+ - - Multithreaded compilation has been supported since at least VS 2005 and - been robustly stable since at least VS 2008 - - Closes https://github.com/curl/curl/pull/7109 - -Daniel Stenberg (21 May 2021) -- [Matias N. Goldberg brought this change] - - cmake: fix two invokes result in different curl_config.h - - Fixes #7100 - Closes #7101 - - Reviewed-by: Jakub Zakrzewski - Signed-off-by: Matias N. Goldberg <dark_sylinc@yahoo.com.ar> - -- [Peng-Yu Chen brought this change] - - cmake: detect CURL_SA_FAMILY_T - - Fixes #7049 - Closes #7065 - -- [Lucas Clemente Vella brought this change] - - CURLOPT_IPRESOLVE: preventing wrong IP version from being used - - In some situations, it was possible that a transfer was setup to - use an specific IP version, but due do DNS caching or connection - reuse, it ended up using a different IP version from requested. - - This commit changes the effect of CURLOPT_IPRESOLVE from simply - restricting address resolution to preventing the wrong connection - type being used, when choosing a connection from the pool, and - to restricting what addresses could be used when establishing - a new connection. - - It is important that all addresses versions are resolved, even if - not used in that transfer in particular, because the result is - cached, and could be useful for a different transfer with a - different CURLOPT_IPRESOLVE setting. - - Closes #6853 - -- [Oliver Urbann brought this change] - - AmigaOS: add functions definitions for SHA256 - - AmiSSL replaces many functions with macros. Curl requires pointer - to some of these functions. Thus, we have to encapsulate these macros: - SHA256_Init, SHA256_Update, SHA256_Final, X509_INFO_free. - - Bug: https://github.com/jens-maus/amissl/issues/15 - Co-authored-by: Daniel Stenberg <daniel@haxx.se> - - Closes #7099 - -- test2100: make it run with and require IPv6 - - Closes #7083 - -- tests/getpart: generate output URL encoded for better diffs - - Closes #7083 - -- [Ryan Beck-Buysse brought this change] - - docs/TheArtOfHttpScripting: fix markdown links - - extra parens cause the links to be incorrectly formatted - and inconsistent with the rest of the document. - - Signed-off-by: Ryan Beck-Buysse <rbuysse@gmail.com> - Closes #7097 - -- RELEASE-NOTES: synced - -- [Emil Engler brought this change] - - docs: replace dots with dashes in markdown enums - - We use dashes instead of dots nearly everywhere except for those few - cases. This commit addresses this issues and brings more coherency into - it. - - Closes #7093 - -- [Emil Engler brought this change] - - docs: improve INTERNALS.md regarding getsock cb - - This adds the I/O prefix to indicate that those "actions" are kind-of - related to those found in select(2) or poll(2) (reading/writing). - - It also adds a note where the prototypes of those functions can be found - in the source code. - - Closes #7092 - -- [Emil Engler brought this change] - - docs: document attach in INTERNALS.md - - The new field in the Curl_handler struct still lacks documentation. This - adds it it from the information extracted from lib/urldata.h:797 - - Closes #7091 - -- [Marc Aldorasi brought this change] - - config: remove now-unused macros - - Closes #7094 - -- [Marc Aldorasi brought this change] - - hostip.h: remove declaration of unimplemented function - - Closes #7094 - -- h3: add 'attach' callback to protocol handlers - - Follow-up to 0c55fbab45be - - Reviewed-by: Emil Engler - Closes #7090 - -- wolfssl: remove SSLv3 support leftovers - - Closes #7088 - -- curl-wolfssl.m4: without custom include path, assume /usr/include - - ... so that we can point out the root of the OpenSSL emulation headers. - Previously this used the '$includedir' variable which is wrong since - that defaults to the dir where the current configure invoke will install - the built libcurl headers: /usr/local by default. - - Fixes #7085 - Reported-by: Joel Jakobsson - Closes #7087 - -- [Joel Depooter brought this change] - - data_pending: check only SECONDARY socket for FTP(S) transfers - - Check the FIRST for all other protocols. - - This fixes a timeout in an ftps download. The server sends a TLS - close_notify message in the same packet as the file data. The - close_notify seems to not be handled in the schannel_recv function, so - libcurl is not aware that the server has closed the connection. Thus - libcurl ends up waiting for action on the socket until a timeout is - reached. With the secondary socket check added to the data_pending - function, the close_notify is properly handled, and the ftps transfer - terminates as expected. - - Fixes #7068 - Closes #7069 - -- github: inhibit deprecated declarations for clang on macOS - - ... as they otherwise cause ldap build errors in the CI. - - Fixes #7081 - Closes #7082 - -- conn: add 'attach' to protocol handler, make libssh2 use it - - The libssh2 backend has SSH session associated with the connection but - the callback context is the easy handle, so when a connection gets - attached to a transfer, the protocol handler now allows for a custom - function to get used to set things up correctly. - - Reported-by: Michael O'Farrell - Fixes #6898 - Closes #7078 - -- http2: make sure pause is done on HTTP - - Since the function is called for any protocol, we can't assume that the - HTTP struct is there without first making sure it is HTTP. - - Reported-by: Denis Goleshchikhin - Fixes #7079 - Closes #7080 - -- docs: cookies from HTTP headers need domain set - - ... or the cookies won't get sent. Push users to using the "Netscape" - format instead, which curl uses when saving a cookie "jar". - - Reported-by: Martin Dorey - Reviewed-by: Daniel Gustafsson - Fixes #6723 - Closes #7077 - -- RELEASE-NOTES: synced - -- github: add a workflow with libssh2 on macOS using cmake - - Closes #7047 - -- sws: allow HTTP requests up to 2MB in size - - To allow tests with slightly larger payloads. Like #7071 ... - - Closes #7075 - -Marc Hoersken (16 May 2021) -- CI/azure: increase verbosity and fix outdated task names - - Closes #7063 - -- CI/cirrus: add shared and static Windows release builds - - Azure Pipelines is currently being used for debug builds, - let's also run some non-debug (release) Windows builds and - make use of previously underutilized Cirrus CI for that. - - Reviewed-by: Marcel Raad - - Closes #6991 - -Daniel Stenberg (16 May 2021) -- CURLOPT_CAPATH.3: defaults to a path, not NULL - - Reported-by: Andrew Barnert - - Closes #7062 - -- [Jacob Hoffman-Andrews brought this change] - - c-hyper: handle body on HYPER_TASK_EMPTY - - Some of the time, we get a HYPER_TASK_EMPTY response before the status - line, headers, and body have been read. Previously, that would cause us - to poll again, leading to a 1 second timeout. - - The HYPER_TASK_EMPTY docs say: - - The value of this task is null (does not imply an error). - - So, if we receive a HYPER_TASK_EMPTY, continue on with processing the - response. - - Reported-by: Kevin Burke - Fixes #7064 - Closes #7070 - -- [Ikko Ashimine brought this change] - - tool_getparam: fix comment typo in tool_getparam.c - - enfore -> enforce - - Closes #7074 - -- mem-include-scan.pl: require a non-word letter before memory funcs - - ... so that ldap_memfree() for example doesn't match the scan for free. - - Closes #7061 - -- version: free the openldap info correctly - - ... to avoid memory leaks. - - Follow-up to: bf0feae7768d9 - Closes #7061 - -- dupset: remove totally off comment - - Closes #7067 - -- configure: if asked for, fail if ldap is not found - - Reported-by: Jakub Zakrzewski - Fixes #7053 - Closes #7055 - -- version: add OpenLDAP version in the output - - Assisted-by: Howard Chu - Closes #7054 - -Jay Satiro (13 May 2021) -- [Joel Depooter brought this change] - - schannel: Ensure the security context request flags are always set - - As of commit 54e7475, these flags would only be set when using a new - credential handle. When re-using an existing credential handle, the - flags would not be set. - - Closes https://github.com/curl/curl/pull/7051 - -Dan Fandrich (12 May 2021) -- tests: Fix some tag matching issues in a number of tests - -Daniel Stenberg (12 May 2021) -- sasl: use 'unsigned short' to store mechanism - - ... saves a few bytes of struct size in memory and it only uses - 10 bits anyway. - - Closes #7045 - -- hostip: remove the debug code for LocalHost - - The Curl_resolv() had special code (when built in debug mode) for when - resolving the host name "LocalHost" (using that exact casing). It would - then get the host name from the --interface option instead. - - This development-only feature was not used by anything (anymore) and we - have the --resolve feature if we want to play similar tricks properly - going forward. - - Closes #7044 - -- progress: reset limit_size variables at transfer start - - Otherwise the old value would linger from a previous use and would mess - up the network speed cap logic. - - Reported-by: Ymir1711 on github - - Fixes #7042 - Closes #7043 - -- RELEASE-NOTES: synced - -- [Daniel Gustafsson brought this change] - - cookies: use CURLcode for cookie_output reporting - - Writing the cookie file has multiple error conditions, and was using an - int with magic numbers to report the different error (which in turn were - disregarded anyways). This moves reporting to use a CURLcode value. - - Lightly-touched-by: Daniel Stenberg - - Closes #7037 - Closes #6749 - -- [Daniel Gustafsson brought this change] - - cookies: make use of string duplication function - - strstore() is defined as a strdup which ensures to free the target - pointer before duping the source char * into it. Make use of it in - two more cases where it can simplify the code. - -- [Daniel Gustafsson brought this change] - - cookies: refactor comments - - Comments in the cookie code were a bit all over the place in terms of - style and wording. This takes a stab at cleaning them up by keeping to - a single style and overall shape. Some comments are moved a little and - some removed alltogether due to being redundant. No functional changes - have been made, - -- [Peng-Yu Chen brought this change] - - http2: skip immediate parsing of payload following protocol switch - - This is considered not harmful as a following http2_recv shall be - called very soon. - - This is considered helpful in the specific situation where some - servers (e.g. nghttpx v1.43.0) may fulfill stream 1 immediately - following the return of HTTP status 101, other than waiting for - the client-side connection preface to arrive. - - Fixes #7036 - Closes #7040 - -- [Peng-Yu Chen brought this change] - - http2: use nghttp2_session_upgrade2 instead of nghttp2_session_upgrade - - Following the upstream deprecation of nghttp2_session_upgrade. - - Also provides further checks for requests with the HEAD method. - - Closes #7041 - -- progress/trspeed: use a local convenient pointer to beautify code - - The function becomes easier to read and understand with less repetition. - -- trspeed: use long double for transfer speed calculation - -- progress: move transfer speed calc into function - - This silences two scan-build-11 warnings: "The result of the '/' - expression is undefined" - - Bug: https://curl.se/mail/lib-2021-05/0022.html - Closes #7035 - -- [Cameron Cawley brought this change] - - openssl: remove unneeded cast for CertOpenSystemStore() - - Closes #7025 - -- travis: disable the libssh build - - It can't run on focal and causes warnings on bionic. Since the focal - failure started rather suddenly a while ago, we can suspect it might be - temporary. - - Added "bring back the build" to the TODO document. - - Fixes #7011 - Closes #7012 - -- [Peng-Yu Chen brought this change] - - http: use calculated offsets inst of integer literals for header parsing - - Assumed to be a minor coding style improvement with no behavior change. - - A modern compiler is expected to have the calculation optimized during - compilation. It may be deemed okay even if that's not the case, since - the added overhead is considered very low. - - Closes #7032 - -- [Peng-Yu Chen brought this change] - - GIT-INFO: suggest using autoreconf instead of buildconf - - Follow-up to 85868537d - - Closes #7033 - -- http: deal with partial CONNECT sends - - Also added 'CURL_SMALLSENDS' to make Curl_write() send short packets, - which helped verifying this even more. - - Add test 363 to verify. - - Reported-by: ustcqidi on github - Fixes #6950 - Closes #7024 - -- HTTP3: make the ngtcp2 build use the quictls fork - - ... as ngtcp2 itself documents the build this way. - - Closes #7031 - -- http: limit the initial send amount to used upload buffer size - - Previously this logic would cap the send to CURL_MAX_WRITE_SIZE bytes, - but for the situations where a larger upload buffer has been set, this - function can benefit from sending more bytes. With default size used, - this does the same as before. - - Also changed the storage of the size to an 'unsigned int' as it is not - allowed to be set larger than 2M. - - Also added cautions to the man pages about changing buffer sizes in - run-time. - - Closes #7022 - -- RELEASE-NOTES: synced - -- ngtcp2: fix the cb_acked_stream_data_offset proto - - The 'datalen' value should be 64 bit, not size_t! - - Reported-by: Dmitry Karpov - Bug: https://curl.se/mail/lib-2021-05/0019.html - Closes #7027 - -- progress: when possible, calculate transfer speeds with microseconds - - ... this improves precision, especially for transfers in the few or even - sub millisecond range. - - Reported-by: J. Bromley - Fixes #7017 - Closes #7020 - -- http: reset the header buffer when sending the request - - A reused transfer handle could otherwise reuse the previous leftover - buffer and havoc would ensue. - - Reported-by: sergio-nsk on github - Fixes #7018 - Closes #7021 - -- curl_mprintf.3: add description - - These functions have existed in the API since the dawn of time. It is - about time we describe how they work, even if we discourage users from - using them. - - Closes #7010 - -- [Timothy Gu brought this change] - - URL-SYNTAX: update IDNA section for WHATWG spec changes - - WHATWG URL has dictated the use of Nontransitional Processing (IDNA - 2008) for several years now. Chrome (and derivatives) still use - Transitional Processing, but Firefox and Safari have both switched. - - Also document the fact that winidn functions differently from libidn2 - here. - - Closes #7026 - -- [Calvin Buckley brought this change] - - INSTALL: add IBM i specific quirks - - Fixes #6830 - Closes #7013 - -- libcurl.3: mention the URL API - - To make it easier to find. Also a minor polish of libcurl-url.3 - - Closes #7009 - -- GnuTLS: don't allow TLS 1.3 for versions that don't support it - - Follow-up to 781864bedbc5 - - ... as they don't understand it and will return error at us! - - Closes #7014 - -Kamil Dudka (6 May 2021) -- tool_getparam: handle failure of curlx_convert_tchar_to_UTF8() - - Reported by GCC analyzer: - - Error: GCC_ANALYZER_WARNING (CWE-476): - src/tool_getparam.c: scope_hint: In function 'parse_args' - src/tool_getparam.c:2318:38: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL 'orig_opt' - lib/curlx.h:56: included_from: Included from here. - src/tool_getparam.c:28: included_from: Included from here. - lib/curl_multibyte.h:70:51: note: in definition of macro 'curlx_convert_tchar_to_UTF8' - src/tool_getparam.c:2316:16: note: in expansion of macro 'curlx_convert_tchar_to_UTF8' - - Reviewed-by: Marcel Raad - Reviewed-by: Daniel Stenberg - Closes #7023 - -Daniel Stenberg (6 May 2021) -- scripts/delta: also show total number of days - -Marc Hoersken (5 May 2021) -- sockfilt: fix invalid increment of handles index variable nfd - - Only increment the array index if we actually stored a handle. - - Follow up to e917492048f4b85a0fd58a033d10072fc7666c3b - Closes #6992 - -- sockfilt: avoid getting stuck waiting for writable socket - - Reset FD_WRITE event using the same approach as in multi.c - - Follow up to b36442b24305f3cda7c13cc64b46838995a4985b - Closes #6992 - -Jay Satiro (5 May 2021) -- test678: Fix for Windows multibyte builds - - Follow-up to 77fc385 from yesterday. - - Bug: https://github.com/curl/curl/pull/6662#issuecomment-832966557 - Reported-by: Marc Hörsken - -- [Dmitry Kostjuchenko brought this change] - - build: fix compilation for Windows UWP platform - - - Include afunix.h which is necessary for sockaddr_un when - USE_UNIX_SOCKETS is defined on Windows. - - Closes https://github.com/curl/curl/pull/7006 - -Daniel Stenberg (5 May 2021) -- gnutls: make setting only the MAX TLS allowed version work - - Previously, settting only the max allowed TLS version, leaving the - minimum one at default, didn't actually set it and left it to default - (TLS 1.3) too! - - As a bonus, this change also removes the dead code handling of SSLv3 - since that version can't be set anymore (since eff614fb0242cb). - - Reported-by: Daniel Carpenter - Fixes #6998 - Closes #7000 - -- openldap: replace ldap_ prefix on private functions - - Since openldap itself uses that prefix and with OpenĹDAP 2.5.4 (at - least) there's a symbol collision because of that. - - The private functions now use the 'oldap_' prefix where it previously - used 'ldap_'. - - Reported-by: 3eka on github - Fixes #7004 - Closes #7005 - -Jay Satiro (5 May 2021) -- http2: fix potentially uninitialized variable - - introduced several days ago in 3193170. caught by visual studio linker. - -- [Gilles Vollant brought this change] - - SSL: support in-memory CA certs for some backends - - - New options CURLOPT_CAINFO_BLOB and CURLOPT_PROXY_CAINFO_BLOB to - specify in-memory PEM certificates for OpenSSL, Schannel (Windows) - and Secure Transport (Apple) SSL backends. - - Prior to this change PEM certificates could only be imported from a file - and not from memory. - - Co-authored-by: moparisthebest@users.noreply.github.com - - Ref: https://github.com/curl/curl/pull/4679 - Ref: https://github.com/curl/curl/pull/5677 - Ref: https://github.com/curl/curl/pull/6109 - - Closes https://github.com/curl/curl/pull/6662 - -Daniel Stenberg (4 May 2021) -- [David Cook brought this change] - - tests: ignore case of chunked hex numbers in tests - - When hyper is used, it emits uppercase hexadecimal numbers for chunked - encoding lengths. Without hyper, lowercase hexadecimal numbers are used. - This change adds preprocessor statements to tests where this is an - issue, and adapts the fixtures to match. - - Closes #6987 - -- cmake: check for getppid and utimes - - ... as they're checked for in the configure script and are used by - source code. - - Removed checks for perror, setvbuf and strlcat since those defines are - not checked for in source code. - - Bonus: removed HAVE_STRLCPY from a few config-*.h files since that - symbol is not used in source code. - - Closes #6997 - -- libtest: remove lib530.c - - Follow up from e50a877df when test 530 was removed. Since then this - source file has not been used/needed. - - Closes #6999 - -- FILEFORMAT: mention sectransp as a feature - - Been supported since at least 40259ca65 - - Closes #7001 - -- RELEASE-NOTES: synced - -- libssh2: ignore timeout during disconnect - - ... to avoid memory leaks! - - libssh2 is tricky as we have to deal with the non-blockiness even in - close and shutdown cases. In the cases when we shutdown after a timeout - already expired, it is crucial that curl doen't let the timeout abort - the shutdown process as that then leaks memory! - - Reported-by: Benjamin Riefenstahl - Fixes #6990 - -- KNOWN_BUGS: add two HTTP/2 bugs - -- KNOWN_BUGS: add three HTTP/3 issues - - ... and moved the HTTP/2 issues to its own section - - Closes #6606 - Closes #6510 - Closes #6494 - -- [ejanchivdorj brought this change] - - CURLcode: add CURLE_SSL_CLIENTCERT - - When a TLS server requests a client certificate during handshake and - none can be provided, libcurl now returns this new error code - CURLE_SSL_CLIENTCERT - - Only supported by Secure Transport and OpenSSL for TLS 1.3 so far. - - Closes #6721 - -- [Tobias Gabriel brought this change] - - .github/FUNDING: add link to GitHub sponsors - - Closes #6985 - -- [Harry Sintonen brought this change] - - krb5/name_to_level: replace checkprefix with curl_strequal - - Closes #6993 - -- [Harry Sintonen brought this change] - - Curl_input_digest: require space after Digest - - Closes #6993 - -- [Harry Sintonen brought this change] - - Curl_http_header: check for colon when matching Persistent-Auth - - Closes #6993 - -- [Harry Sintonen brought this change] - - Curl_http_input_auth: require valid separator after negotiation type - - Closes #6993 - -- http: fix the check for 'Authorization' with Bearer - - The code would wrongly check for it using an additional colon. - - Reported-by: Blake Burkhart - Closes #6988 - -- [Kamil Dudka brought this change] - - http2: fix a resource leak in push_promise() - - ... detected by Coverity: - - Error: RESOURCE_LEAK (CWE-772): - lib/http2.c:532: alloc_fn: Storage is returned from allocation function "duphandle". - lib/http2.c:532: var_assign: Assigning: "newhandle" = storage returned from "duphandle(data)". - lib/http2.c:552: noescape: Resource "newhandle" is not freed or pointed-to in "set_transfer_url". - lib/http2.c:555: leaked_storage: Variable "newhandle" going out of scope leaks the storage it points to. - - Closes #6986 - -- [Kamil Dudka brought this change] - - http2: fix resource leaks in set_transfer_url() - - ... detected by Coverity: - - Error: RESOURCE_LEAK (CWE-772): - lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.] - lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()". - lib/http2.c:486: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.] - lib/http2.c:488: leaked_storage: Variable "u" going out of scope leaks the storage it points to. - - Error: RESOURCE_LEAK (CWE-772): - lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.] - lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()". - lib/http2.c:493: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.] - lib/http2.c:495: leaked_storage: Variable "u" going out of scope leaks the storage it points to. - - Error: RESOURCE_LEAK (CWE-772): - lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.] - lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()". - lib/http2.c:500: noescape: Resource "u" is not freed or pointed-to in "curl_url_set". [Note: The source code implementation of the function has been overridden by a builtin model.] - lib/http2.c:502: leaked_storage: Variable "u" going out of scope leaks the storage it points to. - - Error: RESOURCE_LEAK (CWE-772): - lib/http2.c:480: alloc_fn: Storage is returned from allocation function "curl_url". [Note: The source code implementation of the function has been overridden by a builtin model.] - lib/http2.c:480: var_assign: Assigning: "u" = storage returned from "curl_url()". - lib/http2.c:505: noescape: Resource "u" is not freed or pointed-to in "curl_url_get". [Note: The source code implementation of the function has been overridden by a builtin model.] - lib/http2.c:507: leaked_storage: Variable "u" going out of scope leaks the storage it points to. - - Closes #6986 - -- [Jacob Hoffman-Andrews brought this change] - - rustls: use ALPN - - Update required rustls to 0.5.0 - - Closes #6960 - -- [Michał Antoniak brought this change] - - gskit: fix CURL_DISABLE_PROXY build - - Removed localfd and remotefd from ssl_backend_data (ued only with proxy - connection). Function pipe_ssloverssl return always 0, when proxy is not - used. - - Closes #6981 - -- [Michał Antoniak brought this change] - - gskit: fix undefined reference to 'conn' - - Closes #6980 - -- [Jacob Hoffman-Andrews brought this change] - - tls: add USE_HTTP2 define - - This abstracts across the two HTTP/2 backends: nghttp2 and Hyper. - - Add our own define for the "h2" ALPN protocol, so TLS backends can use - it without depending on a specific HTTP backend. - - Closes #6959 - -- [Jacob Hoffman-Andrews brought this change] - - lib: fix 0-length Curl_client_write calls - - Closes #6954 - -- [Jacob Hoffman-Andrews brought this change] - - lib: remove strlen call from Curl_client_write - - At all call sites with an explicit 0 len, pass an appropriate nonzero - len. - - Closes #6954 - -- [Ayushman Singh Chauhan brought this change] - - docs: camelcase it like GitHub everywhere - - Closes #6979 - -Jay Satiro (27 Apr 2021) -- [Lucas Servén Marín brought this change] - - docs: fix typo in fail-with-body doc - - This commit fixes a small typo in the documentation for the - --fail-with-body flag. - - Closes https://github.com/curl/curl/pull/6977 - -- lib: fix some misuse of curlx_convert_UTF8_to_tchar - - curlx_convert_UTF8_to_tchar must be freed by curlx_unicodefree, but - prior to this change some uses mistakenly called free. - - I've reviewed all other uses of curlx_convert_UTF8_to_tchar and - curlx_convert_tchar_to_UTF8. - - Bug: https://github.com/curl/curl/pull/6602#issuecomment-825236763 - Reported-by: sergio-nsk@users.noreply.github.com - - Closes https://github.com/curl/curl/pull/6938 - -Daniel Stenberg (27 Apr 2021) -- ntlm: precaution against super huge type2 offsets - - ... which otherwise caused an integer overflow and circumvented the if() - conditional size check. - - Detected by OSS-Fuzz - Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33720 - Assisted-by: Max Dymond - Closes #6975 - -- c-hyper: fix unused variable ‘wrote’ - -- libcurl-security.3: be careful of setuid - - Reported-by: Harry Sintonen - Closes #6970 - -- [Kevin Burke brought this change] - - c-hyper: don't write to set.writeheader if null - - Previously if a caller set CURLOPT_WRITEFUNCTION but did not set a - CURLOPT_HEADERDATA buffer, Hyper would still attempt to write headers to - the data->set.writeheader header buffer, even though it is null. This - led to NPE segfaults attempting to use libcurl+Hyper with Git, for - example. - - Instead, process the client write for the status line using the same - logic we use to process the client write for the later HTTP headers, - which contains the appropriate guard logic. As a side benefit, - data->set.writeheader is now only read in one file instead of two. - - Fixes #6619 - Fixes abetterinternet/crustls#49 - Fixes hyperium/hyper#2438 - Closes #6971 - -- wolfssl: handle SSL_write() returns 0 for error - - Reported-by: Timo Lange - - Closes #6967 - -- easy: ignore sigpipe in curl_easy_send - - Closes #6965 - -- sigpipe: ignore SIGPIPE when using wolfSSL as well - - Closes #6966 - -- libcurl-security.3: don't try to filter IPv4 hosts based on the URL - - Closes #6942 - -- [Harry Sintonen brought this change] - - nss_set_blocking: avoid static for sock_opt - - Reviewed-by: Kamil Dudka - Closes #6945 - -- RELEASE-NOTES: synced - -- [Yusuke Nakamura brought this change] - - docs/HTTP3.md: fix nghttp2's HTTP/3 server port - - Port 8443 does not work now. - Correct origin is in the quicwg's wiki. - https://github.com/quicwg/base-drafts/wiki/Implementations#ngtcp2 - - Closes #6964 - -- krb5: don't use 'static' to store PBSZ size response - - ... because it makes the knowledge and usage cross-transfer in funny and - unexpected ways. - - Reported-by: Harry Sintonen - Closes #6963 - -- [Kevin Burke brought this change] - - m4: add security frameworks on Mac when compiling rustls - - Previously compiling rustls on Mac would only complete if you also - compiled the SecureTransport TLS backend, which curl would prefer to - the Rust backend. - - Appending these flags to LDFLAGS makes it possible to compile the - Rustls backend on Mac without the SecureTransport backend, which means - this patch will make it possible for Mac users to use the Rustls - backend for TLS. - - Reviewed-by: Jacob Hoffman-Andrews - - Fixes #6955 - Cloes #6956 - -- krb5: remove the unused 'overhead' function - - Closes #6947 - -- [Johann150 brought this change] - - curl_url_set.3: add memory management information - - wording taken from man page for CURLOPT_URL.3 - - As far as I can see, the URL part is either malloc'ed before due to - encoding or it is strdup'ed. - - Closes #6953 - -- [Jacob Hoffman-Andrews brought this change] - - c-hpyer: fix handling of zero-byte chunk from hyper - - Closes #6951 - -- CURLOPT_POSTFIELDS.3: clarify how it gets the size of the data - - Ref: https://curl.se/mail/lib-2021-04/0085.html - Closes #6943 - -- [Ralph Langendam brought this change] - - cmake: make libcurl output filename configurable - - Reviewed-by: Jakub Zakrzewski - Closes #6933 - -- [Patrick Monnerat brought this change] - - vtls: reset ssl use flag upon negotiation failure - - Fixes the segfault in ldaps disconnect. - - Reported-by: Illarion Taev - Fixes #6934 - Closes #6937 - -- configure: fix typo in TLS error message - - Reported-by: Pontus Lundkvist - -- README: link to the commercial support option - -Jay Satiro (22 Apr 2021) -- [Martin Halle brought this change] - - version: add gsasl_version to curl_version_info_data - - - Add gsasl_version string and bump to CURLVERSION_TENTH. - - Ref: https://curl.se/mail/lib-2021-04/0003.html - - Closes https://github.com/curl/curl/pull/6843 - -- [Morten Minde Neergaard brought this change] - - schannel: Support strong crypto option - - - Support enabling strong crypto via optional user cipher list when - USE_STRONG_CRYPTO or SCH_USE_STRONG_CRYPTO is in the list. - - MSDN says SCH_USE_STRONG_CRYPTO "Instructs Schannel to disable known - weak cryptographic algorithms, cipher suites, and SSL/TLS protocol - versions that may be otherwise enabled for better interoperability." - - Ref: https://curl.se/mail/lib-2021-02/0066.html - Ref: https://curl.se/docs/manpage.html#--ciphers - Ref: https://curl.se/libcurl/c/CURLOPT_SSL_CIPHER_LIST.html - Ref: https://docs.microsoft.com/en-us/windows/win32/api/schannel/ns-schannel-schannel_cred - - Closes https://github.com/curl/curl/pull/6734 - -Daniel Stenberg (22 Apr 2021) -- RELEASE-NOTES: synced - -- ci: adapt to configure requiring an explicit TLS choice - -- configure: split out each TLS library detector into its own function - - ... and put those functions in separate m4 files per TLS library. diff --git a/libs/libcurl/docs/COPYING b/libs/libcurl/docs/COPYING index 48f144758e..90f05adf25 100644 --- a/libs/libcurl/docs/COPYING +++ b/libs/libcurl/docs/COPYING @@ -1,6 +1,6 @@ COPYRIGHT AND PERMISSION NOTICE -Copyright (c) 1996 - 2021, Daniel Stenberg, <daniel@haxx.se>, and many +Copyright (c) 1996 - 2022, Daniel Stenberg, <daniel@haxx.se>, and many contributors, see the THANKS file. All rights reserved. diff --git a/libs/libcurl/docs/THANKS b/libs/libcurl/docs/THANKS index e29cbeedf6..e3a2ff5867 100644 --- a/libs/libcurl/docs/THANKS +++ b/libs/libcurl/docs/THANKS @@ -6,6 +6,7 @@ 0xee on github 0xflotus on github +1337vt on github 1ocalhost on github 3dyd on github 3eka on github @@ -28,6 +29,7 @@ Adam Langley Adam Light Adam Marcionek Adam Piggott +Adam Rosenfield Adam Sampson Adam Tkac Adnan Khan @@ -171,6 +173,7 @@ Andrew Moise Andrew Potter Andrew Robbins Andrew Wansink +Andrey Alifanov Andrey Gursky Andrey Labunets Andrii Moiseiev @@ -182,6 +185,7 @@ Andy Serpa Andy Tsouladze Angus Mackay anio on github +anon00000000 on github anshnd on github Antarpreet Singh Anthon Pang @@ -193,6 +197,7 @@ Anthony Ramine Anthony Shaw Antoine Aubert Antoine Calando +Antoine Pietri Anton Bychkov Anton Gerasimov Anton Kalmykov @@ -228,6 +233,7 @@ Augustus Saunders Austin Green Avery Fay awesomenode on github +Axel Chong Axel Morawietz Axel Tillequin Ayoub Boudhar @@ -237,6 +243,7 @@ Bachue Zhou Balaji Parasuram Balaji S Rao Balaji Salunke +Balakrishnan Balasubramanian Balazs Kovacsics Balint Szilakszi Barry Abrahamson @@ -311,6 +318,7 @@ bobmitchell1956 on github Bodo Bergmann Bogdan Nicula Boris Rasin +Boris Verkhovskiy Brad Burdick Brad Fitzpatrick Brad Harder @@ -359,6 +367,7 @@ Calvin Buckley Cameron Cawley Cameron Kaiser Cameron MacMinn +Cameron Will Camille Moncelier Cao ZhenXiang Caolan McNamara @@ -379,6 +388,7 @@ cclauss on github Cesar Eduardo Barros Chad Monroe Chandrakant Bagul +Charles Cazabon Charles Kerr Charles Romestant Chen Prog @@ -418,6 +428,7 @@ Christophe Demory Christophe Dervieux Christophe Legry Christopher Conroy +Christopher Degawa Christopher Head Christopher Palow Christopher R. Palmer @@ -444,10 +455,12 @@ coinhubs on github Colby Ranger Colin Blair Colin Hogben +Colin Leroy Colin O'Dell Colin Watson Colm Buckley Constantine Sapuntzakis +coralw on github Cory Benfield Cory Nelson Costya Shulyupin @@ -520,6 +533,7 @@ Daniel Silverstone Daniel Steinberg Daniel Stenberg Daniel Theron +Daniel Valenzuela Daniel Woelfel Daphne Luong Dario Nieuwenhuis @@ -578,6 +592,7 @@ David Walser David Woodhouse David Wright David Yan +Davide Cassioli davidedec on github dbrowndan on github dEajL3kA on github @@ -696,6 +711,7 @@ Elmira A Semenova elsamuko on github emanruse on github Emanuele Bovisio +Emanuele Torre Emil Engler Emil Lerner Emil Romanus @@ -753,10 +769,12 @@ Fabian Frank Fabian Hiernaux Fabian Keil Fabian Ruff +Fabian Yamaguchi Fabrice Fontaine Fabrizio Ammollo Fahim Chandurwala Faizur Rahman +Farzin on github Fawad Mirza fds242 on github Federico Bianchi @@ -770,10 +788,12 @@ Felix von Leitner Felix Yan Feng Tu Fernando Muñoz +Filip Lundgren Filip Salomonsson Firefox OS Flameborn on github Flavio Medeiros +Florian Kohnhäuser Florian Pritz Florian Schoppmann Florian Van Heghe @@ -782,6 +802,7 @@ Florin Petriuc Forrest Cahoon Francisco Moraes Francisco Munoz +Francisco Olarte Francisco Sedano Francois Petitjean Francois Rivard @@ -811,7 +832,9 @@ Gabriel Simmer Gabriel Sjoberg Gambit Communications Ganesh Kamath +gaoxingwang on github Garrett Holmstrom +Garrett Squire Gary Maxwell Gaurav Malhotra Gautam Kachroo @@ -909,6 +932,7 @@ Hao Wu Hardeep Singh Haris Okanovic Harold Stuart +Harry Sarson Harry Sintonen Harshal Pradhan Hauke Duden @@ -923,10 +947,12 @@ Helwing Lutz Hendrik Visage Henri Gomez Henrik Gaßmann +Henrik Holst Henrik Storner Henry Ludemann Henry Roeland Herve Amblard +HexTheDragon Hidemoto Nakada Himanshu Gupta Ho-chi Chen @@ -945,6 +971,7 @@ huzunhao on github hydra3333 on github Hzhijun iammrtau on github +Ian Blanes Ian D Allen Ian Fette Ian Ford @@ -966,6 +993,7 @@ Ikko Ashimine Ilguiz Latypov Ilja van Sprundel Illarion Taev +illusory-dream on github Ilya Kosarev imilli on github Immanuel Gregoire @@ -1029,7 +1057,9 @@ Jan Mazur Jan Schaumann Jan Schmidt Jan Van Boghout +Jan Venekamp Jan Verbeek +Jan-Piet Mens JanB on github Janne Johansson Jared Jennings @@ -1050,6 +1080,7 @@ Javier G. Sogo Javier Navarro Javier Sixto Jay Austin +Jay Dommaschk Jayesh A Shah Jaz Fresh Jean Fabrice @@ -1076,6 +1107,7 @@ Jeff Weber Jeffrey Tolar Jeffrey Walton jeffrson on github +Jenny Heino Jens Finkhaeuser Jens Rantil Jens Schleusener @@ -1103,7 +1135,9 @@ Jesse Chisholm Jesse Noller Jesse Tan jethrogb on github +jhoyla on github Jie He +Jim Beveridge Jim Drash Jim Freeman Jim Fuller @@ -1149,6 +1183,7 @@ John Dennis John Dunn John E. Malmberg John Gardiner Myers +John H. Ayad John Hascall John Janssen John Joseph Bachir @@ -1197,6 +1232,7 @@ Jonathan Nieder Jonathan Watt Jonathan Wernberg Jongki Suwandi +jonny112 on github Joombalaya on github Joonas Kuorilehto Jordan Brown @@ -1215,7 +1251,6 @@ Josip Medved Josue Andrade Gomes José Joaquín Atria Jozef Kralik -JP Mens Juan Barreto Juan F. Codagnone Juan Ignacio Hervás @@ -1239,6 +1274,7 @@ Jun-ya Kato jungle-boogie on github Junho Choi Jurij Smakov +jurisuk on github Juro Bystricky Justin Clift Justin Ehlert @@ -1264,6 +1300,7 @@ Kamil Dudka Kane York Kang Lin Kang-Jin Lee +Kantanat Wannapaka Kari Pahula Karl Chen Karl Moerder @@ -1286,6 +1323,7 @@ Kenny To Kent Boortz Kerem Kat Keshav Krity +Kevin Adler Kevin Baughman Kevin Burke Kevin Fisk @@ -1328,6 +1366,7 @@ Kristoffer Gleditsch Kunal Chandarana Kunal Ekawde Kurt Fankhauser +Kushal Das Kwon-Young Choi Kyle Abramowitz Kyle Edwards @@ -1360,6 +1399,8 @@ Laurie Clark-Michalek Lawrence Gripper Lawrence Matthews Lawrence Wagerfield +Leah Neukirchen +Leandro Coutinho Legoff Vincent Lehel Bernadt Leif W @@ -1377,6 +1418,8 @@ Leonardo Taccari Leszek Kubik Li Xinwei Liam Healy +Liam Warfield +LigH-de on github lijian996 on github Lijo Antony lilongyan-huawei on github @@ -1418,6 +1461,7 @@ Luke Amery Luke Call Luke Dashjr Luke Granger-Brown +luminixinc on github Luo Jinghua Luong Dinh Dung Luz Paz @@ -1538,6 +1582,7 @@ Matt McClure Matt Veenstra Matt Witherspoon Matt Wixson +Matteo Baccan Matteo Bignotti Matteo Bignottignotti Matteo Rocco @@ -1568,6 +1613,8 @@ Maxime Larocque Maxime Legros mbeifuss on github mccormickt12 on github +Median Median Stride +mehatzri on github Mehmet Bozkurt Mekonikum Melissa Mears @@ -1689,6 +1736,7 @@ Nathaniel R. Lewis Nathaniel Waisbrot Naveen Chandran Naveen Noel +Neal McBurnett Neal Poole nedres on github neex on github @@ -1698,6 +1746,7 @@ Neil Bowers Neil Dunbar Neil Kolban Neil Spring +neutric on github nevv on HackerOne/curl Niall O'Reilly niallor on github @@ -1705,6 +1754,8 @@ nian6324 on github nianxuejie on github Nic Roets Nicholas Maniscalco +Nick Banks +Nick Coghlan Nick Draffen Nick Gimbrone Nick Humfrey @@ -1720,6 +1771,7 @@ Nicolas Grekas Nicolas Guillier Nicolas Morey-Chaisemartin Nicolas Sterchele +Niels Martignène Niels van Tongeren Nikita Schmidt Nikitinskit Dmitriy @@ -1834,6 +1886,7 @@ Pavel Volgarev Pavol Markovic Pawel A. Gajda Pawel Kierski +Paweł Kowalski Paweł Wegner Pedro Larroy Pedro Monreal @@ -1884,6 +1937,7 @@ Phil Lisiecki Phil Pellouchoud Philip Craig Philip Gladstone +Philip H Philip Langdale Philip Prindeville Philipp Klaus Krause @@ -1908,6 +1962,7 @@ Poul T Lomholt Pramod Sharma Prash Dush Praveen Pvs +Prithvi MK Priyanka Shah Przemysław Tomaszewski pszemus on github @@ -1918,6 +1973,7 @@ Quagmire Quanah Gibson-Mount Quentin Balland Quinn Slack +r-a-sattarov on github R. Dennis Steed Radek Zajic Radoslav Georgiev @@ -1972,6 +2028,7 @@ Rene Bernhardt Rene Rebe Reuven Wachtfogel Reza Arbab +Rianov Viacheslav Ricardo Cadime Ricardo Gomes Ricardo Martins @@ -2016,6 +2073,7 @@ Rider Linden RiderALT on github Rikard Falkeborn rl1987 on github +Rob Boeckermann Rob Cotrone Rob Crittenden Rob Davies @@ -2025,6 +2083,8 @@ Rob Stanzel Rob Ward Robert A. Monat Robert B. Harris +Robert Brose +Robert Charles Muir Robert D. Young Robert Dunaj Robert Foreman @@ -2037,6 +2097,7 @@ Robert Ronto Robert Schumann Robert Weaver Robert Wruck +Robin A. Meade Robin Cornelius Robin Douine Robin Johnson @@ -2113,12 +2174,15 @@ Samuel Thibault Samuel Tranchet Sander Gates Sandor Feldi +Sandro Jaeckel Santhana Todatry Santino Keupp Saqib Ali Sara Golemon Saran Neti Sascha Swiercy +Sascha Zengler +Satadru Pramanik Saul good Saurav Babu sayrer on github @@ -2139,6 +2203,7 @@ Sebastian Haglund Sebastian Mundry Sebastian Pohlschmidt Sebastian Rasmussen +Sebastian Sterk Senthil Raja Velu Sergei Kuzmin Sergei Nikulov @@ -2174,6 +2239,7 @@ shithappens2016 on github Shlomi Fish Shmulik Regev Siddhartha Prakash Jain +siddharthchhabrap on github Sidney San Martín Siegfried Gyuricsko silveja1 on github @@ -2205,6 +2271,7 @@ Stan van de Burgt Stanislav Ivochkin Stanislav Zidek Stathis Kapnidis +Stav Nir steelman on github Stefan Agner Stefan Bühler @@ -2231,6 +2298,7 @@ Stephan Lagerholm Stephan Mühlstrasser Stephan Szabo Stephane Pellegrino +Stephen Boost Stephen Brokenshire Stephen Collyer Stephen Kick @@ -2254,6 +2322,7 @@ Steven Gu Steven M. Schweda Steven Parkes Steven Penny +Stewart Gebbie Stian Soiland-Reyes Stoned Elipot stootill on github @@ -2280,6 +2349,7 @@ Tae Hyoung Ahn Taiyu Len Taneli Vähäkangas Tanguy Fautre +Taras Kushnir tarek112 on github Tatsuhiro Tsujikawa tawmoto on github @@ -2416,6 +2486,7 @@ Ulf Samuelsson Ulrich Doehner Ulrich Telle Ulrich Zadow +updatede on github UrsusArctos on github User Sg ustcqidi on github @@ -2451,6 +2522,7 @@ Vincent Sanders Vincent Torri vitaha85 on github Vitaly Varyvdin +vl409 on github Vlad Grachov Vlad Ureche Vladimir Grishchenko @@ -2502,6 +2574,7 @@ XhmikosR on github XhstormR on github Xiang Xiao Xiangbin Li +Xiaoke Wang Xiaoyin Liu XmiliaH on github xnynx on github @@ -2562,3 +2635,4 @@ zzq1015 on github ウさん 不确定 加藤郁之 +梦终无痕 |