Commit graph

38554 commits

Author SHA1 Message Date
Daniel Stenberg
ea392e6b36
RELEASE-NOTES: synced
Also bump the curlver to tenative 8.20.1
2026-05-01 11:34:15 +02:00
Stefan Eissing
c29278cc83
asyn-thrdd: fix result processing without wakeup socketpair
When building curl 8.20.0 with socketpair disabled, there is no
wakeup socket and the resolve results are not processed.

This fix performs result processing in the absence of a wakeup
socket before checking the resolve result.

Closes #21476
2026-05-01 11:30:51 +02:00
Daniel Stenberg
d0717acaf0
user-agent.md: mention double quotes too
Reported-by: Jeremy Nicoll
Bug: https://curl.se/mail/archive-2026-04/0029.html
Closes #21477
2026-05-01 10:27:17 +02:00
Daniel Stenberg
ecc8bf6be2
tool_formparse: simplify get_param_part
Introduce a few sub functions to reduce complexity

Closes #21478
2026-05-01 10:26:33 +02:00
Viktor Szakats
91232fc2a2
tidy-up: miscellaneous
- sha256: fix backend priority in comment.
- URLs: link to IETF URLs to the HTML document, to match others.
- VERSIONS.md: use unified date format for recent entries too.
  Ref: ce5d32032f
- GHA/labeler.yml: alpha-sort file masks in a label block.
- tests/server/mqttd: fix call arg list in a disabled function.
- tests/server/mqttd: fix comment.

Closes #21473
2026-04-30 20:22:23 +02:00
Viktor Szakats
ceaa5dfba0
GHA/curl-for-win: switch riscv job to debian:stable (testing broke)
```
The following packages have unmet dependencies:
[...]
E: Unable to satisfy dependencies. Reached two conflicting assignments:
   1. musl-dev:amd64=1.2.5-3+b1 is selected for install
   2. musl-dev:amd64 is not selected for install because:
      1. musl-dev:riscv64=1.2.5-3 is selected for install
      2. musl-dev:amd64 Breaks musl-dev:riscv64 (!= 1.2.5-3+b1)
```
Ref: https://github.com/curl/curl/actions/runs/25168601672/job/73785600341#step:3:154

Closes #21475
2026-04-30 16:14:13 +02:00
Raymond Steen
2bb5c9b555
mqtt: validate PINGRESP and DISCONNECT have remaining_length == 0
Per MQTT 3.1.1 sections 3.13.1 and 3.14.1, PINGRESP and DISCONNECT fixed
headers must have remaining_length set to zero. The previous code
dispatched to mqtt->nextstate based on the queued state alone without
validating remaining_length for these no-payload packet types, allowing
a malicious broker to send a PINGRESP with non-zero remaining_length
whose trailing bytes would be interpreted as the payload of whatever
message type was queued (CONNACK, SUBACK, etc.).

The exploitation path turned out to be narrow — curl sends data to the
server the user chose to talk to — but the spec violation and the
resulting protocol-state error are real. Reject the malformed packets
with CURLE_WEIRD_SERVER_REPLY before state dispatch.

Reported-by: Raymond Steen <raymond@vortiqxconsilium.com>
Found by VORTIQ-X VXF Framework
Bug: https://hackerone.com/reports/3702718

Signed-off-by: Raymond Steen <raymond@vortiqxconsilium.com>
Closes #21465
2026-04-30 14:14:44 +02:00
Viktor Szakats
ddb30354f6
GHA/linux: work around Linuxbrew install failure
Root cause unknown, it appeared today without any local change:
```
==> Installing dependencies for libssh2: openssl@3 and zlib-ng-compat
==> Installing libssh2 dependency: openssl@3
==> Pouring openssl@3--3.6.2.x86_64_linux.bottle.tar.gz
Error: A `brew install openssl@4 libssh2 libngtcp2 libnghttp3 c-ares` process has already locked /home/linuxbrew/.linuxbrew/Cellar/openssl@4.
Please wait for it to finish or terminate it to continue.
Error: Process completed with exit code 1.
```
Ref: https://github.com/curl/curl/actions/runs/25129061781/job/73650161844?pr=21468#step:2:407

Last known good run: https://github.com/curl/curl/actions/runs/25038989485/job/73337289504

Ref: 1fbffe7f08 #21379

Closes #21469
2026-04-29 22:12:35 +02:00
Daniel Stenberg
a05f34973e
RELEASE-NOTES: synced
curl 8.20.0 release

plus VERSIONS.md update
2026-04-29 07:45:21 +02:00
Daniel Stenberg
32970e7826
THANKS: names from the 8.20.0 release 2026-04-29 07:45:21 +02:00
Viktor Szakats
377ed81ab7
tidy-up: a cmake warning message and a variable name
Spotted by GitHub Code Quality

Closes #21462
2026-04-28 09:07:27 +02:00
Viktor Szakats
0f47ddc0a9
build: stop building and installing runtests.1 and testcurl.1
The corresponding tools are never installed, and both are dev tools.
Refer to their `.md` originals instead.

Also markdownify text in lines nearby.

Ref: https://github.com/curl/curl/pull/21460#issuecomment-4328258450

Closes #21461
2026-04-28 09:07:27 +02:00
Viktor Szakats
f485f5e031
cmake: do not install shell completions when BUILD_CURL_EXE=OFF
Follow-up to 74542c1f4b #21459

Closes #21460
2026-04-27 21:26:29 +02:00
Viktor Szakats
74542c1f4b
cmake: do not install wcurl when BUILD_CURL_EXE=OFF
Skip installing `wcurl.1` also.

Reported-by: Daniel Schulte
Fixes #21458
Follow-up to 23bed347b3 #17035

Closes #21459
2026-04-27 17:46:42 +02:00
Viktor Szakats
931ac3085a
GHA/checksrc: switch to zizmor --persona option
Closes #21457
2026-04-27 15:07:03 +02:00
Viktor Szakats
032ea65ff2
tidy-up: whitespace
Closes #21456
2026-04-27 13:34:27 +02:00
Daniel Stenberg
1ea3060a25
write-out.md: minor language fix
Pointed out by Copilot

Closes #21455
2026-04-27 12:50:32 +02:00
Viktor Szakats
13b6a6036c
tool_dirhie: fix to create drive-relative directory
Fix to create the top directory `foo` when specified as
`X:foo\bar\filename`, on Windows and MS-DOS. Add test to verify.

Caught by Codex Security

Follow-up to 787ee935ac #16566

Closes #21449
2026-04-27 12:09:09 +02:00
Viktor Szakats
e2f84e6ba9
tunits: initialize global tool_stderr
To avoid difficult to track down crashes when a tested function ends up
outputing a message via `errorf()`, `warnf()` or siblings.

Cherry-picked from #21449

Closes #21454
2026-04-27 11:53:47 +02:00
Viktor Szakats
4d89043fbc
runtests: fix linefeeds in log messages
Cherry-picked from #21449

Closes #21452
2026-04-27 11:53:47 +02:00
Viktor Szakats
aab8d47227
units: tidy up dynbuf init
Init dynbuf after global init to bring closer to use, improve
readability and sync test sources.

Closes #21451
2026-04-27 11:53:47 +02:00
Daniel Stenberg
c1cfdf59ac
setopt: clear proxy auth properties when switching
Verify with test 1588

Closes #21453
2026-04-27 10:27:01 +02:00
Daniel Stenberg
7586ca7455
docs/cmdline-opts/write-out.md: minor language edit 2026-04-26 16:42:31 +02:00
Daniel Stenberg
c2fdf7a335
docs/cmdline-opts/write-out.md: tls_earlydata was adeded in 8.13.0 2026-04-26 16:35:33 +02:00
Daniel Stenberg
4125f45c7e
write-out.md: fix minor language mistake
Closes #21450
2026-04-26 16:31:53 +02:00
Daniel Stenberg
aa1e954a1f
KNOWN_BUGS.md: Windows stdin relay accepts unauthenticated local connections
A windows developer could have a look at this.

Closes #21433
2026-04-25 16:14:54 +02:00
Stefan Eissing
51905671e0
sectrust: fail on missing OCSP stapling
When using Apple SecTrust, requiring the server to send
an OCSP response and does not, fail correctly.

Reported-by: Carlos Carrillo
Closes #21444
2026-04-25 16:04:06 +02:00
Viktor Szakats
024c73dfa1
test_22_httpsrr: avoid class name clash with test_21_resolve
Spotted by GitHub Code Quality

Closes #21448
2026-04-25 14:20:42 +02:00
Viktor Szakats
701cd4cfc3
tidy-up: git options, ECH, HTTP/3 documentation
- prefer `--branch` over `-b`, where missing.
- add `--depth 1` where missing.
- sync option order between docs and GHA.
- bump quiche and rustls-ffi versions in documentation.
- ECH.md: update for OpenSSL 4.

Closes #21447
2026-04-25 13:59:20 +02:00
Viktor Szakats
c6b1c49be0
test_22_httpsrr: drop duplicate skipif conditions
Already set at class-level.

Spotted by GitHub Code Quality

Closes #21446
2026-04-25 13:59:20 +02:00
Viktor Szakats
05905b1207
pytest: drop unused imports
Spotted by GitHub Code Quality

Closes #21445
2026-04-25 12:38:07 +02:00
Daniel Stenberg
5227dd9c2e
RELEASE-NOTES: synced 2026-04-25 11:37:19 +02:00
Daniel Stenberg
40b65d869a
RELEASE-NOTES: add missing contributors
From security reports etc
2026-04-25 11:28:08 +02:00
Viktor Szakats
4449110561
sshserver.pl: tidy up around AllowUsers setup
- drop redundant space-to-`?` replacement.
- add parentheses to silence code checker.
- tidy up comments.

Follow-up to e53523fef0 #14859

Closes #21442
2026-04-25 08:42:54 +02:00
Viktor Szakats
f9d3f00c98
GHA/windows: bump stunnel to 5.78
Closes #21443
2026-04-25 08:35:45 +02:00
Viktor Szakats
b5ee935f75
connect: fix typo on error message [ci skip]
Pointed out by GitHub Code Quality
2026-04-24 22:29:02 +02:00
Stefan Eissing
bfcc1c6eb4
setup connection filter: mark as setup
Add CF_TYPE_SETUP to the setup connection filter so that it is
removed and destroyed after the connection has been established.

Closes #21437
2026-04-24 17:50:44 +02:00
Stefan Eissing
4840fe3f8a
socks filter: pass operation parameters
Pass all operations parameters to a SOCKS filter at creation
time, not relying on "global" connectdata values.

Eliminate modifications to `conn->ip_version` when local resolving
for SOCKS4.

Do not retrieve the socket for GSSAPI blocking calls from connectdata,
but from the filters "below" the SOCKS one.

Closes #21436
2026-04-24 17:50:10 +02:00
Daniel Stenberg
7d295145eb
mbedtls: remove failf() call with first argument as NULL
failf() needs an easy handle to work. This change removes the call since
there is normnally nowhere to show the output if init fails.

Bonus: improve language in an infof() call

Spotted by Copilot

Closes #21441
2026-04-24 17:47:30 +02:00
Viktor Szakats
41f3f94d91
sshserver.pl: add option to enable KEX algorithms in sshd
Necessary when the libssh2/libssh client library does not support KEX
algos offered by default by the OpenSSH server. E.g. libssh2 with WinCNG
combined with OpenSSH 10+.

Also: use this option in GHA/windows.

Follow-up to 3b8bb1a86a #21219
Follow-up to c98d0a2e9a #21220

Closes #21438
2026-04-24 17:09:21 +02:00
Daniel Stenberg
d19a039472
mbedtls: cleanup more without care for 'initialized'
Several mbedTLS resources (entropy/CTR-DRBG, CA/client certs, keys, CRL)
are initialized and may allocate memory before initialized is set, and
must still be cleaned up.

Follow-up to 1c4813c769

Caught by Codex Security
Closes #21440
2026-04-24 17:01:01 +02:00
Viktor Szakats
7c0a8fc210
GHA/windows: disable ssh-ed25519 hostkey in libssh2-wincng jobs
libssh2 built with the WinCNG crypto backend does not support ed25519
hostkeys.

Ref: #21438
Follow-up to acda4eae5e #21223

Closes #21439
2026-04-24 15:03:25 +02:00
Stefan Eissing
b6e0ecb3f2
resolve: pass bool for proxy resolves
So that CURLcode failure is correct and not figured out later via
`conn->bits.proxy`. Add the flag to the async struct.

`for_proxy` is figured out by the caller of Curl_resolv() when it
figures out which host/proxy name it wants the addresses for.

Remove CONN_IS_PROXIED macro as no longer needed.

Closes #21423
2026-04-24 13:10:59 +02:00
Viktor Szakats
0d3d9f2222
checksrc: add missing semicolon, fix IFDEFSINGLE capture group
Pointed out by GitHub Code Quality

Closes #21435
2026-04-24 11:08:56 +02:00
Daniel Stenberg
2f37943406
tests: drop support for the hex="yes" option in getpart
The remaining datacheck sections using this for MQTT tests were not
actually used anyway!

Closes #21428
2026-04-24 10:42:34 +02:00
Viktor Szakats
8b7e460cce
checksrc: add missing items to warnings hash, alpha-sort
Closes #21434
2026-04-24 10:14:26 +02:00
Viktor Szakats
ee65f19e2a
checksrc: fix code quality findings
- fix counting errors. Update test1185 results accordingly.
- fix an error message.
- tidy up regexp syntax.

Pointed out by GitHub Code Quality

Closes #21429
2026-04-24 09:46:35 +02:00
Daniel Stenberg
4bc34a5416
doh: fix #ifdef name
Spotted by Copilot

Closes #21431
2026-04-24 08:56:35 +02:00
Daniel Stenberg
5c756684ba
hostip: init the curl_jmpenv_lock appropriately
A zero-initialized static value is not guaranteed to be a valid mutex on
all POSIX implementations

Spotted by Codex Security

Closes #21432
2026-04-24 08:30:33 +02:00
Daniel Stenberg
eea9ce45a4
urldata.h: fix typo and lingering backtick
Spotted by Copilot

Closes #21430
2026-04-24 08:18:57 +02:00