CHANGES
CHANGES
CHANGES
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Changelog
Follow-up to bf7e887b2442783ab52
The previous fix for #9128 was incomplete and caused #9397.
Fixes #9397
Closes #9399
Turns out we don't see the warnings, but the warnings right now are
plain ridiculous and unhelpful so we can just as well just kill this
job.
Closes #9390
Closes #9391
Closes #9392
- #9066
- #9247
- #9248
Closes #9256
If the user is specified as part of the URL, and the same user exists
in .netrc, Authorization header was not sent at all.
The user and password fields were assigned in conn->user and password
but the user was not assigned to data->state.aptr, which is the field
that is used in output_auth_headers and friends.
Fixes #9243
If netrc entry has password with empty login, use it for any username.
Example:
.netrc:
machine example.com password 123456
Closes #9248
Fixes https://github.com/curl/curl/issues/8653
Closes #9334
Closes #9066
Bug: https://curl.se/docs/CVE-2022-35252.html
CVE-2022-35252
Closes #9381
If they actually remove the functions at a later point, then someone can
deal with that pain and functionality break then.
Fixes #9382
Closes #9383
Have curl_multi_init() use a much larger DNS hash table than used for
the easy interface to scale and perform better when used with _many_
host names.
Closes #9349
Closes #9349
Follow up to #8680
Closes #9312
There 25 is used with FTP tests skipped, and 20 for FTP tests.
This should make torture tests stay within the 60min timeout.
Follow up to #8961
Closes #9372
Closes #9361
Follow up to #9367
Closes #9370
Prior to this change some tests that rely on nghttpx proxy did not use
CRLF headers everywhere. A recent change in nghttp2, which updated its
version of llhttp (HTTP parser), requires curl's HTTP/1.1 test server to
use CRLF headers.
Ref: https://github.com/nghttp2/nghttp2/commit/9d389e8
Fixes https://github.com/curl/curl/issues/9364
Closes https://github.com/curl/curl/pull/9365
Sockets may be shut down by the kernel when the app is moved to the
background, but pipes are not.
Fixes #6132
Closes #9368
When reading the symbolic link name for a file, we need to add the file
name to base path name.
Closes #9369
Previously the configure script would just warn about this fact and
continue with TLS disabled build which is not always helpful. TLS should
be explicitly disabled if that is what the user wants.
Closes #9367
Fixes #9300
Closes #9363
Reported-by: Wu Zheng
See #9355
Closes #9356
Closes #9354
Closes #9353
- RELEASE-NOTES: synced
As "(aq" and "(dq" to prevent them from implying a meaning in the nroff
output. This removes the need for using \& escapes in the .d files'
description parts.
Closes #9352
This removes the race condition and therefore need for a mutex.
Closes #9023
This commit changes the failf message to output the maximum length, when
curl refuses to process a URL because it is too long.
See: #9317
Closes: #9327
Commit b589696f added lines to some shell within AC_ARG_WITH macros, but
inadvertently failed to move the final closing ).
So, if these problems have been around for a while, how did I find them?
Only because I did a configure including these options:
Closes #9344
Closes #9333
Closes #9332
Closes #9328
Closes #9328
- examples/curlx.c: remove
Closes #9330
Closes #9329
- DEPRECATE.md: push the NSS deprecation date forward one year to 2023
URL: https://curl.se/mail/lib-2022-08/0016.html
Since the libssh2 API uses 'long' to store the timestamp, it cannot
transfer >32bit times on Windows and 32bit architecture builds.
Spotted by Coverity
Closes #9325
The libssh API used caps the time to an unsigned 32bit variable. Avoid
nasty surprises by instead not setting such time.
Spotted by Coverity.
Closes #9324
Bug: https://github.com/curl/curl/pull/7252
Reported-by: [email protected]
Ref: https://github.com/curl/curl/pull/7281
Closes https://github.com/curl/curl/pull/9305
... as using a 65535 bytes host name in a URL does not fit on the
command line on some systems - like Windows.
- RELEASE-NOTES: synced
This saves one alloc per name resolve and simplifies the exit path.
Closes #9310
Closes #9310
Closes #9310
Closes #9318
It *probably* causes other problems too since DNS can't resolve such
long names, but the SNI field in TLS is limited to 16 bits length.
Closes #9317
Closes #9316
Follow-up to 8a13be227eede2
Closes #9315
When using a TLS backend other than OpenSSL, the TLS-specific ngtcp2
library must be configured manually, e.g.:
`export CURL_LDFLAG_EXTRAS=-lngtcp2_crypto_wolfssl`
Closes #9314
Closes #9290
memory debug tracking annotates whether the returned pointer does not
`alias`, hints where the size required is, for Windows to be better
debugged via Visual Studio.
Closes https://github.com/curl/curl/pull/9306
Closes #9309
Closes #9161
Closes #8741
Closes #8632
- RELEASE-NOTES: synced
- connect: close the happy eyeballs loser connection when using QUIC
Closes #9283
Closes #9301
And I also moved --form-escape from the "post" category to the "upload"
category (this is what I originally wanted to fix, before also noticing
the mistake in the example).
Closes #9298
Closes #9297
Bug: https://github.com/curl/curl/issues/8361
Reported-by: Gisle Vanem
Closes https://github.com/curl/curl/pull/9288
Daniel Stenberg (11 Aug 2022)
- config: remove the check for and use of SIZEOF_SHORT
shorts are 2 bytes on all platforms curl runs and have ever run on.
Closes #9291
Ref: #9220
Closes #9291
Closes #9217
Closes #9253
Closes #9265
Closes #9289
- RELEASE-NOTES: synced
Fixes #9286
Closes #9287
Closes #9213
Closes #9280
Closes #9281
Closes #8264
Closes #9259
The cmake build does not check for and verify presence of a working
Atomic type, which then makes curl_global_init() to not build
thread-safe on non-Windows platforms.
Closes https://github.com/curl/curl/issues/8973
Closes https://github.com/curl/curl/pull/8982
The code that detects bsdsocket.library for AmigaOS did not work
for AmigaOS 4.x. This has been fixed and also cleaned up a little
to reduce duplication. Wasn't technically necessary before, but is
required when building with AmiSSL instead of OpenSSL.
Closes #9268
Amiga specific code which put the URL in the file comment was perhaps
accidentally removed in b88940850002a3f1c25bc6488b95ad30eb80d696 having
originally been added in 5c215bdbdfde8b2350cdcbac82aae0c914da5314.
Reworked to fit the code changes and added it back in.
Closes #9258
The connectdata struct field 'negnpn' never holds a value larger than
30, so an unsigned char saves 3 bytes struct space.
Closes #9279
Use 'unsigned char' for storage instead of the enum, for three GSSAPI
related fields in the connectdata struct.
Closes #9278
So that an address used from the DNS cache that was previously used for
QUIC can be reused for TCP and vice versa.
Reported-by: ウさん
Fixes #9274
Closes #9276
Closes #9269
Closes #9228
Closes #9267
The most recent GCC builds for AmigaOS 4.x do not allow -pthread and
exit with an error. Instead, need to explictly specify -lpthread.
Closes #9266
When parsing the "qop=" parameter of the digest authentication, and the
value is provided within quotes, the list of values can have leading
white space which the parser previously did not handle correctly.
digest: reject broken header with session protocol but without qop
Closes #9077
Closes #9250
- RELEASE-NOTES: synced
Fixes #9235
Closes #9236
This commit adds the dns category to the --resolve command line option,
because it can be interpreted as both: a low-level connection option and
an option related to the resolving of a hostname.
Closes #9229
- Support TLS 1.3 as the default max TLS version for Windows Server 2022
and Windows 11.
Closes https://github.com/curl/curl/pull/8419
On some systems, the gen.pl script takes nearly two minutes for the
generation of the main-page, which is a completely unacceptable time.
The commit addresses the first issue by replacing the "\W" wiht
[^a-zA-Z0-9_], which is, according to regex101.com, functionally
equivalent to the previous operation, except that it is obviously
limited to ASCII only, which is fine, as the curl project is
English-only anyway.
The second issue is being addressed by only running the loop if the line
contains a "--" in it. The loop may be completeley removed in the
future.
See #8299
Fixes #9230
Closes #9232
Closes #9216
The options were added in #6341 and d13179d, but cause problems: Lots of
POLLIN event occurs but recvfrom read nothing.
Closes #9208
- RELEASE-NOTES: synced
Reported-by: [email protected]
Fixes https://github.com/curl/curl/issues/9204
Closes https://github.com/curl/curl/pull/9200
Closes #9205
Use the correct type, and make cleanarg an empty macro if the cleaning
ability is absent.
Fixes #9195
Closes #9196
Follow up to 7ade9c50b35d95d47a43880c3097bebab7a7e690
Closes #9012
Closes https://github.com/curl/curl/pull/9199
To please icc
Closes #9179
Warning by icc
Closes #9179
Closes #9179
Closes #9179
Closes #9179
Warning by icc
Closes #9179
Closes #9179
Follow-up to 1c58e7ae99ce2030213f28b
Closes #9179
Closes #9179
Closes #9179
Closes #9179
- sendf: store the header type in an usigned char to avoid icc warnings
Closes #9179
Closes #9179
As virtually no called checked the return code, and those that did
wrongly treated it as a CURLcode. Detected by the icc compiler warning:
enumerated type mixed with another type
Closes #9179
Closes #9179
To fix the icc warning enumerated type mixed with another type
Closes #9179
- curl-compilers.m4: make icc use -diag* options and disable two warnings
-wd and -we are deprecated and are now -diag-disable and -diag-error
Closes #9179
curl-functions.m4: check whether atomics can link rather than just compile
Some build toolchains support C11 atomics (i.e., _Atomic types), but
will not link the associated atomics runtime unless a flag is passed. In
such an environment, linking an application with libcurl.a can fail due
to undefined symbols for atomic load/store functions.
Closes #9190
Closes #9187
This was an accurate error pointed out by the icc warning: enumerated
type mixed with another type
Ref: #9179
Closes #9184
- sendf: fix paused header writes since after the header API
Closes #9185
Closes #9183
- file: fix icc enumerated type mixed with another type warning
Ref: #9179
Closes #9181
- `CURL_INCLUDES_SYS_UIO` [1]
- `HAVE_ALLOCA_H` [2]
- `HAVE_CRYPTO_CLEANUP_ALL_EX_DATA` (unused since
de71e68000c8624ea13f90b136f8734dd0fb1bdc)
- `HAVE_DLFCN_H`
- `HAVE_DLOPEN`
- `HAVE_DOPRNT`
- `HAVE_FCNTL`
- `HAVE_GETHOSTBYNAME` [3]
- `HAVE_GETOPT_H`
- `HAVE_GETPASS`
- `HAVE_GETPROTOBYNAME`
- `HAVE_GETSERVBYNAME`
- `HAVE_IDN_FREE*`
- `HAVE_INET_ADDR`
- `HAVE_IOCTL`
- `HAVE_KRB4`
- `HAVE_KRB_GET_OUR_IP_FOR_REALM`
- `HAVE_KRB_H`
- `HAVE_LDAPSSL_H`
- `HAVE_LDAP_INIT_FD`
- `HAVE_LIBDL`
- `HAVE_LIBNSL`
- `HAVE_LIBRESOLV*`
- `HAVE_LIBUCB`
- `HAVE_LL`
- `HAVE_LOCALTIME_R`
- `HAVE_MALLOC_H`
- `HAVE_MEMCPY`
- `HAVE_MEMORY_H`
- `HAVE_NETINET_IF_ETHER_H`
- `HAVE_NI_WITHSCOPEID`
- `HAVE_OPENSSL_CRYPTO_H`
- `HAVE_OPENSSL_ERR_H`
- `HAVE_OPENSSL_PEM_H`
- `HAVE_OPENSSL_PKCS12_H`
- `HAVE_OPENSSL_RAND_H`
- `HAVE_OPENSSL_RSA_H`
- `HAVE_OPENSSL_SSL_H`
- `HAVE_OPENSSL_X509_H`
- `HAVE_PEM_H`
- `HAVE_POLL`
- `HAVE_RAND_SCREEN`
- `HAVE_RAND_STATUS`
- `HAVE_RECVFROM`
- `HAVE_SETSOCKOPT`
- `HAVE_SETVBUF`
- `HAVE_SIZEOF_LONG_DOUBLE`
- `HAVE_SOCKIO_H`
- `HAVE_SOCK_OPTS`
- `HAVE_STDIO_H`
- `HAVE_STRCASESTR`
- `HAVE_STRFTIME`
- `HAVE_STRLCAT`
- `HAVE_STRNCMPI`
- `HAVE_STRNICMP`
- `HAVE_STRSTR`
- `HAVE_STRUCT_IN6_ADDR`
- `HAVE_TLD_H`
- `HAVE_TLD_STRERROR`
- `HAVE_UNAME`
- `HAVE_USLEEP`
- `HAVE_WINBER_H`
- `HAVE_WRITEV`
- `HAVE_X509_H`
- `LT_OBJDIR`
- `NEED_BASENAME_PROTO`
- `NOT_NEED_LIBNSL`
- `OPENSSL_NO_KRB5`
- `RECVFROM_TYPE*`
- `SIZEOF_LONG_DOUBLE`
- `STRERROR_R_TYPE_ARG3`
- `USE_YASSLEMUL`
- `_USRDLL` (from CMake) [4]
[3] There are more instances of this in autotools, but I did not dare to
touch those. Looked like it's used to detect socket support.
{
grep -o -E 'set\([A-Z][A-Z0-9_]{3,}'
CMake/Platforms/WindowsCache.cmake | sed -E 's|set\(||g'
grep -o -E -h '#define +[A-Z][A-Z0-9_]{3,}' lib/config-*.h
| sed -E 's|#define +||g'
grep -o -E '#cmakedefine +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.cmake
| sed -E 's|#cmakedefine +||g'
grep -o -E '#undef +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.in
| sed -E 's|#undef +||g'
} | sort -u | grep -v -F 'HEADER_CURL_' | while read -r def; do
c="$(git grep -w -F "${def}" | grep -v -E -c '(/libcurl\.tmpl|^lib/config-|
^lib/curl_config\.h\.cmake|^CMakeLists\.txt|^CMake/Platforms/WindowsCache\.cmake|
^packages/vms/config_h\.com|^m4/curl-functions\.m4|^acinclude\.m4|
^configure\.ac)')"
if [ "${c}" = '0' ]; then
echo "${def}"
fi
done
```
Fixes #9164
Reported-by: Gwen Shapira
Closes #9177
Adjust unit test 1302 to unpadded base64url encoding and add tests for
empty results.
Closes #9139
Ref: #9156
Reported-by: Matthew Thompson
Closes #9176
Closes #9170
Fixes #9172
Reported-by: Érico Nogueira Rolim
Closes #9173
and make 'dnstype' in 'struct dnsprobe' use the DNStype to fix the icc compiler
warning:
This feature creates problems when building c-ares first, using CMake
and pointing `LIBCARES_PATH` to its install prefix, where `Makefile.m32`
is missing in such case. A sub-build for c-ares is undesired also when
c-ares had already been build via its own `Makefile.m32`.
To avoid the sub-build, this patch deletes its Makefile rule. After this
patch `libcares.a` needs to be manually built before using it in
`Makefile.m32`. Aligning it with the rest of dependencies.
[1] 46c92c0b806da041d7a5c6fb64dbcdc474d99b31
The function stored a terminating zero into the buffer for convenience,
but when on repeated calls that would cause problems. Starting now, the
passed in buffer is not modified.
Fixes #9155
Closes #9157
Reported-by: jvvprasad78 on github
Fixes #9149
Closes #9151
Reported-by: yiyuaner on github
Same issue as here [1], but this time when building curl with BoringSSL
for Windows with LDAP(S) or Schannel support enabled.
Apply the same fix [2] for these source files as well.
[1] https://github.com/curl/curl/issues/5669
[2] https://github.com/curl/curl/commit/fbe07c6829ba8c5793c84c2856526e19e9029ab9
The Intel compiler tries to look like GCC *and* clang *and* it lies in
its __has_builtin() function (returns true when it should return false),
so override it.
When running cmake several times, new content was appended to already
existing generated files, which is not appropriate
Closes #9135
- RELEASE-NOTES: synced
This patch makes CMake fill the "OS string" with the value of
`CMAKE_C_COMPILER_TARGET`, if passed. This typically contains a triplet,
the same we can pass to `./configure` via `--host=`.
For non-CMake, non-autotools, Windows builds, this patch adds the ability
to override the default `OS` value in `lib/config-win32.h`.
With these its possible to get the same OS string across the three build
systems.
They allow to override the hardcoded values for the `windres` and `strip`
tools, complementing the existing set of `CURL_{CC,AR,RANLIB}` variables.
`CURL_RC` comes handy when using LLVM tools with `CROSSPREFIX=llvm-` and
`CURL_CC=clang` set on current latest debian:unstable or earlier, where
`llvm-windres` is missing, and a `CURL_RC=<triplet>-windres` fixes it.
Hopefully this will be fixed in the llvm package. FWIW `llvm-windres`
does exist in Homebrew llvm, MSYS2 llvm and llvm-mingw.
Fixes #9122
Closes #9123
Closes #9114
Closes #9114
Bug: https://github.com/curl/curl/discussions/9115
Reported-by: Ted Lyngmo
Closes https://github.com/curl/curl/pull/9121
For example:
`CFLAGS=-DCURL_BORINGSSL_VERSION="c239ffd0"`
```
curl 7.84.0 (x86_64-w64-mingw32) libcurl/7.84.0 BoringSSL/c239ffd0 (Schannel)
zlib/1.2.12 [...]
Release-Date: 2022-06-27
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps
mqtt pop3 [...]
Features: alt-svc AsynchDNS brotli gsasl HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6
Kerberos [...]
```
The setting is optional, and if not passed, BoringSSL will appear without
a version number, like before this patch.
Closes #9113
Bug: https://github.com/curl/curl/discussions/9115
Reported-by: Ted Lyngmo
Closes #9111
Closes #9109
Prior to this change nc was only incremented for qop type auth even
though libcurl sends nc with any qop.
Closes https://github.com/curl/curl/pull/9090
Bumped to 7.85.0
Closes #9106
- timecondition
- proxytype
- method
... previously used their enum type in the struct, which made them
unnecesarily large.
Closes #9105
Closes #9104
Closes #9103
Update the ngtcp2 find module to detect the boringssl backend. Determine
if the underlying OpenSSL implementation is BoringSSL and if so use that
as the ngtcp2 backend.
They're not used for that long times anyway, 32 bit milliseconds is long
enough.
Closes #9101
Closes #9102
Closes #9098
Closes #9100
Closes #9099
Closes #9097
Closes #9096
When building curl for target platform other than x64 and x86, it is now
possible to pass `ARCH=custom`, that will omit all hardcoded logic for
setting up CFLAGS/LDFLAGS/RCFLAGS for these platforms, and let these be
customized via `CURL_CFLAG_EXTRAS`, `CURL_LDFLAG_EXTRAS`, and a newly
added one for the resource compiler: `CURL_RCFLAG_EXTRAS`.
Ref: https://github.com/curl/curl/pull/9027#issuecomment-1164157604
Ref: https://github.com/curl/curl/pull/8997#issuecomment-1164344155
- When the user did no select a Windows target version manually, stop
explicitly targeting Windows XP, and instead use the toolchain default.
This ensures to always have a random seed, even when libcurl is built
with a vtls backend lacking a random generator API, such as rustls
(experimental), GSKit and certain mbedTLS builds, or, when libcurl is
built without a TLS backend. We reuse the Windows-specific random
function from the Schannel backend.
[1] https://docs.microsoft.com/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom
[2] https://docs.microsoft.com/windows/win32/api/wincrypt/nf-wincrypt-
cryptgenrandom
Closes #9027
Closes #8992
Also shortened the names and moved them to the .c file since they are
private for this source file only. Also made them #defines instead of
enum.
Closes #9079
Jay Satiro (4 Jul 2022)
- [Thomas Weißschuh brought this change]
The same was done for select() in 5912da25 but poll() was missed.
Bug: https://bugs.archlinux.org/task/75201
Reported-by: Alexandre Bury (gyscos at archlinux)
Ref: https://github.com/curl/curl/issues/8921
Ref: https://github.com/curl/curl/pull/8961
Ref: https://github.com/curl/curl/commit/5912da25#r77584294
Closes https://github.com/curl/curl/pull/9091
Closes https://github.com/curl/curl/pull/9084
Closes https://github.com/curl/curl/pull/8997
Closes #9080
- RELEASE-NOTES: synced
bumped to 7.84.1
.mailmap: updated
Closes #9076
THe text of the ISC license is in this file, so the SPDX license
expression should be updated
Closes #9073
Closes #9070
The last use was removed in 7.82.0. Updated some docs too to reflect the
current error code situation.
Closes #9067
Closes #9064
Closes #9063
... and only set HAVE_ATOMIC if that header exists since we use
typedefes set in it.
Fixes #9058
Closes #9062
Closes #9056
Closes #9056
During the packaging of the latest curl release for Debian, Lintian
warned me about a typo which causes the section name "Secrets in memory"
to not be rendered in the manpage due to "SH_" not being recognized as a
header.
Closes #9057
Closes #9054
Bug: https://curl.se/docs/CVE-2022-32207.html
CVE-2022-32207
Reported-by: Harry Sintonen
Closes #9050
Bug: https://curl.se/docs/CVE-2022-32205.html
CVE-2022-32205
Reported-by: Harry Sintonen
Closes #9048
Bug: https://curl.se/docs/CVE-2022-32206.html
CVE-2022-32206
Reported-by: Harry Sintonen
Closes #9049
Bug: https://curl.se/docs/CVE-2022-32208.html
CVE-2022-32208
Reported-by: Harry Sintonen
Closes #9051
Ref: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2886.htm
Closes #9039
Ultimately this meant that the state worked on by ftp_do_more() was the
http proxy state not the ftp state initialised by ftp_connect(), but
subsequent calls to any ftp_ function would use the original state.
This commit updates the ftp protocol state pointer in ftp_do_more() after
Curl_proxy_connect() returns, ensuring that the correct state pointer is
used.
Fixes #8737
Closes #9043
aea8ac1 fixed #8980 which was reported by Sgharat on github, but that
info was not included in the commit message.
Closes https://github.com/curl/curl/pull/9036
Viktor Szakats (22 Jun 2022)
- rand: stop detecting /dev/urandom in cross-builds
Fixes #9008
Closes #9014
Most contents was moved, but this text should remain here.
Since this [1] commit in 2011, `_WIN32_WINNT` was set fixed to Windows
XP when the `-ipv6` option is selected. Maybe this was added to support
pre-XP Windows versions (?). These days libcurl builds fine for both XP
and post-XP versions with IPv6 support enabled. The relevance of pre-XP
version is also low by now. Other build methods also do not impose such
limitation for a similar configuration. So, drop this hard-wired
`_WIN32_WINNT` limit from `Makefile.m32`, thus building for the default
Windows version set by the compiler. This is Vista for recent MinGW
versions.
Closes #9035
Closes #9032
Closes #9033
Bug: https://github.com/curl/curl/pull/9012#discussion_r902018782
Reported-by: Marc Hörsken
Closes https://github.com/curl/curl/pull/9030
Closes #9029
Append to the upload buffer when only small amount remains in buffer
rather than performing a separate tiny send to empty buffer.
Avoid degenerative upload behavior which might cause curl to send mostly
1-byte DATA frames after exhausing the h2 send window size
projects: fix third-party SSL library build paths for Visual Studio
The paths used by the build batch files were inconsistent with those in
the Visual Studio project files.
Closes #8991
Closes #9028
- RELEASE-NOTES: synced
Closes #9025
Closes #9010
Closes #9009
Closes https://github.com/curl/curl/pull/9016
The progress function behavior is more nuanced and the user is better
served reading the progress function doc rather than attempt to explain
it in the curl_easy_pause doc.
The progress function can only be called at least once per second if an
appropriate multi transfer function is called (eg curl_multi_perform) in
that time. For a paused transfer there may not be such a call. Rather
than explain this in detail in the curl_easy_pause doc, rely on the user
reading the CURLOPT_PROGRESSFUNCTION doc.
Ref: https://github.com/curl/curl/issues/8983
Closes https://github.com/curl/curl/pull/9015
Ref: #8718
Ref: https://gitlab.com/libssh/libssh-mirror/-/merge_requests/240
Closes #9021
Right now a dozen test cases are disabled because they don't work with
rustls.
Closes #9019
Because the ssh server startup script *requires* a user name there's no
point in invoking it if no name was found.
Also scan skipped files to be able to find superfluous ignores, shown with -v.
Closes #9006
Closes #9006
Closes #9006
Closes #9006
Closes #9006
- README.md: add a REUSE badge
Closes #9004
Closes #9005
Closes #9002
Closes #9001
[1]: https://daniel.haxx.se/blog/2022/06/08/making-libcurl-init-more-thread-safe/
Closes #8996
Closes #9000
- misc: add missing SPDX-License-Identifier info
For some reason the REUSE CI job did not find these.
Closes #8999
Closes #8998
Add licensing and copyright information for all files in this repository. This
either happens in the file itself as a comment header or in the file
`.reuse/dep5`.
This commit also adds a Github workflow to check pull requests and adapts
copyright.pl to the changes.
Closes #8869
Closes #8994
Ref: 927ede7edcb7b05b8e8bbf9ced6aed523ae594a7
Bug: https://github.com/curl/curl/pull/8981#discussion_r894312185
Reported-by: Emil Engler
Closes #8987
Closes #8981
Closes #8985
Closes #8971
- url: URL encode the path when extracted, if spaces were set
This single test takes 24-25 seconds on my machine (with valgrind). For
this reason I tag it with a "slow" keyword.
Closes #8976
Closes #8977
Reported-by: Marcus T
Fixes #8974
Closes #8975
Ref: https://github.com/curl/curl/pull/8972#discussion_r891987030
Follow-up to 23af112f5556
Closes #8972
Ref: https://hackerone.com/reports/1589877
Ref: https://medium.com/@tomnomnom/crlf-injection-into-phps-curl-options-
e2e0d7cfe545
Closes https://github.com/curl/curl/pull/8964
The e-mail link in the advice contains instructions that are prone to
error. We need an example that works and can demonstrate how to properly
perform a ranged upload, and then we can refer to that example instead.
Bug: https://github.com/curl/curl/issues/8969
Reported-by: Simon Berger
Closes https://github.com/curl/curl/pull/8970
This can be useful for libraries that can't control what other
dependencies are doing with Curl.
Closes #8680
Closes #8680
- RELEASE-NOTES: synced
Closes #8959
Closes #8959
Closes #8959
Closes #8959
test 675: add missing CR so the test passes when run through Privoxy
Closes #8959
Closes #8956
Closes #8958
URL: https://github.com/curl/curl/pull/8869#issuecomment-1144742731
Closes #8950
Ref: #8869
Closes #8952
To simplify the license situation, as they were the only files in the
source tree using these specific BSD-3 clause licenses.
Ref: #8869
Closes #8949
Closes #8855
The host key is passed in argument with a custom handle for the
application.
It overrides CURLOPT_SSH_KNOWNHOSTS
Closes #7959
Closes #8910
Server headers may not define "realm", avoid NULL pointer dereference
in such cases.
Closes #8912
Closes #8912
RFC 7616 (and 2617) requires values to be "unquoted" before used for
digest calculations. The only place where unquoting can be done
correctly is header parsing function (realm="DOMAIN\\host" and
realm=DOMAN\\host are different realms).
Closes #8912
- headers: handle unfold of space-cleansed headers
Detected by OSS-fuzz
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47767
Closes #8947
... so that they don't take up space if the protocols are disabled in
the build.
Closes #8944
They can't be set larger than INT_MAX in the setsocket API calls.
Closes #8940
When the values are never larger than 32 bit, ints are better than longs.
Closes #8940
- is_fwrite_set
- free_referer
- strip_path_slash
Closes #8940
Closes #8945
Closes https://github.com/curl/curl/pull/8934
Closes #8942
Closes #8909
Closes #8941
- RELEASE-NOTES: synced
As that would indicate an illegal header. The fuzzer reached the assert
in unfold_value() proving that this case can happen.
Follow-up to c9b60f005358a364
Closes #8939
Closes #8931
Follow-up to d1b376c03524
A password that starts with a double-quote also ends with one, and
double-quotes themselves are escaped with backslashes, like \". It also
supports \n, \r and \t for newline, carriage return and tabs
respectively.
If the password does not start with a double quote, it will end at first
white space and no escaping is performed.
Closes #8938
Closes #8900
Follow up to c9b60f005358a364cbcddbebd8d12593acffdd84
Fixes #8920
Closes #8936
Closes https://github.com/curl/curl/pull/8930
Closes #8929
Fixes: https://github.com/curl/curl/pull/8918#issuecomment-1138263855
Reviewed-By: [email protected]
Closes #8923
This patchs adds the ability to pass a suffix that is appended to this
value. It's useful to add CPU info or other platform details,
for example:
Closes #8919
Before this patch, it was only enabled for MSVC. This syncs this
configuration with libcurl.rc, which was already included with
every Windows compiler.
Closes #8918
Closes #8917
To make sure the headers API can filter it out as not a regular header.
Closes #8907
Closes #8873
Closes #8911
Folded header lines will now get passed through like before. The headers
API is adapted and will provide the content unfolded.
- `-D_AMD64_` has not been necessary for mingw-w64 builds for a long time now.
- `-fno-strict-aliasing` is mentioned for Intel C compiler in autotools, and
I used this with VxWorks in another project, but otherwise this isn't
necessary anymore as a default. If a target still needs it, it can be
added with `CURL_CFLAG_EXTRAS=-fno-strict-aliasing`
- bump up default optimization level to `-O3` (from `-O2`), and also rearrange
option order so the default can now be overridden via
`CURL_CFLAG_EXTRAS`.
- delete `-g` (generate debug info) from `CFLAGS` and `-s` from `LDFLAGS`
(strip debug info). They were working against each other. Now, if someone
needs debug info, it can be enabled via `CURL_CFLAG_EXTRAS=-g`
Closes #8904
Closes: #8901
Reviewed-by: Daniel Stenberg <[email protected]>
Closes: #8902
Reviewed-by: Daniel Stenberg <[email protected]>
- curl: add --rate to set max request rate per time unit
Closes #8671
- [Jay Satiro brought this change]
Prior to this change the doc said --max-time set the maximum time of the
'whole operation' which is not accurate. The option maps to
CURLOPT_TIMEOUT_MS which sets maximum transfer time.
Reported-by: [email protected]
Fixes https://github.com/curl/curl/issues/8877
Closes #8879
Closes #8898
- RELEASE-NOTES: synced
Closes #8888
The wiki pages are gone, remove and link to more long-living docs.
Closes #8897
Closes: #8895
Fixes: #8893
Reported-by: Patrick Monnerat <[email protected]>
Reviewed-by: Daniel Stenberg <[email protected]>
Rather than assuming sed in PATH, use the resolved $SED variable
like in all other invocations of sed in configure.
Closes: #8891
Reviewed-by: Daniel Stenberg <[email protected]>
Reviewed-by: Marcel Raad <[email protected]>
Allow curl to send larger UDP datagram if Path MTU Discovery finds the
availability of larger path MTU. To make it work and not to send
fragmented packet, we need to set DF bit. That makes send(2) fail with
EMSGSIZE if UDP datagram is too large. In that case, just let it be
lost. This patch enables DF bit for Linux only.
Closes #8883
Closes #8881
Also drop the debug requirement, remove the setenv sections, remove
prechecks and add NTLM to the top keywords.
Closes #8889
The NTLM protocol includes providing the local host name, but apparently
other implementations already provide a fixed fake name instead to avoid
leaking the real local name.
s/TSL/TLS/
Closes: #8886
Reviewed-by: Daniel Stenberg <[email protected]>
Closes: #8886
Reviewed-by: Daniel Stenberg <[email protected]>
Closes: #8886
Reviewed-by: Daniel Stenberg <[email protected]>
This will omit two spaces of indentation from lines with no content,
thus avoiding 'spaces @ EOL'.
Closes #8885
Closes #8884
bump to 7.84.0
$< can only be used in rules that deal with .SUFFIXES. Its use
for general prerequisites is a GNU make extension.
$< could be replaced by $?, but I think in an autotools context,
something like this is better:
Bug: https://curl.se/mail/lib-2022-05/0024.html
Closes #8861
Usage:
curl -x "socks5h://localhost/run/tor/socks" "https://example.com"
Added documentation for proxy command line option and socks proxy
options
Closes #8668
Fixes #8865
Closes #8867
Closes #8872
Closes #8871
Closes #8870
Closes #8875
Closes #8880
- lib/vssh/wolfssh.h: removed
Closes #8864
As libcurl no longer has any functionality for them, the tool now does
nothing with them.
Closes #8670
These two options were only ever used for the OpenSSL backend for
versions before 1.1.0. They were never used for other backends and they
are not used with recent OpenSSL versions. They were never used much by
applications.
Closes #8670
Closes #8862
Closes: #8857
Reviewed-by: Daniel Stenberg <[email protected]>
The API documentation for the MIME functions specify that the parts
can be set twice, with the last call winning. While true, the user
can set the parts n times for n > 2, reword to specify multiple API
calls instead.
Closes: #8860
Reviewed-by: Daniel Stenberg <[email protected]>
Closes #8789
Closes #8698
Fixes #8846
Reported-by: Egor Pugin
Closes #8854
Closes: #8856
The support for compiling on Mac OS 9 hasn't been modified since 2001
and has no active maintainer or packager, so it's time to remove it as
it's incredibly unlikely to work. If a maintainer re-emerges it can be
resurrected from Git history.
Closes: #8836
Reviewed-by: Daniel Stenberg <[email protected]>
Closes #8847
Closes #8851
Closes #8850
- RELEASE-NOTES: synced
and bump curlver to 7.83.2 for now (but likely to become 7.84.0 soon)
Closes #8843
- Windows command prompt doesn't use literal quoting via single quotes.
- Windows powershell does use single quotes but curl is not a powershell
script so the arguments may not be passed on correctly.
~~~
getargs -v -d "\"a\""
argv[0]: getargs
argv[1]: -v
argv[2]: -d
argv[3]: "a"
~~~
Ref: https://github.com/curl/curl/issues/8818
Ref: https://gist.github.com/jay/19aba48653bd591cf4b90eb9249a302c
Reported-by: [email protected]
Closes https://github.com/curl/curl/pull/8823
Closes #8837
Closes #8833
Closes: #8832
Reviewed-by: Jay Satiro <[email protected]>
Prior to this change the stream id shown could be hex or decimal which
was inconsistent and confusing.
Closes https://github.com/curl/curl/pull/8808
curl doesn't seem to care about this but it makes the tests
more useful when testing external proxies like Privoxy.
... so the delays are the same now that the unit
is in milliseconds.
Closes #8827
Closes: #8814
Reviewed-by: Daniel Stenberg <[email protected]>
Fixes #8696
Closes #8830
Closes #8829
Closes #8828
CVE-2022-27782
CVE-2022-27782
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
Bug: https://curl.se/docs/CVE-2022-27778.html
CVE-2022-27778
Closes #8824
CVE-2022-30115
CVE-2022-27780
CVE-2022-27781
Closes #8819
This change fixes the hyper API such that PUT requests that receive a
417 response can retry without the Expect header.
Closes #8811
Closes #8798
Patched-by: Prithvi MK
Fixes #8700
Closes #8806
Closes #8764
Closes #8696
Closes #8804
Closes: #8802
Reviewed-by: Daniel Stenberg <[email protected]>
Ref: #8794
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.
Closes: #8799
Reviewed-by: Daniel Gustafsson <[email protected]>
Closes: #8795
Reviewed-by: Daniel Stenberg <[email protected]>
.mailmap: update
Closes #8800
Closes #8757
Closes #8796
Closes #8797
- [Fabian Keil brought this change]
Closes #8791
Closes #8793
Closes #8792
Closes #8790
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 <[email protected]>
Closes: #8783
Reviewed-by: Daniel Gustafsson <[email protected]>
Closes: #8783
Reviewed-by: Daniel Gustafsson <[email protected]>
Closes: #8786
Reviewed-by: Daniel Stenberg <[email protected]>
- RELEASE-NOTES: synced
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.
https://www.ibm.com/docs/api/v1/content/ssw_ibm_i_71/apis/gsk_attribute_set_callbac
k.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 <[email protected]>
Closes: #8770
Reviewed-by: Daniel Stenberg <[email protected]>
Closes: #8771
Reviewed-by: Daniel Stenberg <[email protected]>
Closes #8779
Closes #8762
* https://github.com/nibanks/msh3/releases/tag/v0.3.0
* https://github.com/nibanks/msh3/pull/37
Closes #8762
Bug: https://curl.se/mail/lib-2022-04/0059.html
Closes #8773
Closes: #8763
Reviewed-by: Nick Banks <[email protected]>
Daniel Stenberg (29 Apr 2022)
- data/test376: set a proper name
Closes #8767
Fixes #8766
Reported-by: LigH-de on github
Closes #8768
- RELEASE-NOTES: synced
- SECURITY-PROCESS: extended
Closes #8754
Closes #8759
Fixes #8755
Reported-by: Marc Hörsken
Closes #8756
Closes #8753
Follow-up to 620ea21410030
Reported-by: Harry Sintonen
Closes #8751
Hyper now has the ability to preserve header order. This commit adds a
few lines setting the connection options for this feature.
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
Bug: https://curl.se/docs/CVE-2022-27774.html
Reported-by: Harry Sintonen
Closes #8748
CVE-2022-27776
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.
Bug: https://curl.se/docs/CVE-2022-22576.html
CVE-2022-22576
Closes #8746
Closes #8738
Closes #8736
Closes #8739
Closes #8730
- tests/FILEFORMAT.md: spellfix
The copy command introduced in e498a9b1f had leftover '>' from the
previous sed command it replaced, which broke its syntax. Fix by
removing.
The script was moved in 8e22fc68e7dda43e9f but the lines that called it
was not changed to reflect it's new position
Closes #8728
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 <[email protected]>
Reviewed-by: Jay Satiro <[email protected]>
- CURLINFO_PRIMARY_PORT.3: spellfix
Fixes #8708
Closes #8718
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
Closes #8725
Closes #8720
- RELEASE-NOTES: synced
Ref: https://github.com/curl/curl/commit/37492ebb#r70980087
Supersedes #5888
Closes #8595
Closes #8687
This loop was using the number of bytes read from the file as condition
to keep reading.
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
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.
... from infof() and failf() calls. Make them less attention seeking.
Closes #8713
Closes #8714
Closes: #8697
Reported-by: Michael Kaufmann <[email protected]>
Reviewed-by: Daniel Stenberg <[email protected]>
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 <[email protected]>
- RELEASE-NOTES: synced
Closes: #8709
Reviewed-by: Daniel Gustafsson <[email protected]>
Closes: #8694
Reviewed-by: Daniel Stenberg <[email protected]>
Closes https://github.com/curl/curl/pull/8693
Closes https://github.com/curl/curl/pull/8693
Closes #8691
Closes #8689
Closes #8690
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
Closes #8517
Closes #8684
Closes #8684
Closes #8684
Closes #8683
Closes #8676
Closes #8682
Closes #8679
Closes #8678
Closes #8678
- English: use American spelling consistently
Closes #8673
Closes #8672
Reviewed-by: Daniel Gustafsson <[email protected]>
- RELEASE-NOTES: synced
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
Not semicolon
... as nghttp2 might not be the library that provides HTTP/2 support.
Closes #8661
mbedtls: remove 'protocols' array from backend when ALPN is not used
Closes #8663
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
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
follow-up to b54e18640ea4b7
Closes #8660
Closes #8657
Closes #8657
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
Closes #8652
Closes #8647
"HTTP/3 does not support client certs" considered fixed, at least with
the ngtcp2 backend.
Closes #8523
- RELEASE-NOTES: synced
Ref #8356
Reported-by: Rianov Viacheslav
Closes #8506
Closes #8646
Jay Satiro (29 Mar 2022)
- projects: Update VC version names for VS2017, VS2022
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
Closes #8606
Closes #8606
It would be nice to expand the list of key locations curl uses for the
newer key types supported by libssh2.
Closes #8586
Closes #8636
- RELEASE-NOTES: synced
Closes #8625
Closes #8594
Reported by lift
Closes #8616
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
- 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
Ref: https://github.com/curl/curl/discussions/8581#discussioncomment-2337260
Closes https://github.com/curl/curl/pull/8587
Closes #8623
skip python3-pip
install impacket with library module
Closes #8621
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
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.
Closes #8620
Closes #8593
Closes #8490
Closes #8490
Closes #8490
- RELEASE-NOTES: synced
Closes #8610
Bug: https://github.com/hyperium/hyper/issues/2783
Reported-by: Daniel Valenzuela
Closes #8614
Make tests require h2c feature present to run, and only set h2c if
nghttp2 is used in the build. Hyper does not support it.
Fixes #8605
Closes #8613
- configure: bump the copyright year range int the generated output
Closes #8609
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
Closes #8597
- When done, if an error has already occurred then don't check the
sequence numbers for mismatch.
Closes https://github.com/curl/curl/pull/8525
Ref: https://github.com/curl/curl/commit/1d5d0ae
Closes https://github.com/curl/curl/pull/8521
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
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.
Closes #8601
Closes #8596
- RELEASE-NOTES: synced
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
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.
Closes #8478
Closes #8477
Closes #7708
Co-authored-by: Daniel Stenberg
- RELEASE-NOTES: synced
Closes #8412
- remove-on-error.d: typo
If a transfer returns an error, using this option makes curl remove the
leftover downloded (partial) local file before exiting.
Closes #8503
... that don't have the SSH_S_* defines. Spotted on a machine using
libssh 0.7.3
Closes #8574
Closes #8572
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
Closes #8522
... 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
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
connect: make Curl_getconnectinfo work with conn cache from share handle
Closes #8524
Fixes #8553
Closes #8556
Closes #8557
- RELEASE-NOTES: synced
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.
Closes #8548
... they may still *resolve* other families, but not use those
addresses.
Ref: #8530
Closes #8543
Closes #8546
Follow up to #7935
Supersedes #7940
Closes #8544
Closes #8539
Closes #8545
Fixes https://github.com/curl/curl/issues/8538
Closes https://github.com/curl/curl/pull/8540
Closes https://github.com/curl/curl/pull/8529
Bug: https://github.com/curl/curl/issues/8381#issuecomment-1055440241
Reported-by: Michael Kaufmann
Closes https://github.com/curl/curl/pull/8519
Closes #8511
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
Closes #8512
Closes #8513
It works now
Closes #8505
Ref: https://github.com/curl/curl/discussions/8498
Closes #8502
Closes https://github.com/curl/curl/pull/8500
Closes #8494
This resolves issues compiling rpg code that includes the curl header
file.
Closes #8494
Closes #8493
Closes #8492
- RELEASE-NOTES: synced
Closes #8489
There was one instance in openssl.c where sessionid was not checked
beforehand and this change fixes that.
Fixes https://github.com/curl/curl/issues/8472
Closes https://github.com/curl/curl/pull/8484
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).
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
ssl: reduce allocated space for ssl backend when FTP is disabled
Closes #8471
Closes #8481
Closes https://github.com/curl/curl/pull/8482
Closes https://github.com/curl/curl/pull/8479
Ref: https://github.com/curl/curl/pull/8106
Closes https://github.com/curl/curl/pull/8476
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
Ref: https://github.com/curl/curl/pull/8106
Closes https://github.com/curl/curl/pull/8474
Closes #8470
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
Closes #8455
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
Closes #8455
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
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
Closes #8458
Closes #8460
Spotted on appveyor
Closes #8465
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
Follow-up to 96f85a0fef694
We haven't heard about this for a long time and rumours have it they
might have fixed it.
The authentication status should be told by the transfer and not the
connection.
Closes #8454
Closes #8454
Closes #8454
Closes https://github.com/curl/curl/pull/8453
Closes #8448
Closes #8450
Closes #8445
Closes #8444
... and make test 1459 check for the different return code then.
Closes #8444
Ref: https://github.com/curl/curl/pull/8438
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
Closes https://github.com/curl/curl/pull/8438
Closes #8430
Closes #8446
Closes #8441
Closes #8428
Closes #8423
Closes #8439
- if2ip: make Curl_ipv6_scope a blank macro when IPv6-disabled
Closes #8439
Closes #8427
Closes #8431
Closes #8431
This could otherwise easily leave libcurl "hanging" after the entire
transfer is done but without noticing the end-of-transfer signal.
Closes #8429
Fixes #8425
Closes #8426
Otherwise the build fails when H3 is enabled but the build doesn't
include nghttp2.
Closes #8424
Closes #8418
- [Henrik Holst brought this change]
Closes #8409
Closes #8395
Fix a memory-leak
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43646
Closes #8415
This uses the new STRCONST() macro and saves 2 strlen() calls on short
string constants per LDIF output line.
Closes #8404
Closes #8398
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=44517
Follow-up to 9f985a11e794
Closes #8414
- RELEASE-NOTES: synced
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
Closes #8401
Closes #8397
Closes #8399
Closes #8396
Closes #8396
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.
Closes https://github.com/curl/curl/pull/8394
Also add STRCONST, a macro that returns a string literal and it's length
for functions that take "string,len"
Closes #8391
The other pseudo headers are possible to change indirectly by doing the
rightly crafted request.
Closes #8389
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
Closes https://github.com/curl/curl/pull/8385
Closes https://github.com/curl/curl/pull/8382
TPF was the only user and support for that was dropped.
Closes #8378
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
Closes https://github.com/curl/curl/pull/8379
Closes #8377
Closes #8376
Closes #8375
- RELEASE-NOTES: synced
Closes #8363
configure: use correct CFLAGS for threaded resolver with xlC on AIX
Fixes #8276
Closes #8374
Ref: https://github.com/ngtcp2/ngtcp2/pull/356
Closes https://github.com/curl/curl/pull/8372
Ref: https://curl.se/mail/lib-2022-02/0006.html
Closes https://github.com/curl/curl/pull/8370
Closes #8362
Closes #8369
Closes #8314
Closes #8368
Closes #8367
Closes #8364
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
- openssl-no-verbose
- openssl-no-proxy
Closes #8359
Closes #8357
Closes #8357
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
Closes https://github.com/curl/curl/pull/8354
Closes #8353
Closes #8350
Closes #8350
Ref: #8346
Closes #8349
Closes https://github.com/curl/curl/pull/8352
Closes #8343
Closes #8344
To execute the test program, we might need the library path so that the
lib is found at runtime.
Closes #8340
Ref: https://github.com/curl/curl/pull/8320#issuecomment-1022957904
Closes https://github.com/curl/curl/pull/8336
Ref: https://www.msys2.org/wiki/Porting/
Fixes https://github.com/curl/curl/issues/8084
Closes https://github.com/curl/curl/pull/8325
Closes #8338
https://github.com/openssl/openssl/commit/56bd17830f2d5855b533d923d4e0649d3ed61d11.
Closes https://github.com/curl/curl/pull/8331
Closes #8334
The TLS backends convert the host name to SNI name and need to use that.
This involves cutting off any trailing dot and lowercasing.
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.
Fixes #8290
Reported-by: Charles Cazabon
Closes #8320
Closes #8333
Closes #8330
- RELEASE-NOTES: synced
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
Closes #8322
Closes #8268
Closes https://github.com/curl/curl/pull/8319
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
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
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
Let's update curl so that tools know what format we are using!
Closes #8316
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
Closes #8232
Closes #8307
Closes #8303
Closes #8299
Valgrind and gdb implement this feature: as this highly slows down tests,
disable it.
Closes #8291
- RELEASE-NOTES: synced
Closes #8286
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.
Follow-up to bbf8cae44dedc495e6
Closes #8287
There has not been a mention of this OS in any commit since December
2004 (58f4af7973e3d2). The OS is also long gone.
Closes #8288
Just silently accepting the options and then not having any effect is
not good.
Ref: #8283
Closes #8285
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.
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
Fixes #8173
Closes #8275
Closes #8281
Fixes #8279
Reported-by: Satadru Pramanik
Closes #8280
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
Typically a problem for platforms with 32 bit long and 64 bit size_t
- RELEASE-NOTES: synced
This makes the behavior consistent between GCC 10 and earlier versions.
Closes https://github.com/curl/curl/pull/8271
Closes https://github.com/curl/curl/pull/8271
Fixes https://github.com/curl/curl/issues/8248
Closes https://github.com/curl/curl/pull/8265
Closes https://github.com/curl/curl/pull/8265
Closes #8266
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.
Closes #8262
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
Closes #8152
Jay Satiro (10 Jan 2022)
- [Cameron Will brought this change]
Closes https://github.com/curl/curl/pull/8258
Closes #8239
Added to FILEFORMAT
Closes #8239
Closes #7964
Fixes #8188
Closes #8191
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
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
- RELEASE-NOTES: synced
Closes #8252
Closes #8252
Closes #8252
Closes #8251
Disables tests that don't yet work with the rustls backend.
Fixes #8004
Closes #8250
- remote-header-name.d: clarify
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
Closes #8238
Closes #8244
Follow-up to 8fbd6feddfa587cfd3
Closes #8245
Fixes #8240
Reported-by: Jan Ehrhardt
Closes #8246
Follow-up to 764e4f066d5
Closes #8242
... 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.
Follow-up to 30aea2b1ede
Closes #8233
Fixes #8234
Reported-by: Melroy van den Berg
Closes #8236
- RELEASE-NOTES: synced
Closes #8228
Closes #8228
- gen.pl: terminate "example" sections better
Closes #8228
Fixes #8229
Closes #8230
Bug: https://github.com/curl/curl/pull/8223#issuecomment-1005188696
Reported-by: Marc Hörsken
Closes #8226
Follow-up to effd2bd7ba2a5fd244
Reported-by: Marc Hörsken
Bug: https://github.com/curl/curl/pull/8217#issuecomment-1004681145
Closes #8223
Added to FILEFORMAT.md
To allow the test suite to verify that the right data arrived
- socks5: use appropriate ATYP for numerical IP address host names
Closes #8218
Follow-up to 21248e052d
Closes #8218
Closes #8210
Closes #8215
Closes #8215
Closes #8215
"As a last resort, you can access the field foo of a structure bar by
writing bar.MBEDTLS_PRIVATE(foo). Note that you do so at your own risk,
since such code is likely to break in a future minor version of Mbed
TLS." -
https://github.com/ARMmbed/mbedtls/blob/f2d1199edc5834df4297f247f213e614f7782d1d/
docs/3.0-migration-guide.md
That future minor version is v3.1.0. I set the >= to == for the version
checks because v3.1.0 is a release, and I am not sure when the private
designation was reverted after v3.0.0.
Closes #8214
-- curl version=[7.81.0-DEV]
CMake Warning (dev) at
/usr/share/cmake-3.22.1/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (MBEDTLS)
does not match the name of the calling package (MbedTLS). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
deps/curl/CMake/FindMbedTLS.cmake:31 (find_package_handle_standard_args)
deps/curl/CMakeLists.txt:473 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
Closes #8207
Closes #8206
Closes #8212
Follow-up to 1914465cf180d32b3d
As it isn't used.
Fixes #8197
Closes #8198
... and double-check in the OpenSSL shutdown that the socket is actually
still there before it is used.
Fixes #8193
Closes #8195
Closes #8178
The name check now uses a function from lib/vtls/openssl.c which will
need attention for when TLS is not done by OpenSSL or is disabled while
QUIC is enabled.
Ref: #8173
Closes #8178
Closes #8196
Fixes #8184
Closes #8189
- RELEASE-NOTES: synced
Closes #8183
Closes #8182
Closes #8181
Closes #8185