]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
2 years agoruntests: remove duplicated feature variables
Dan Fandrich [Fri, 24 Mar 2023 00:29:59 +0000 (17:29 -0700)] 
runtests: remove duplicated feature variables

Use the feature map stored in the hash table instead. Most of the
variables were only used only once, to set the value in the hash table.

Ref: #10818

2 years agoruntests: also ignore test file problems when ignoring results
Dan Fandrich [Fri, 24 Mar 2023 21:20:32 +0000 (14:20 -0700)] 
runtests: also ignore test file problems when ignoring results

This simplifies error handling in the test verification code and makes
it more consistent.

Ref: #10818

2 years agoruntests: more refactoring for clarity
Dan Fandrich [Thu, 23 Mar 2023 21:38:21 +0000 (14:38 -0700)] 
runtests: more refactoring for clarity

Ref: #10818

2 years agoruntests: don't start servers if -l is given
Dan Fandrich [Thu, 23 Mar 2023 20:30:32 +0000 (13:30 -0700)] 
runtests: don't start servers if -l is given

2 years agoruntests: fix typos
Dan Fandrich [Thu, 23 Mar 2023 18:31:54 +0000 (11:31 -0700)] 
runtests: fix typos

2 years agoruntests: refactor singletest() into separate functions
Dan Fandrich [Wed, 22 Mar 2023 23:48:23 +0000 (16:48 -0700)] 
runtests: refactor singletest() into separate functions

This takes it from a 1200 line behemoth into something more manageable.
The content and order of the functions is taken almost directly from
singletest() so the diff sans whitespace is quite short.

Ref: #10818

2 years agoruntests: refactor singletest() into distinct sections
Dan Fandrich [Wed, 22 Mar 2023 20:35:06 +0000 (13:35 -0700)] 
runtests: refactor singletest() into distinct sections

Namely:
- Verify that this test case should be run
- Start the servers needed to run this test case
- Check that test environment is fine to run this test case
- Prepare the test environment to run this test case
- Run the test command
- Clean up after test command
- Verify test succeeded

Ref: #10818

2 years agoruntests: stop copying a few arrays where not needed
Dan Fandrich [Wed, 22 Mar 2023 19:13:49 +0000 (12:13 -0700)] 
runtests: stop copying a few arrays where not needed

Unlike some other languages that just copy a pointer, perl copies the
entire array contents which takes time for a large array.

Ref: #10818

2 years agoruntests: reduce redundant calls to getpart/getpartattr
Dan Fandrich [Wed, 22 Mar 2023 18:51:47 +0000 (11:51 -0700)] 
runtests: reduce redundant calls to getpart/getpartattr

These functions scan through the entire test file every time to find the
right section, so they can be slow for large test files.

Ref: #10818

2 years agotests: document that the unittest keyword is special
Dan Fandrich [Wed, 22 Mar 2023 21:52:24 +0000 (14:52 -0700)] 
tests: document that the unittest keyword is special

Also, add other features that were missing.

2 years agodocs: add documentation for bufq
Stefan Eissing [Thu, 30 Mar 2023 13:02:01 +0000 (15:02 +0200)] 
docs: add documentation for bufq

Closes #10869

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 30 Mar 2023 14:13:29 +0000 (16:13 +0200)] 
RELEASE-NOTES: synced

2 years agohostip: refuse to resolve the .onion TLD
Matt Jolly [Tue, 7 Mar 2023 15:16:45 +0000 (02:16 +1100)] 
hostip: refuse to resolve the .onion TLD

RFC 7686 states that:

> Applications that do not implement the Tor
> protocol SHOULD generate an error upon the use of .onion and
> SHOULD NOT perform a DNS lookup.

Let's do that.

https://www.rfc-editor.org/rfc/rfc7686#section-2

Add test 1471 and 1472 to verify

Fixes #543
Closes #10705

2 years agoGHA: update ngtcp2-*.yml to v0.10.0
Philip H [Sun, 26 Feb 2023 13:39:19 +0000 (14:39 +0100)] 
GHA: update ngtcp2-*.yml to v0.10.0

Closes #10612

2 years agotests/http: fix log formatting on wrong exit code
Stefan Eissing [Thu, 30 Mar 2023 09:20:24 +0000 (11:20 +0200)] 
tests/http: fix log formatting on wrong exit code

Closes #10868

2 years agospellcheck.words: unify the AWS-LC spelling
Daniel Stenberg [Thu, 30 Mar 2023 08:57:57 +0000 (10:57 +0200)] 
spellcheck.words: unify the AWS-LC spelling

Follow-up to 34ef4fab22d93

Closes #10867

2 years agoopenssl: interop with AWS-LC
Jim King [Wed, 18 Jan 2023 16:54:30 +0000 (11:54 -0500)] 
openssl: interop with AWS-LC

* Configure changes to detect AWS-LC
* CMakeLists.txt changes to detect AWS-LC
* Compile-time branches needed to support AWS-LC
* Correctly set OSSL_VERSION and report AWS-LC release number
* GitHub Actions script to build with autoconf and cmake against AWS-LC

AWS-LC is a BoringSSL/OpenSSL derivative
For more information see https://github.com/awslabs/aws-lc/

Closes #10320

2 years agocmake: picky-linker fixes for openssl, ZLIB, H3 and more
Viktor Szakats [Thu, 30 Mar 2023 08:55:20 +0000 (08:55 +0000)] 
cmake: picky-linker fixes for openssl, ZLIB, H3 and more

- fix HTTP/3 support detection with OpenSSL/quictls built with ZLIB.
  (Requires curl be built with ZLIB option also.)

- fix HTTP/3 support detection with OpenSSL/quictls/LibreSSL and `ld`
  linker on Windows.

- fix HTTP/3 support detection with wolfSSL to automatically add
  `ws2_32` to the lib list on Windows. For all linkers.

- reposition ZLIB (and other compression) detection _after_ TLS
  detection, but before calling HTTP/3-support detection via
  `CheckQuicSupportInOpenSSL`.

  May be a regression from ebef55a61df0094b9790710a42f63c48e7de3c13
  May fix #10832 (Reported-by: Micah Snyder)

  This also seems to fix an odd case, where OpenSSL/quictls is correctly
  detected, but its header path is not set while compiling, breaking
  build at `src/curl_ntlm_core.c`. Reason for this remains undiscovered.

- satisfy "picky" linkers such as `ld` with MinGW, that are highly
  sensitive to lib order, by also adding brotli to the beginning of the
  lib list.

- satisfy "picky" linkers by adding certain Windows systems libs to
  the lib list for OpenSSL/LibreSSL. (Might need additional ones for
  other forks, such as `pthread` for BoringSSL.)

Note: It'd make sense to _always_ add `ws2_32`, `crypt32` (except
Windows App targets perhaps?), `bcrypt` (except old-mingw!) on Windows
at this point. They are almost always required, and if some aren't,
they are ignored by the linker with no effect on final binaries.

Closes #10857

2 years agovlts: use full buffer size when receiving data if possible
Stefan Eissing [Fri, 10 Mar 2023 12:00:15 +0000 (13:00 +0100)] 
vlts: use full buffer size when receiving data if possible

SSL backends like OpenSSL/wolfSSL and other return the content of one
TLS record on read, but usually there are more available.

Change the vtls cfilter recv() function to fill the given buffer until a
read would block.

Closes #10736

2 years agortsp: skip malformed RTSP interleaved frame data
dengjfzh [Tue, 21 Mar 2023 07:45:59 +0000 (15:45 +0800)] 
rtsp: skip malformed RTSP interleaved frame data

Some IP cameras send malformed RTSP interleaved frames sometimes, which
can cause curl_easy_perform return 1 (CURLE_UNSUPPORTED_PROTOCOL).  This
change attempts to skip clearly incorrect RTSP interleaving frame data.

Closes #10808

2 years agolib: add `bufq` and `dynhds`
Stefan Eissing [Mon, 20 Mar 2023 13:23:53 +0000 (14:23 +0100)] 
lib: add `bufq` and `dynhds`

Adding `bufq`:
- at init() time configured to hold up to `n` chunks of `m` bytes each.
- various methods for reading from and writing to it.
- `peek` support to get access to buffered data without copy
- `pass` support to allow buffer flushing on write if it becomes full
- use case: IO buffers for dynamic reads and writes that do not blow up
- distinct from `dynbuf` in that:
  - it maintains a read position
  - writes on a full bufq return CURLE_AGAIN instead of nuking itself
- Init options:
  - SOFT_LIMIT: allow writes into a full bufq
  - NO_SPARES: free empty chunks right away
- a `bufc_pool` that can keep a number of spare chunks to
  be shared between different `bufq` instances

Adding `dynhds`:
- a straightforward list of name+value pairs as used for HTTP headers
- headers can be appended dynamically
- headers can be removed again
- headers can be replaced
- headers can be looked up
- http/1.1 formatting into a `dynbuf`
- configured at init() with limits on header counts and total string
  sizes
- use case: pass a HTTP request or response around without being version
  specific
- express a HTTP request without a curl easy handle (used in h2 proxy
  tunnels)
- future extension possibilities:
  - conversions of `dynhds` to nghttp2/nghttp3 name+value arrays

Closes #10720

2 years agopytest: improvements for suitable curl and error output
Stefan Eissing [Fri, 24 Mar 2023 12:09:40 +0000 (13:09 +0100)] 
pytest: improvements for suitable curl and error output

- will check built curl for http and https support and
  skip all tests if not there
- will dump stdout/stderr/trace output on errored responses

Closes #10829

2 years agolib: use correct printf flags for sockets and timediffs
Daniel Stenberg [Tue, 28 Mar 2023 14:46:03 +0000 (16:46 +0200)] 
lib: use correct printf flags for sockets and timediffs

Introduces CURL_FORMAT_SOCKET_T for outputting socket numbers.

Fixes #10737
Reported-by: Gisle Vanem
Closes #10855

2 years agotelnet: make MSVC ignore warning for assignment within conditional
Daniel Stenberg [Tue, 28 Mar 2023 21:37:25 +0000 (23:37 +0200)] 
telnet: make MSVC ignore warning for assignment within conditional

Follow-up to d92a5007b60e0af7d

Closes #10859

2 years agows: handle reads before EAGAIN better
Daniel Stenberg [Tue, 28 Mar 2023 15:44:59 +0000 (17:44 +0200)] 
ws: handle reads before EAGAIN better

Reported-by: simplerobot on github
Fixes #10831
Closes #10856

2 years agotest1592: add flaky keyword
Daniel Stenberg [Tue, 28 Mar 2023 22:00:54 +0000 (00:00 +0200)] 
test1592: add flaky keyword

Closes #10860

2 years agolib/sha256.c: typo fix in comment (duplicated "is available")
Frank Gevaerts [Tue, 28 Mar 2023 10:11:04 +0000 (12:11 +0200)] 
lib/sha256.c: typo fix in comment (duplicated "is available")

Closes #10851

2 years agotests: update tests/httpd references to tests/http
Arne Soete [Tue, 28 Mar 2023 12:42:48 +0000 (14:42 +0200)] 
tests: update tests/httpd references to tests/http

tests/httpd was renamed to tests/http in #10654. This patch updates some
references in the README

Closes #10854

2 years agotelnet: simplify the implementation of str_is_nonascii()
Kamil Dudka [Tue, 28 Mar 2023 11:41:57 +0000 (13:41 +0200)] 
telnet: simplify the implementation of str_is_nonascii()

There is no need to traverse the string twice.

Closes #10852

2 years agocurl_easy_getinfo.3: typo fix (duplicated "from the")
Frank Gevaerts [Tue, 28 Mar 2023 09:41:00 +0000 (11:41 +0200)] 
curl_easy_getinfo.3: typo fix (duplicated "from the")

Closes #10850

2 years agowolfssl.yml: bump to version 5.6.0
Philip H [Mon, 27 Mar 2023 07:47:20 +0000 (09:47 +0200)] 
wolfssl.yml: bump to version 5.6.0

Closes #10843

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 28 Mar 2023 09:01:55 +0000 (11:01 +0200)] 
RELEASE-NOTES: synced

2 years agodocs/cmdline-opts: document the dotless config path
Ronan Pigott [Tue, 28 Mar 2023 06:24:51 +0000 (23:24 -0700)] 
docs/cmdline-opts: document the dotless config path

The real xdg config path is $XDG_CONFIG_HOME/curlrc, without the dot.
The dotless name seems preferable, so let's match the documentation to
the behavior.

Closes #10849

2 years agoHTTP-COOKIES.md: mention the #HttpOnly_ prefix
Daniel Stenberg [Mon, 27 Mar 2023 21:31:07 +0000 (23:31 +0200)] 
HTTP-COOKIES.md: mention the #HttpOnly_ prefix

Fixes #10847
Reported-by: Harry Sintonen
Closes #10848

2 years agodynbuf: never allocate larger than "toobig"
Daniel Stenberg [Mon, 27 Mar 2023 11:02:08 +0000 (13:02 +0200)] 
dynbuf: never allocate larger than "toobig"

As dynbufs always have a fixed maximum size which they are not allowed
to grow larger than, making sure that it never allocates a larger buffer
makes sure the buffer does not allocate memory that will never be used.

Closes #10845

2 years agoftplistparser: replace realloc with dynbuf
Daniel Stenberg [Mon, 27 Mar 2023 08:59:54 +0000 (10:59 +0200)] 
ftplistparser: replace realloc with dynbuf

Closes #10844

2 years agoftplistparser: use ISDIGIT()
Daniel Stenberg [Mon, 27 Mar 2023 08:54:58 +0000 (10:54 +0200)] 
ftplistparser: use ISDIGIT()

Closes #10844

2 years agoftplistparser: move out private data from public struct
Daniel Stenberg [Mon, 27 Mar 2023 08:48:44 +0000 (10:48 +0200)] 
ftplistparser: move out private data from public struct

The public 'curl_fileinfo' struct contained three fields that are for
internal purposes only. This change makes them unused in the public
struct.

The new private struct fields are also renamed to make this separation
more obvious internally.

Closes #10844

2 years agoopenssl: fix indents - white space edits only
Daniel Stenberg [Sun, 26 Mar 2023 16:16:10 +0000 (18:16 +0200)] 
openssl: fix indents - white space edits only

Closes #10840

2 years agourl: remove call to Curl_llist_destroy in Curl_close
Daniel Stenberg [Mon, 27 Mar 2023 13:54:58 +0000 (15:54 +0200)] 
url: remove call to Curl_llist_destroy in Curl_close

A list that is created with a NULL "destructor" does not need to be
destroyed. Not calling it is faster than calling it.

Closes #10846

2 years agomulti: remove PENDING + MSGSENT handles from the main linked list
Daniel Stenberg [Sun, 26 Mar 2023 15:43:28 +0000 (17:43 +0200)] 
multi: remove PENDING + MSGSENT handles from the main linked list

As they are not driving transfers or any socket activity, the main loop
does not need to iterate over these handles. A performance improvement.

They are instead only held in their own separate lists.

'data->multi' is kept a pointer to the multi handle as long as the easy
handle is actually part of it even when the handle is moved to the
pending/msgsent lists. It needs to know which multi handle it belongs
to, if for example curl_easy_cleanup() is called before the handle is
removed from the multi handle.

Alll 'data->multi' pointers of handles still part of the multi handle
gets cleared by curl_multi_cleanup() which "orphans" all previously
attached easy handles.

This is take 2. The first version was reverted for the 8.0.1 release.

Assisted-by: Stefan Eissing
Closes #10801

2 years agotests/http: add timeout to running curl in test cases
Stefan Eissing [Fri, 17 Mar 2023 08:30:02 +0000 (09:30 +0100)] 
tests/http: add timeout to running curl in test cases

- we had a CI case once where `curl` seemingly did not
  return and it was hard to guess what happened.
- make curl execution in test cases time out after 60 seconds

Closes #10783

2 years agoRELEASE-PROCEDURE: update to new schedule
Daniel Stenberg [Fri, 24 Mar 2023 10:44:42 +0000 (11:44 +0100)] 
RELEASE-PROCEDURE: update to new schedule

Ref: https://curl.se/mail/lib-2023-03/0062.html

Assisted-by: Andy Alt
Assisted-by: Dan Frandrich
Closes #10827

2 years agodoc: curl_mime_init() strong easy handle binding has been relaxed in 7.87.0
Patrick Monnerat [Sat, 25 Mar 2023 14:22:57 +0000 (15:22 +0100)] 
doc: curl_mime_init() strong easy handle binding has been relaxed in 7.87.0

Reported-by: Chloe Kudryavtsev
Fixes #10834
Closes #10835

2 years agoCURLOPT_WRITEFUNCTION.3: fix typo
Jay Satiro [Sat, 25 Mar 2023 19:54:02 +0000 (15:54 -0400)] 
CURLOPT_WRITEFUNCTION.3: fix typo

Reported-by: Osaila@users.noreply.github.com
Fixes https://github.com/curl/curl/issues/10839

2 years agoCI: skip some more builds when possible
Dan Fandrich [Sat, 25 Mar 2023 01:10:08 +0000 (18:10 -0700)] 
CI: skip some more builds when possible

When a commit only contains tests, documentation, or cmake files, skip
those builds that aren't affected by those.

The file filters available on the CI services don't seem to allow
skipping individual jobs, only the entire workflow, so we can't get any
more fine-grained than this.

2 years agoCI: add and adjust labeler match patterns
Dan Fandrich [Mon, 13 Mar 2023 18:33:51 +0000 (11:33 -0700)] 
CI: add and adjust labeler match patterns

Allow cmdline tool alongside other labels.

2 years agoCMake: make config version 8 compatible with 7
Kai Pastor [Wed, 22 Mar 2023 20:50:59 +0000 (21:50 +0100)] 
CMake: make config version 8 compatible with 7

Reviewed-by: Jakub Zakrzewski
Closes #10819

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Fri, 24 Mar 2023 15:40:33 +0000 (16:40 +0100)] 
RELEASE-NOTES: synced

Bumped version-in-progress to 8.1.0

2 years agoGHA: add a memory-sanitizer job
Daniel Stenberg [Wed, 22 Mar 2023 12:39:05 +0000 (13:39 +0100)] 
GHA: add a memory-sanitizer job

Closes #10815

2 years agoCI: fix brew retries on GHA
Dan Fandrich [Fri, 24 Mar 2023 04:21:31 +0000 (21:21 -0700)] 
CI: fix brew retries on GHA

The fix in the previous commit was complete for Cirrus but accidentally
left off a part for GHA.

Follow-up to c2b7249d

2 years agoCI: skip Azure for more commits which change only GHA
Dan Fandrich [Wed, 22 Mar 2023 18:25:04 +0000 (11:25 -0700)] 
CI: skip Azure for more commits which change only GHA

2 years agocmake: set SONAME for SunOS too
Daniel Stenberg [Wed, 22 Mar 2023 13:07:54 +0000 (14:07 +0100)] 
cmake: set SONAME for SunOS too

Provided-by: Brian Lund
Closes #10816

2 years agongtcp2: adjust config and code checks for ngtcp2 without nghttp3
Stefan Eissing [Thu, 23 Mar 2023 08:39:37 +0000 (09:39 +0100)] 
ngtcp2: adjust config and code checks for ngtcp2 without nghttp3

- make configure show on HTTP3 feature that both ngtcp2 and nghttp3
  are in play
- define ENABLE_QUIC only when USE_NGTCP2 and USE_NGHTTP3 are defined
- add USE_NGHTTP3 in the ngtcp2 implementation

Fixes #10793
Closes #10821

2 years agodata.d: emphasize no conversion
Daniel Stenberg [Thu, 23 Mar 2023 10:48:45 +0000 (11:48 +0100)] 
data.d: emphasize no conversion

When asking curl to send a POST, curl does not encode or change the data.

Ref: #10820
Closes #10823

2 years agoserver/getpart: clear the buffer before load
Daniel Stenberg [Thu, 23 Mar 2023 09:53:29 +0000 (10:53 +0100)] 
server/getpart: clear the buffer before load

Fixes msan warnings:

==54195==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x55ece35e57cb in line_length /home/runner/work/curl/curl/tests/server/getpart.c:111:25
    #1 0x55ece35e3b83 in readline /home/runner/work/curl/curl/tests/server/getpart.c:164:24
    #2 0x55ece35e0269 in getpart /home/runner/work/curl/curl/tests/server/getpart.c:347:18
    #3 0x55ece36180b6 in parse_servercmd /home/runner/work/curl/curl/tests/server/sws.c:283:13

Closes #10822

2 years agontlm: clear lm and nt response buffers before use
Daniel Stenberg [Wed, 22 Mar 2023 12:31:11 +0000 (13:31 +0100)] 
ntlm: clear lm and nt response buffers before use

To avoid the risk of MemorySanitizer: use-of-uninitialized-value

Closes #10814

2 years agodigest: clear target buffer
Daniel Stenberg [Wed, 22 Mar 2023 12:10:45 +0000 (13:10 +0100)] 
digest: clear target buffer

Closes #10814

2 years agocmake: bring in the network library on Haiku.
Douglas R. Reno [Sun, 19 Mar 2023 07:07:51 +0000 (02:07 -0500)] 
cmake: bring in the network library on Haiku.

When cross-compiling for Haiku, the networking library needs to be
brought in. Without this, an unknown type of "Error" is reported in
lib/curl_setup_once.h.

This is also needed when using CMake natively on Haiku to build libcurl.

Fixes #10296
Closes #10792

2 years agoruntests: die if curl version can be found
Daniel Stenberg [Wed, 22 Mar 2023 11:53:56 +0000 (12:53 +0100)] 
runtests: die if curl version can be found

Closes #10813

2 years agomulti: add handle asserts in DEBUG builds
Stefan Eissing [Wed, 22 Mar 2023 09:25:24 +0000 (10:25 +0100)] 
multi: add handle asserts in DEBUG builds

For GOOD_EASY_HANDLE and GOOD_MULTI_HANDLE checks

- allow NULL pointers to "just" return an error as before
- fail hard on nun-NULL pointers that no longer show the MAGICs

Closes #10812

2 years agogskit: various compile errors in OS400
jonrumsey [Mon, 20 Mar 2023 10:17:09 +0000 (10:17 +0000)] 
gskit: various compile errors in OS400

Various compile failures in gskit.c;

- pipe_ssloverssl() needs Curl_easy data parameter for
  Curl_conn_cf_get_socket(cf, data)
- key_passwd is in ssl_config, not conn_config
- close_on() has 2 parameters, not 4
- getsockopt() needs to call Curl_conn_cf_get_socket(), not
  cxn->sock[FIRSTSOCKET]

Fixes #10799
Closes #10800

2 years agotool_operate: pass a long as CURLOPT_HEADEROPT argument
Daniel Stenberg [Mon, 20 Mar 2023 22:22:08 +0000 (23:22 +0100)] 
tool_operate: pass a long as CURLOPT_HEADEROPT argument

Closes #10798

2 years agoGHA: run all linux test jobs with valgrind
Daniel Stenberg [Mon, 20 Mar 2023 13:43:57 +0000 (14:43 +0100)] 
GHA: run all linux test jobs with valgrind

Closes #10798

2 years agoGHA-linux: add an address-sanitizer build
Daniel Stenberg [Tue, 21 Mar 2023 16:32:03 +0000 (17:32 +0100)] 
GHA-linux: add an address-sanitizer build

Closes #10810

2 years agoRELEASE-NOTES: synced curl-8_0_1
Daniel Stenberg [Mon, 20 Mar 2023 12:45:24 +0000 (13:45 +0100)] 
RELEASE-NOTES: synced

curl 8.0.1

2 years agoRevert "multi: remove PENDING + MSGSENT handles from the main linked list"
Daniel Stenberg [Mon, 20 Mar 2023 11:51:05 +0000 (12:51 +0100)] 
Revert "multi: remove PENDING + MSGSENT handles from the main linked list"

This reverts commit f6d6f3ce01e377932f1ce7c24ee34d45a36950b8.

The commits caused issues in the 8.0.0 release. Needs a retake.

Reported-by: Kamil Dudka
Closes #10795

2 years agoinclude/curl/curlver.h: bump to 8.0.1
Daniel Stenberg [Mon, 20 Mar 2023 12:45:57 +0000 (13:45 +0100)] 
include/curl/curlver.h: bump to 8.0.1

2 years agoRELEASE-NOTES: synced curl-8_0_0
Daniel Stenberg [Mon, 20 Mar 2023 07:04:43 +0000 (08:04 +0100)] 
RELEASE-NOTES: synced

The curl 8.0.0 release

2 years agoTHANKS: from the 8.0.0 release
Daniel Stenberg [Mon, 20 Mar 2023 07:04:43 +0000 (08:04 +0100)] 
THANKS: from the 8.0.0 release

2 years agoscripts/delta: fix "ambiguous argument" when used in branches
Daniel Stenberg [Fri, 17 Mar 2023 23:41:08 +0000 (00:41 +0100)] 
scripts/delta: fix "ambiguous argument" when used in branches

2 years agoSECURITY-PROCESS.md: Busy-loops are not security problems
Daniel Stenberg [Fri, 17 Mar 2023 23:08:13 +0000 (00:08 +0100)] 
SECURITY-PROCESS.md: Busy-loops are not security problems

Closes #10790

2 years agotests/http: do not save files for downloads in scorecard testing
Stefan Eissing [Fri, 17 Mar 2023 15:36:51 +0000 (16:36 +0100)] 
tests/http: do not save files for downloads in scorecard testing

Closes #10788

2 years agocf-socket: use port 80 when resolving name for local bind
Daniel Stenberg [Fri, 17 Mar 2023 16:28:49 +0000 (17:28 +0100)] 
cf-socket: use port 80 when resolving name for local bind

It turns out c-ares returns an error when asked to resolve a host name with
ares_getaddrinfo using port number 0.

Reported as a c-ares bug here: https://github.com/c-ares/c-ares/issues/517

The work-around is to simply use port 80 instead, as the number typically does
not make a difference and a non-zero number works for c-ares.

Fixes #10759
Reported-by: Matt Jolly
Closes #10789

2 years agocurl.h: require gcc 12.1 for the deprecation magic
Daniel Stenberg [Fri, 17 Mar 2023 13:48:18 +0000 (14:48 +0100)] 
curl.h: require gcc 12.1 for the deprecation magic

Reported-by: kchow-FTNT on github
Fixes #10726
Closes #10784

2 years agoRevert "rtsp: use dynbuf instead of custom reallocs"
Daniel Stenberg [Fri, 17 Mar 2023 14:26:00 +0000 (15:26 +0100)] 
Revert "rtsp: use dynbuf instead of custom reallocs"

This reverts commit 1b9ea3239d22147e00d8 because of OSS-fuzz reports.
I'll do another take after the pending release.

Closes #10785

2 years agotest422: verify --next used without a prior URL
Daniel Stenberg [Thu, 16 Mar 2023 23:00:40 +0000 (00:00 +0100)] 
test422: verify --next used without a prior URL

Closes #10782

2 years agotool_getparam: error if --next is used without a prior URL
Daniel Stenberg [Thu, 16 Mar 2023 22:59:30 +0000 (23:59 +0100)] 
tool_getparam: error if --next is used without a prior URL

Reported-by: 積丹尼 Dan Jacobson
Ref: https://github.com/curl/curl/pull/10769#discussion_r1137895629

Closes #10782

2 years agolibssh: use dynbuf instead of realloc
Daniel Stenberg [Thu, 16 Mar 2023 11:51:23 +0000 (12:51 +0100)] 
libssh: use dynbuf instead of realloc

When building lines to show for SFTP directory listings.

Closes #10778

2 years agolib2305: deal with CURLE_AGAIN
Daniel Stenberg [Thu, 16 Mar 2023 17:11:44 +0000 (18:11 +0100)] 
lib2305: deal with CURLE_AGAIN

The test does a slightly ugly busy-loop for this case but should be
managable due to it likely being a very short moment.

Mention CURLE_AGAIN in curl_ws_recv.3

Fixes #10760
Reported-by: Jay Satiro
Closes #10781

2 years agortsp: use dynbuf instead of custom reallocs
Daniel Stenberg [Thu, 16 Mar 2023 11:11:46 +0000 (12:11 +0100)] 
rtsp: use dynbuf instead of custom reallocs

For the RTP buffering.

Closes #10776

2 years agolibssh2: remove unused variable from libssh2's struct
Daniel Stenberg [Thu, 16 Mar 2023 11:30:52 +0000 (12:30 +0100)] 
libssh2: remove unused variable from libssh2's struct

Closes #10777

2 years agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 16 Mar 2023 07:39:48 +0000 (08:39 +0100)] 
RELEASE-NOTES: synced

2 years agomulti: remove PENDING + MSGSENT handles from the main linked list
Daniel Stenberg [Tue, 14 Mar 2023 11:26:32 +0000 (12:26 +0100)] 
multi: remove PENDING + MSGSENT handles from the main linked list

As they are not driving transfers or any socket activity, the main loop
does not need to iterate over these handles. A performance improvement.

They are instead only held in their own separate lists.

Assisted-by: Stefan Eissing
Ref: #10743
Closes #10762

2 years agomulti: turn link/unlinking easy handles into dedicated functions
Daniel Stenberg [Tue, 14 Mar 2023 11:20:24 +0000 (12:20 +0100)] 
multi: turn link/unlinking easy handles into dedicated functions

2 years agohttp_aws_sigv4: fix scan-build "value stored to 'ret' is never read"
Daniel Stenberg [Tue, 14 Mar 2023 23:14:31 +0000 (00:14 +0100)] 
http_aws_sigv4: fix scan-build "value stored to 'ret' is never read"

Follow-up to 495d09810aa9a

Closes #10766

2 years agolib: skip Curl_llist_destroy calls
Daniel Stenberg [Tue, 14 Mar 2023 15:55:01 +0000 (16:55 +0100)] 
lib: skip Curl_llist_destroy calls

Linked lists themselves do not carry any allocations, so for the lists
that do not have have a set destructor we can just skip the
Curl_llist_destroy() call and save CPU time.

Closes #10764

2 years agolib643: LIB644 is never defined, this is dead code
Daniel Stenberg [Tue, 14 Mar 2023 16:24:02 +0000 (17:24 +0100)] 
lib643: LIB644 is never defined, this is dead code

Closes #10765

2 years agolibtest/Makefile.inc: remove superfluous variables
Daniel Stenberg [Tue, 14 Mar 2023 16:13:27 +0000 (17:13 +0100)] 
libtest/Makefile.inc: remove superfluous variables

Rely on the defaults when possible.

Closes #10765

2 years agotests/http: remove year ranges from copyrights
Daniel Stenberg [Tue, 14 Mar 2023 15:17:46 +0000 (16:17 +0100)] 
tests/http: remove year ranges from copyrights

Closes #10763

2 years agoaws_sigv4: fall back to UNSIGNED-PAYLOAD for sign_as_s3
Casey Bodley [Wed, 15 Feb 2023 15:47:04 +0000 (10:47 -0500)] 
aws_sigv4: fall back to UNSIGNED-PAYLOAD for sign_as_s3

all s3 requests default to UNSIGNED-PAYLOAD and add the required
x-amz-content-sha256 header. this allows CURLAUTH_AWS_SIGV4 to correctly
sign s3 requests to amazon with no additional configuration

Signed-off-by: Casey Bodley <cbodley@redhat.com>
Closes #9995

2 years agowolfssl: add quic/ngtcp2 detection in cmake, and fix builds
Viktor Szakats [Tue, 14 Mar 2023 11:57:31 +0000 (11:57 +0000)] 
wolfssl: add quic/ngtcp2 detection in cmake, and fix builds

- add QUIC/ngtcp2 detection in CMake with wolfSSL.

  Because wolfSSL uses zlib if available, move compression detection
  before TLS detection. (OpenSSL might also need this in the future.)

- wolfSSL 5.5.0 started using C99 types in its `quic.h` header, but it
  doesn't #include the necessary C99 header itself, breaking builds
  (unless another dependency pulled it by chance.) Add local workaround
  for it. For this to work with all build tools, we had to fix our
  header detection first. Ref: #10745

  Ref: https://github.com/curl/curl-for-win/commit/6ad5f6ecc15620c15625fc443476b3a1ecef4f3f

Closes #10739

2 years agosecure-transport: fix recv return code handling
Stefan Eissing [Thu, 9 Mar 2023 10:55:46 +0000 (11:55 +0100)] 
secure-transport: fix recv return code handling

Return code handling of recv calls were not always correct when an error
occured or the connection was closed.

Closes #10717

2 years agohttp2: Use KEEP_SEND_HOLD for flow control in HTTP/2
Stefan Eissing [Mon, 13 Mar 2023 10:44:26 +0000 (11:44 +0100)] 
http2: Use KEEP_SEND_HOLD for flow control in HTTP/2

- use the defined, but so far not used, KEEP_SEND_HOLD bit for flow
  control based suspend of sending in transfers.

Prior to this change KEEP_SEND_PAUSE bit was used instead, but that can
interfere with pausing streams from the user side via curl_easy_pause.

Fixes https://github.com/curl/curl/issues/10751
Closes https://github.com/curl/curl/pull/10753

2 years agotests: fix control code that hid some text in runtests.1
Dan Fandrich [Tue, 14 Mar 2023 00:21:02 +0000 (17:21 -0700)] 
tests: fix control code that hid some text in runtests.1

2 years agotests: sync option lists in runtests.pl & its man page
Dan Fandrich [Tue, 14 Mar 2023 00:12:41 +0000 (17:12 -0700)] 
tests: sync option lists in runtests.pl & its man page

2 years agomulti: make multi_perform ignore/unignore signals less often
Daniel Stenberg [Sun, 12 Mar 2023 22:55:09 +0000 (23:55 +0100)] 
multi: make multi_perform ignore/unignore signals less often

For improved performance

Reported-by: Jerome St-Louis
Ref: #10743
Closes #10750

2 years agocmake: delete unused HAVE__STRTOI64
Viktor Szakats [Mon, 13 Mar 2023 15:49:54 +0000 (15:49 +0000)] 
cmake: delete unused HAVE__STRTOI64

Also delete obsolete surrounding comments.

Reviewed-by: Daniel Stenberg
Closes #10756

2 years agoCI: fix copyright header
Viktor Szakats [Mon, 13 Mar 2023 15:47:38 +0000 (15:47 +0000)] 
CI: fix copyright header

Follow-up to 395b9175b7422d699fa93643973295c106cdf147

2 years agoRELEASE-PROCEDURE.md: update coming release dates
Daniel Stenberg [Mon, 13 Mar 2023 15:43:42 +0000 (16:43 +0100)] 
RELEASE-PROCEDURE.md: update coming release dates