]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
7 weeks agotidy-up: miscellaneous
Viktor Szakats [Tue, 9 Jun 2026 09:10:00 +0000 (11:10 +0200)] 
tidy-up: miscellaneous

- GHA/windows: drop redundant double-quotes.
- CMake/PickyWarnings: improve/shorten comment.
- INTERNALS: fix typo in LibreSSL release date.
- drop redundant parentheses from single variables and sole `#if`
  expressions.
- cf-ip-happy: fix missing space from error string.
- telnet: fix parentheses in commented PP code.
- lib1922: fix typo test output text.
- smbserver: unfold lines.
- smbserver: use f-string.
- smbserver: initialize binary string as b``.
- fix typos in comments.

Closes #21972

7 weeks agoasyn-thrdd: add IPv6 guards
sourceturner [Sat, 6 Jun 2026 15:23:49 +0000 (17:23 +0200)] 
asyn-thrdd: add IPv6 guards

It seems that the usual '#ifdef USE_IPV6' guards have been overlooked in
lib/asyn-thrdd.c.

This commit makes sure that the code compiles if IPv6 is not available.

Closes #21881

7 weeks agoGHA: update debian:bookworm-slim Docker digest to 96e378d
renovate[bot] [Thu, 11 Jun 2026 11:30:28 +0000 (11:30 +0000)] 
GHA: update debian:bookworm-slim Docker digest to 96e378d

Closes #21958

7 weeks agoGHA/windows: bump Cygwin Action and adjust version number
Viktor Szakats [Thu, 11 Jun 2026 15:41:21 +0000 (17:41 +0200)] 
GHA/windows: bump Cygwin Action and adjust version number

It seems the commit hash behind the v6.1 tag is changing, and the latest
version is actually v6.0.2, which is currently mapped to the v6.1 hash.

Fixing:
```
warning[ref-version-mismatch]: action's hash pin has mismatched or missing version comment
  --> .github/workflows/windows.yml:98:87
   |
98 |       - uses: cygwin/cygwin-install-action@711d29f3da23c9f4a1798e369a6f01198c13b11a # v6.1
   |         ---------------------------------------------------------------------------   ^^^^ points to commit 3f0a3f9f988f
   |         |
   |         is pointed to by tag v6.0.1
```

Ref: https://github.com/cygwin/cygwin-install-action/issues/59

Closes #21974

7 weeks agohttp_digest: return better error
Daniel Stenberg [Thu, 11 Jun 2026 13:46:23 +0000 (15:46 +0200)] 
http_digest: return better error

It is not a content encoding error.

Found by the GitHub AI thing.

Closes #21969

7 weeks agoCURLOPT_WRITEFUNCTION.md: remove stray reference to HSTS
Daniel Stenberg [Thu, 11 Jun 2026 13:39:06 +0000 (15:39 +0200)] 
CURLOPT_WRITEFUNCTION.md: remove stray reference to HSTS

It appears to have landed here by mistake

Closes #21968

7 weeks agocf-ip-happy.c: minor comment typo
Daniel Stenberg [Thu, 11 Jun 2026 13:44:28 +0000 (15:44 +0200)] 
cf-ip-happy.c: minor comment typo

7 weeks agocontent_encoding: fix non-last chunked rejection
Daniel Stenberg [Thu, 11 Jun 2026 08:59:05 +0000 (10:59 +0200)] 
content_encoding: fix non-last chunked rejection

Even when two 'chunked' are listed and neither is the last encoding the
transfer is rejected.

Verified by test 1722 and 1723

Reported-by: violet12331 on hackerone
Closes #21966

7 weeks agoCURLINFO_CONTENT_LENGTH_UPLOAD_T.md: expand
Daniel Stenberg [Wed, 10 Jun 2026 21:41:51 +0000 (23:41 +0200)] 
CURLINFO_CONTENT_LENGTH_UPLOAD_T.md: expand

Fixes #21953
Reported-by: BazaarAcc32 on github
Closes #21956

7 weeks agomulti: remove a stale comment
Daniel Stenberg [Thu, 11 Jun 2026 07:29:22 +0000 (09:29 +0200)] 
multi: remove a stale comment

It tricks humans and AIs alike.

Closes #21961

7 weeks agoSECURITY-ADVISORY.md: expand
Daniel Stenberg [Thu, 11 Jun 2026 07:46:09 +0000 (09:46 +0200)] 
SECURITY-ADVISORY.md: expand

Fill in missing information and rephrase a little

Closes #21964

7 weeks agoh3proxy: no stream userdata
Stefan Eissing [Thu, 11 Jun 2026 07:37:46 +0000 (09:37 +0200)] 
h3proxy: no stream userdata

Do not set the easy handle opening a proxy tunnel as userdata on the
stream. The ease handle might go out of scope long before the tunnel
stream is closed.

Closes #21962

7 weeks agocf-ip-happy: update documentation
Stefan Eissing [Thu, 11 Jun 2026 06:29:22 +0000 (08:29 +0200)] 
cf-ip-happy: update documentation

Reported-by: correctmost on github
Fixes #21957
Closes #21959

7 weeks agocf-socket: make Curl_addr2string static
Stefan Eissing [Wed, 10 Jun 2026 11:18:30 +0000 (13:18 +0200)] 
cf-socket: make Curl_addr2string static

Move as sockaddr2string() into cf-socket.c where its only callers are.

Mark as UNITTEST for unit1609.

Move "struct Curl_sockaddr_ex" into sockaddr.h, so connect.h and
cf-socket.h can be included without all the system headers needed.

Closes #21946

7 weeks agodigest: flush proxy state on proxy or credential change
alhudz [Wed, 10 Jun 2026 13:00:13 +0000 (18:30 +0530)] 
digest: flush proxy state on proxy or credential change

Closes #21951

7 weeks agoCURLOPT_WRITEFUNCTION.md: mention redirects
Daniel Stenberg [Wed, 10 Jun 2026 12:01:11 +0000 (14:01 +0200)] 
CURLOPT_WRITEFUNCTION.md: mention redirects

Reported-by: BazaarAcc32 on github
Fixes #21945
Closes #21950

7 weeks agoconnect: turn conn_get_first_origin into static
Daniel Stenberg [Wed, 10 Jun 2026 11:37:22 +0000 (13:37 +0200)] 
connect: turn conn_get_first_origin into static

This function is only used within this source file.

Closes #21948

7 weeks agotidy-up: drop stray comparisons with literal zero
Viktor Szakats [Wed, 10 Jun 2026 11:03:41 +0000 (13:03 +0200)] 
tidy-up: drop stray comparisons with literal zero

Drop from:
- strcmp, strcmpi, strncmp, memcmp, lstat, getrlimit, setrlimit, fseek,
  fstat
- autotools detection snippets.
- smooth-gtk-thread: simplify `!var != 0` expression.

Closes #21947

7 weeks agobuild: enable `-Wformat-signedness`, fix issues found
Viktor Szakats [Thu, 16 Apr 2026 08:52:57 +0000 (10:52 +0200)] 
build: enable `-Wformat-signedness`, fix issues found

Adjust code to avoid `-Wformat-signedness` warnings, while making sure
that enums are always cast to a known type when passing them to `printf`
functions, to support compilers and compiler settings where enums are
not default-size signed ints.

- cast integers printed as hex to `unsigned`. (63 times, 20 of them in
  `mbedtls.c`)
- cast misc enums to `int` for printing. (31 times)
- cast `CURL_LOCK_DATA_*` enums to `int`. (4 times)
- cast `CURL_FORMADD_*` enums to `int`. (13 times)
- cast `CURLSHE_*` enums to `int`. (3 times)
- cast `CURLUE_*` enums to `int`. (33 times)
- cast `CURLMSG_*` enums to `int`. (6 times)
- cast `CURLE_*` enums to `int`. (~380 times)
- unit1675: fix mask.
  Follow-up to 7c34365ccea19949317878c7fcd5f7376e2e09f1 #21879

Ref: #18343 (initial attempt)

Closes #20848

7 weeks agomqtt: return error on truncated Remaining Length
Daniel Stenberg [Wed, 10 Jun 2026 11:52:13 +0000 (13:52 +0200)] 
mqtt: return error on truncated Remaining Length

Pointed out by: Zeropath

Closes #21949

7 weeks agoGHA: update awslabs/aws-lc from v1.73.0 to v5.0.0
renovate[bot] [Wed, 10 Jun 2026 01:46:49 +0000 (01:46 +0000)] 
GHA: update awslabs/aws-lc from v1.73.0 to v5.0.0

Closes #21941

7 weeks agoGHA: update ruff from v0.15.12 to v0.15.16
renovate[bot] [Wed, 10 Jun 2026 01:46:44 +0000 (01:46 +0000)] 
GHA: update ruff from v0.15.12 to v0.15.16

Closes #21940

7 weeks agongtcp2: share common functionality
Stefan Eissing [Fri, 5 Jun 2026 10:55:50 +0000 (12:55 +0200)] 
ngtcp2: share common functionality

Share common functions/structs between ngtcp2 HTTP/3 and the proxy
version.

Fix bugs in proxy implementation when it comes to stream and pollset
handling and transfer lifetimes.

Curl_multi_xfer_sockbuf_borrow: work without multi

When a connection gets shutdown by a share, the easy handle used is
share->admin and it does not have a multi handle. In that case let
Curl_multi_xfer_sockbuf_borrow() allocate a buffer to be freed on
release.

This happens when a TLS filter sends its last notify through a HTTP/3
proxy tunnel.

Closes #21871

7 weeks agotest 527: bring back, not a dupe
Daniel Stenberg [Wed, 10 Jun 2026 06:14:10 +0000 (08:14 +0200)] 
test 527: bring back, not a dupe

Fixed the name to clarify the difference to 526.

Follow-up to 4ead4285a6af5d5645d4ad
Closes #21942

7 weeks agodigest: flush state on origin or credential change
Daniel Stenberg [Wed, 10 Jun 2026 08:27:50 +0000 (10:27 +0200)] 
digest: flush state on origin or credential change

Verified by test 1686

Closes #21944

7 weeks agotests: restore 1030 and 611
Daniel Stenberg [Tue, 9 Jun 2026 16:44:21 +0000 (18:44 +0200)] 
tests: restore 1030 and 611

They were not exact duplicates. Tweaked their names to clarify.

Also renamed 608 accordingly.

Follow-up to 4ead4285a6af5d5645d4a

Spotted-by: Dan Fandrich
Closes #21938

7 weeks agoappveyor: bump 3 VS2022 jobs to VS2026
Viktor Szakats [Tue, 9 Jun 2026 17:57:38 +0000 (19:57 +0200)] 
appveyor: bump 3 VS2022 jobs to VS2026

Also:
- install CMake 4.2.1 manually for VS2026 jobs, because the preinstalled
  version (4.1.2) does not yet support the compatible generator.
- VisualStudioSolution VS2010 job to VS2015 worker image (from VS2013).
  VS2013 is no longer listed on the AppVeyor support page.
- downgrade OpenSSL to 3.5 (from 3.6) for the VS2022 job, to add
  variation.

Note: the jobs run much slower after bumping to VS2026. This seems to be
due slower configure and build steps.

Refs:
https://github.com/appveyor/website/commit/9ef4152eda92d0f8a486ab67824a6d420e1151e4
https://github.com/appveyor/website/pull/912
https://github.com/appveyor/build-images/commit/fa7f7b928ebee4e2cfc6eccc953d2dec95374114
https://github.com/appveyor/build-images/pull/175
https://www.appveyor.com/docs/windows-images-software/
https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2018%202026.html

Closes #21939

7 weeks agosmbserver: update internal id generation for Python 3
Viktor Szakats [Tue, 9 Jun 2026 15:44:05 +0000 (17:44 +0200)] 
smbserver: update internal id generation for Python 3

Also:
- make next id based on highest in list + 1.
  (was: last id in list + 1)
- unfold a line.

Spotted by GitHub Code Quality

Ref: https://portingguide.readthedocs.io/en/latest/dicts.html?highlight=keys

Closes #21937

7 weeks agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 9 Jun 2026 14:58:21 +0000 (16:58 +0200)] 
RELEASE-NOTES: synced

7 weeks agohsts: duplicate live HSTS data in curl_easy_duphandle
A Johnston [Mon, 1 Jun 2026 21:52:23 +0000 (14:52 -0700)] 
hsts: duplicate live HSTS data in curl_easy_duphandle

Verified by test 1922

Closes #21809

7 weeks agotests: enhance names, remove duplicates
Daniel Stenberg [Tue, 9 Jun 2026 12:25:51 +0000 (14:25 +0200)] 
tests: enhance names, remove duplicates

- test 1030: remove, duplicate of 154
- test 1105: make name unique
- test 161: make name reflect what it tests
- test 2074: correct the name
- test 310: improve name
- test 358: correct the name
- test 409: removed, duplicate of 401
- test 472: clarify the test name (how it differs from 439)
- test 1509: update name
- test 527: duplicate of 526
- test 758: separate the name from 530
- test 611: duplicate of 608, remove
- test 639: adjust the name
- test 688: minor name tweak to clarify
- test 708: enhance name
- test 800/847: clarify the names
- test 1520: dedupe the name
- test 962: enhance name
- test 1196/2203: enhanced names
- test 1211: name tweak
- test 1256/1257: enhance the names
- test 1483: fix name
- test 1541: fix name
- test 1553: fix name
- test 1609: removed, exact duplicate of 1607
- test 2200: fix name
- test 3031: corret the name
- test 3016/3203: fix names and keywords
- test 3201/3220: enhance names
- test 3212: fix name
- add missing FILE keywords
- drop FAILURE as keyword

Closes #21936

7 weeks agotidy-up: drop redundant `== NULL` syntax
Viktor Szakats [Tue, 9 Jun 2026 12:18:02 +0000 (14:18 +0200)] 
tidy-up: drop redundant `== NULL` syntax

Where missed by checksrc.

Closes #21935

7 weeks agotidy-up: drop redundant `!= NULL` syntax
Viktor Szakats [Tue, 9 Jun 2026 11:38:17 +0000 (13:38 +0200)] 
tidy-up: drop redundant `!= NULL` syntax

Where missed by checksrc.

Closes #21932

7 weeks agoGHA: update dependency openssl/openssl to v4.0.1
renovate[bot] [Tue, 9 Jun 2026 12:06:35 +0000 (12:06 +0000)] 
GHA: update dependency openssl/openssl to v4.0.1

Closes #21934

7 weeks agopsl: require libpsl 0.16.0 (2016-12-10) or greater
Viktor Szakats [Tue, 9 Jun 2026 12:02:32 +0000 (14:02 +0200)] 
psl: require libpsl 0.16.0 (2016-12-10) or greater

Debian Stretch offers 0.17.0.

Ref: https://github.com/rockdaboot/libpsl/releases/tag/libpsl-0.16.0
Ref: https://sources.debian.org/src/libpsl/

Closes #21933

7 weeks agohttp-proxy: verify CONNECT response headers
alhudz [Tue, 9 Jun 2026 10:56:14 +0000 (16:26 +0530)] 
http-proxy: verify CONNECT response headers

Verifed by test 2107

Closes #21927

7 weeks agosigv4: URL encode the user name in the header
Daniel Stenberg [Tue, 9 Jun 2026 09:40:41 +0000 (11:40 +0200)] 
sigv4: URL encode the user name in the header

- split into sub functions
- add 'aws-sigv4' as keyword for many tests

Verify with test 3222

Reported-by: Trail of Bits
Closes #21923

7 weeks agosmbserver: check impacket presence differently
Viktor Szakats [Tue, 9 Jun 2026 10:58:24 +0000 (12:58 +0200)] 
smbserver: check impacket presence differently

To silence ruff and GitHub CodeQL warnings.

Closes #21929

7 weeks agopytest: use `Optional[]`, adjust whitespace
Viktor Szakats [Tue, 9 Jun 2026 10:46:17 +0000 (12:46 +0200)] 
pytest: use `Optional[]`, adjust whitespace

Reported by GitHub Code Quality

Closes #21928

7 weeks agotidy-up: use uppercase `TRUE`/`FALSE` where missing
Viktor Szakats [Tue, 9 Jun 2026 10:09:46 +0000 (12:09 +0200)] 
tidy-up: use uppercase `TRUE`/`FALSE` where missing

Keep it only in external API calls and C++ code.

Also:
- curlx/fopen: replace with `!!`.

Spotted by GitHub Code Quality in cf-socket.c.

Closes #21925

7 weeks agopytest: add comment to empty except branch
Viktor Szakats [Tue, 9 Jun 2026 10:33:24 +0000 (12:33 +0200)] 
pytest: add comment to empty except branch

To silence GitHub CodeQL.

Follow-up to 4aa8cc3c4ad567ba5e96d9901ff22238fbe01a0c #21924

7 weeks agounit1675: fix potential memory leak on dynbuf fail path
Viktor Szakats [Tue, 9 Jun 2026 09:28:06 +0000 (11:28 +0200)] 
unit1675: fix potential memory leak on dynbuf fail path

Spotted by GitHub Code Quality

Closes #21922

7 weeks agopytest: fix remaining code checker warnings
Viktor Szakats [Tue, 9 Jun 2026 09:14:17 +0000 (11:14 +0200)] 
pytest: fix remaining code checker warnings

- curl.py: delete commented no-op code.
- certs.py, curl.py: narrow down exceptions to fix:
  Except block handles 'BaseException'
- test_20_websockets: add comment to empty except branch.

Reported by GitHub CodeQL

Closes #21924

7 weeks agocf-socket: store errno from do_connect in ctx->error
Yedaya Katsman [Mon, 8 Jun 2026 19:48:45 +0000 (22:48 +0300)] 
cf-socket: store errno from do_connect in ctx->error

This fixes a misleading log in verbose mode when ipv6 connectivity isn't
available, presumably also in other cases:

```
* Immediate connect fail for 2a00:1450:4028:806::200e: Network is unreachable
* connect to 2a00:1450:4028:806::200e port 443 from :: port 0 failed: Success
```

Closes #21914

7 weeks agocookie: tailmatch the domains for secure override
Daniel Stenberg [Mon, 8 Jun 2026 14:37:44 +0000 (16:37 +0200)] 
cookie: tailmatch the domains for secure override

If a SECURE cookie is set for a sub-domain (`example.com`) and is then
attempted to get set again for more specific part of that domain
(`www.example.com`) without the SECURE property, the second occurance
should not be allowed.

Reported-by: Trail of Bits
Verified by test 3305
Closes #21910

7 weeks agotidy-up: miscellaneous
Viktor Szakats [Fri, 5 Jun 2026 21:02:11 +0000 (23:02 +0200)] 
tidy-up: miscellaneous

- badwords: replace stray synonyms with 'null-terminator'.
- tests/FILEFORMAT.md: tidy up feature descriptions.
- printf: replace stray `%i` masks with `%d` for consistency.
- pytest: add comments for empty excepts to try silencing GitHub CodeQL
  warnings.
- tool1394, unit1675: merge nested `if`s.
- dnscache: fix typo in comment.
- fix whitespace, indent and newlines.

Closes #21921

7 weeks agows: make pong sending lazy
Stefan Eissing [Mon, 8 Jun 2026 14:57:01 +0000 (16:57 +0200)] 
ws: make pong sending lazy

Do not send PONG frames unless there is sufficient space left in the
websocket send buffer. A server might be lazy in reading our data and
intermediary PONG frames can be skipped by a client (RFC 6455, ch.
5.5.3).

Add test case measuring no real RSS increase on a server blasting with
PING frames.

Closes #21911

7 weeks agopeer.h: fix typo in comment
Daniel Stenberg [Tue, 9 Jun 2026 08:38:18 +0000 (10:38 +0200)] 
peer.h: fix typo in comment

Closes #21920

7 weeks agodocs: returned header size reflects HTTP/1-style format
Viktor Szakats [Mon, 8 Jun 2026 16:39:27 +0000 (18:39 +0200)] 
docs: returned header size reflects HTTP/1-style format

Ref: #21889

Closes #21912

7 weeks agopytest: close file handles after use (cont.), and tidy-ups
Viktor Szakats [Tue, 9 Jun 2026 00:08:30 +0000 (02:08 +0200)] 
pytest: close file handles after use (cont.), and tidy-ups

- dante.py, dnsd.py, sshd.py: drop redundant conditions.
  Spotted in sshd by GitHub Code Quality.
- curl.py: comment out `if` to silence CodeQL warning.

Reported by GitHub CodeQL

Follow-up to 8145476d5dd97d0ec704e9ea65b2f2028b8a945c #21916

Closes #21917

7 weeks agoresolve: Mention in error that IP address is expected
Yedaya Katsman [Fri, 5 Jun 2026 14:15:59 +0000 (17:15 +0300)] 
resolve: Mention in error that IP address is expected

If you try using a DNS name like connect-to supports it can be confusing that
it is illegal. Also make it a bit more readable

Closes #21913

7 weeks agodigest: escape control codes too
Daniel Stenberg [Mon, 8 Jun 2026 21:21:55 +0000 (23:21 +0200)] 
digest: escape control codes too

Since the username is decoded when used and control codes are accepted
in HTTP usernames in general, the username encoding for the Digest auth
needs to percent encode such bytes.

Verified by test 3221

Reported-by: Trail of Bits
Closes #21915

7 weeks agourlapi: URL decode hostname before IP address normalization
Daniel Stenberg [Tue, 9 Jun 2026 06:18:18 +0000 (08:18 +0200)] 
urlapi: URL decode hostname before IP address normalization

With this, IPv6 addresses that end with '%25' with no following zone id are
considered invalid.

Extend test 1560 to verify

Reported-by: Hem Parekh
Closes #21918

7 weeks agopytest: close file handles after use, and two minor tidy-ups
Viktor Szakats [Mon, 8 Jun 2026 21:27:32 +0000 (23:27 +0200)] 
pytest: close file handles after use, and two minor tidy-ups

Also:
- drop two unreachable return statements.
- test_17_ssl_use: avoid implicit string concatenations in lists.

Reported by GitHub CodeQL

Closes #21916

7 weeks agochecksrc-all.pl: do not check files multiple times rc-8_21_0-2
Viktor Szakats [Mon, 8 Jun 2026 11:56:49 +0000 (13:56 +0200)] 
checksrc-all.pl: do not check files multiple times

Restrict `git ls-files` to return `*.[ch]` files within `$dir` only.
Before this patch it returned files in subdirectories too, which did
double work and may have made `checksrc.pl` pick `.checksrc` from the
first such subdirectory, masking the one in `$dir`. (current curl tree
is not affected)

Ref: https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec

Follow-up to 33f606cd51995b68a0f68ac478f7395d8acda17b #20439

Closes #21909

7 weeks agochunked: reject invalid bytes in trailer
alhudz [Mon, 8 Jun 2026 05:07:34 +0000 (10:37 +0530)] 
chunked: reject invalid bytes in trailer

Trailers are delivered to the application as headers via
CLIENTWRITE_TRAILER, but unlike regular response headers they skipped
the verify_header() checks, so a server could smuggle a nul byte (or
stray CR) into a header reaching CURLOPT_HEADERFUNCTION and
curl_easy_header().

Run each assembled trailer line through Curl_verify_header(), the same
validation used for normal headers.

Covered by the new test 2106.

Closes #21896

7 weeks agossl native_ca_store: always reinit
Stefan Eissing [Mon, 8 Jun 2026 08:11:30 +0000 (10:11 +0200)] 
ssl native_ca_store: always reinit

Add bit `native_ca_store_opt` to keep the setting of
CURLOPT_(PROXY_)SSL_OPTIONS and use that to calculate every easy
transfer if a native CA store shall be used or not.

This avoids `native_ca_store` getting stuck on TRUE after being set
once.

Closes #21902

7 weeks agonetrc: remember and check filename loaded
Stefan Eissing [Mon, 8 Jun 2026 09:28:57 +0000 (11:28 +0200)] 
netrc: remember and check filename loaded

Remember the filename of a loaded netrc file to detect changed
configurations in a reused easy handle.

Closes #21903

7 weeks agoCURLOPT_DOH_URL.md: does not inherit proxy options
Daniel Stenberg [Mon, 8 Jun 2026 10:55:40 +0000 (12:55 +0200)] 
CURLOPT_DOH_URL.md: does not inherit proxy options

Closes #21904

7 weeks ago_ENVIRONMENT.md. Windows does case insensitive env variables
Daniel Stenberg [Mon, 8 Jun 2026 10:40:55 +0000 (12:40 +0200)] 
_ENVIRONMENT.md. Windows does case insensitive env variables

Closes #21907

7 weeks agoGHA: update dependency pizlonator/fil-c to v0.679
renovate[bot] [Mon, 8 Jun 2026 05:13:07 +0000 (05:13 +0000)] 
GHA: update dependency pizlonator/fil-c to v0.679

Closes #21897

7 weeks agoruntests: allow skipping tests on torture, use for test 357
Viktor Szakats [Mon, 8 Jun 2026 10:37:48 +0000 (12:37 +0200)] 
runtests: allow skipping tests on torture, use for test 357

Some tests may take a long time in torture mode. Make it possible
to skip individual tests when runtests in running in torture mode.

Also:
- skip test 357 for the reason above.
  Saved 1-3 minutes for the Linux CI torture job, 1-1.5m on Windows.
  No savings on macOS.

Reported-by: Stefan Eissing
Fixes #21873

Closes #21906

7 weeks agolibssh2: save non-standard port to `known_hosts`
Viktor Szakats [Fri, 5 Jun 2026 13:56:17 +0000 (15:56 +0200)] 
libssh2: save non-standard port to `known_hosts`

Reported-by: dyingc on github
Fixes #21863

Closes #21874

7 weeks agosetopt: claer the "custom" CA booleans when set to NULL
Daniel Stenberg [Mon, 8 Jun 2026 07:29:24 +0000 (09:29 +0200)] 
setopt: claer the "custom" CA booleans when set to NULL

Mark them as custom choices only when pointer is passed, and clear them
again when set to NULL.

Closes #21901

7 weeks agovar: use a dedicated pointer for the alloc
Daniel Stenberg [Mon, 8 Jun 2026 06:11:34 +0000 (08:11 +0200)] 
var: use a dedicated pointer for the alloc

As the 'c' pointer might actually get modified before it is time to free
the memory.

Verify in test 2310

Reported-by: Eunsoo Kim
Fixes #21898
Closes #21900

7 weeks agoRevert "url: remove ssh_config_matches"
Daniel Stenberg [Mon, 8 Jun 2026 05:54:50 +0000 (07:54 +0200)] 
Revert "url: remove ssh_config_matches"

This reverts commit 3e9817cd1bb6aa53d3d3bf10572bb245d064870c.

The change was incorrect as the check was not for the options the commit
message mentions.

Reported-by: ByteRay on hackerone
Closes #21899

7 weeks agourlapi: fix memleaks on error in `parse_hostname_login()`
Viktor Szakats [Fri, 5 Jun 2026 14:39:20 +0000 (16:39 +0200)] 
urlapi: fix memleaks on error in `parse_hostname_login()`

Detected by GitHub Code Quality

Follow-up to acd82c8bfd743d0f743a1c1296890738832ac83e #11006
Follow-up to 4183b8fe9a8558b8f62c9dbf8271deed75bff28b #8049

Closes #21879

7 weeks agolib1587: drop redundant includes
Viktor Szakats [Sun, 7 Jun 2026 22:28:41 +0000 (00:28 +0200)] 
lib1587: drop redundant includes

Closes #21892

7 weeks agoRELEASE-NOTES: synced
Daniel Stenberg [Sun, 7 Jun 2026 21:19:55 +0000 (23:19 +0200)] 
RELEASE-NOTES: synced

7 weeks agoCURLOPT_DISALLOW_USERNAME_IN_URL: is for CURLOPT_URL only
Daniel Stenberg [Sun, 7 Jun 2026 12:48:50 +0000 (14:48 +0200)] 
CURLOPT_DISALLOW_USERNAME_IN_URL: is for CURLOPT_URL only

Closes #21890

7 weeks agotool: warn when --ssl and --ftp-ssl-control override each other
Daniel Stenberg [Sat, 6 Jun 2026 22:22:53 +0000 (00:22 +0200)] 
tool: warn when --ssl and --ftp-ssl-control override each other

and mention this properly in the docs.

Closes #21887

7 weeks agoCURLOPT_PORT.md: use stronger language
Daniel Stenberg [Sat, 6 Jun 2026 22:09:30 +0000 (00:09 +0200)] 
CURLOPT_PORT.md: use stronger language

This option should not be used.

Closes #21886

7 weeks agoprogress: fx CURLINFO time reporting
Stefan Eissing [Tue, 2 Jun 2026 09:10:10 +0000 (11:10 +0200)] 
progress: fx CURLINFO time reporting

Whack the times reported for a transfer (see
https://curl.se/libcurl/c/curl_easy_getinfo.html#TIMES) into order for
all variations of up-/download, http/ftp etc. Make sure they are
reported in the documented order.

There is still the *possibility* of PRETRANSFER being longer then
POSTTRANSFER, if a server sends a response before an upload is done.
POST is the time the first response byte is received, and PRE is the
time the last byte was sent by curl.

This may happen with more likelihood on HTTP/2 and 3 for a server
rejected upload. But for successful uploads, the answer will almost over
come afterwards.

Undo the previous twists in lib500.c tests, adjust pytest timeline
checks.

Fixes #21828
Reported-by: BazaarAcc32 on github
Closes #21843

7 weeks agoftplistparser: clear strings.target if not symlink
Daniel Stenberg [Sat, 6 Jun 2026 21:38:22 +0000 (23:38 +0200)] 
ftplistparser: clear strings.target if not symlink

When the struct is passed to the CURLOPT_CHUNK_BGN_FUNCTION callback,
clear the pointer if the provided data is not a symlink.

Closes #21884

7 weeks agoCURLOPT_PINNEDPUBLICKEY.md: does not apply for other origins
Daniel Stenberg [Sat, 6 Jun 2026 21:50:47 +0000 (23:50 +0200)] 
CURLOPT_PINNEDPUBLICKEY.md: does not apply for other origins

Clarify

Closes #21885

7 weeks agoCURLOPT_CHUNK_BGN_FUNCTION: target is there for symlinks only
Daniel Stenberg [Sat, 6 Jun 2026 21:34:15 +0000 (23:34 +0200)] 
CURLOPT_CHUNK_BGN_FUNCTION: target is there for symlinks only

Closes #21883

7 weeks agohttp: reject spurious CR bytes in headers
Daniel Stenberg [Sat, 6 Jun 2026 15:27:52 +0000 (17:27 +0200)] 
http: reject spurious CR bytes in headers

Verified by test 2105

Closes #21882

7 weeks agoschannel_verify: simplify CryptQueryObject use
Vasiliy-Kkk [Tue, 26 May 2026 13:55:39 +0000 (16:55 +0300)] 
schannel_verify: simplify CryptQueryObject use

- Specify that the content is base64 encoded, rather than rely on
  auto-detect.

- Remove unnecessary sanity check of the returned content type.

Closes https://github.com/curl/curl/pull/21760

8 weeks agotidy-up: miscellaneous
Viktor Szakats [Mon, 1 Jun 2026 22:44:17 +0000 (00:44 +0200)] 
tidy-up: miscellaneous

- fix typos.
- badword: add two new words.
- cpp: drop parentheses from standalone `#if` expressions.
- libssh: vertical-align comment block with others.
- clang-format.

Closes #21880

8 weeks agovquic: drop stray casts for `iovec.iov_len`
Viktor Szakats [Fri, 5 Jun 2026 14:31:09 +0000 (16:31 +0200)] 
vquic: drop stray casts for `iovec.iov_len`

Spotted by GitHub Code Quality

Closes #21877

8 weeks agolibssh2: replace macro names with non-misspelled alternatives
Viktor Szakats [Fri, 5 Jun 2026 14:22:43 +0000 (16:22 +0200)] 
libssh2: replace macro names with non-misspelled alternatives

They are available in libssh2 0.15+.

Closes #21876

8 weeks agotidy-up: drop stray casts for allocated pointers
Viktor Szakats [Thu, 4 Jun 2026 23:23:06 +0000 (01:23 +0200)] 
tidy-up: drop stray casts for allocated pointers

Closes #21865

8 weeks agolibssh2: sync version check with INTERNALS.md
Viktor Szakats [Fri, 5 Jun 2026 03:09:45 +0000 (05:09 +0200)] 
libssh2: sync version check with INTERNALS.md

Follow-up to cf3b9657bcb7acd3525ca081b4ed16e860604d6d

Closes #21868

8 weeks agolibssh2: do not use deprecated macros when unavailable
Viktor Szakats [Fri, 5 Jun 2026 00:45:53 +0000 (02:45 +0200)] 
libssh2: do not use deprecated macros when unavailable

To support building with `LIBSSH2_NO_DEPRECATED` macro defined, a future
libssh2 that may have dropped these macros.

Ref: https://github.com/libssh2/libssh2/pull/1977

Closes #21867

8 weeks agolibssh2: use non-deprecated `libssh2_knownhost_addc()`
Viktor Szakats [Fri, 5 Jun 2026 00:35:58 +0000 (02:35 +0200)] 
libssh2: use non-deprecated `libssh2_knownhost_addc()`

Supported since libssh2 v1.2.5. Replacing `libssh2_knownhost_add()`,
which was deprecated in that same version.

The new API supports a comment field.

Ref: https://github.com/libssh2/libssh2/pull/1977

Closes #21866

8 weeks agoquic: count zero length packets against max
Stefan Eissing [Fri, 5 Jun 2026 06:34:46 +0000 (08:34 +0200)] 
quic: count zero length packets against max

With a flood of zero lenght UDP packets to curl, the receive loop might
run longer than intended to. Count such packets against the max to
terminate the loop as intended.

URL: https://hackerone.com/reports/3783438
Reported-by: vectorqueue on hackerone
Closes #21869

8 weeks agoVULN-DISCLOSURE-POLICY.md: emphasize comm as a human
Daniel Stenberg [Fri, 5 Jun 2026 06:58:14 +0000 (08:58 +0200)] 
VULN-DISCLOSURE-POLICY.md: emphasize comm as a human

Closes #21870

8 weeks agoBINDINGS: Update Hollywood link
Andreas Falkenhahn [Wed, 3 Jun 2026 21:03:51 +0000 (23:03 +0200)] 
BINDINGS: Update Hollywood link

- Change link from archive.org back to hollywood-mal.com since the site
  is up and running.

Closes https://github.com/curl/curl/pull/21862

8 weeks agotests: add `cookies` feature to some tests 21858/head
Marcel Raad [Wed, 3 Jun 2026 06:58:08 +0000 (08:58 +0200)] 
tests: add `cookies` feature to some tests

These fail without cookie support.

Closes https://github.com/curl/curl/pull/21858

8 weeks agotop-complexity: drop threshold to 50
Daniel Stenberg [Wed, 3 Jun 2026 08:42:26 +0000 (10:42 +0200)] 
top-complexity: drop threshold to 50

Closes #21857

8 weeks agourlapi: simplify urlget_url somewhat
Daniel Stenberg [Wed, 3 Jun 2026 08:20:02 +0000 (10:20 +0200)] 
urlapi: simplify urlget_url somewhat

- make file_url() a separate function that returns a file:// URL
- group the checks that need scheme info

Closes #21856

8 weeks agotool_parsecfg: refactor parseconfig()
Daniel Stenberg [Wed, 3 Jun 2026 07:43:41 +0000 (09:43 +0200)] 
tool_parsecfg: refactor parseconfig()

- introduce helper functions
- remove #ifdef'ed debug code

Closes #21855

8 weeks agocookie: refactor parse_cookie_header
Daniel Stenberg [Wed, 3 Jun 2026 06:10:14 +0000 (08:10 +0200)] 
cookie: refactor parse_cookie_header

- introduce a few static helper functions
- simplify the bad octet checks
- simplify the too long cookie/value check

Closes #21854

8 weeks agoGHA: bump 2 GitHub Actions
dependabot[bot] [Tue, 2 Jun 2026 20:20:31 +0000 (20:20 +0000)] 
GHA: bump 2 GitHub Actions

- updates `actions/labeler` from 6.0.1 to 6.1.0
- updates `github/codeql-action` from 4.35.2 to 4.36.0

Closes #21852

8 weeks agovquic: moving related things into subdir
Stefan Eissing [Tue, 2 Jun 2026 11:27:22 +0000 (13:27 +0200)] 
vquic: moving related things into subdir

Move QUIC related implementations into the vquic directory. Rename
files that implement a connection filter accordingly.

Closes #21848

8 weeks agohsts.md: mention multiple curl invokes effect
Daniel Stenberg [Tue, 2 Jun 2026 15:40:48 +0000 (17:40 +0200)] 
hsts.md: mention multiple curl invokes effect

Reported-by: zhanhb on github
Ref: #21847
Closes #21851

8 weeks agogtls: minor fixes and improvements
Viktor Szakats [Tue, 2 Jun 2026 13:33:14 +0000 (15:33 +0200)] 
gtls: minor fixes and improvements

- fix GnuTLS function name reference in `Curl_gtls_shared_creds_create()`
  error message.
  Spotted by GitHub Code Quality.
- unfold a line.
- in `Curl_gtls_verifyserver()`:
  - report the failure of `gnutls_x509_crt_import()`.
    Spotted by GitHub Code Quality.
  - fix a minor inconsistency in error strings.
  - drop redundant NULL checks for `config->issuercert`.

Closes #21850

8 weeks agoschannel: use fopen instead CreateFile
Vasiliy-Kkk [Wed, 27 May 2026 12:40:13 +0000 (15:40 +0300)] 
schannel: use fopen instead CreateFile

- Refactor CA file reading to use the typical fopen/fread instead of
  CreateFile/ReadFile.

Closes https://github.com/curl/curl/pull/21773

8 weeks agogithub: Add AI usage warning to issue, doc and PR templates
Jay Satiro [Thu, 28 May 2026 18:42:03 +0000 (14:42 -0400)] 
github: Add AI usage warning to issue, doc and PR templates

- Explain to contributors that though AI use is acceptable they must
  not file unless they can understand and explain their work without AI.

Assisted-by: Viktor Szakats
Ref: https://github.com/curl/curl/discussions/21792

Closes https://github.com/curl/curl/pull/21801

8 weeks agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 2 Jun 2026 15:01:32 +0000 (17:01 +0200)] 
RELEASE-NOTES: synced