]> git.ipfire.org Git - thirdparty/curl.git/log
thirdparty/curl.git
2 months agotests: avoid assignment in `if` conditions in `first.h`
Viktor Szakats [Wed, 18 Feb 2026 16:00:26 +0000 (17:00 +0100)] 
tests: avoid assignment in `if` conditions in `first.h`

Found by clang-tidy `bugprone-assignment-in-if-condition`.

Ref: https://clang.llvm.org/extra/clang-tidy/checks/bugprone/assignment-in-if-condition.html

Closes #20646

2 months agobuild: disable typecheck via the command-line instead of `curl_config.h`
Viktor Szakats [Fri, 20 Feb 2026 14:03:17 +0000 (15:03 +0100)] 
build: disable typecheck via the command-line instead of `curl_config.h`

To make it apply to examples. This in turn makes analyzers run quicker
and with fewer false positives.

It's a special disable option, having its effect via `curl/curl.h`.

Bug: https://github.com/curl/curl/pull/20649#issuecomment-3934885021
Follow-up to 9e6f1c5efb7a70e1f33e467a738f3e3f652f3174 #19637

Closes #20650

2 months agocmake: include `curl/curl.h` as system header in integration tests
Viktor Szakats [Fri, 20 Feb 2026 15:18:49 +0000 (16:18 +0100)] 
cmake: include `curl/curl.h` as system header in integration tests

Follow-up to fb70812437ad28b74dbdc1031e46c1d86bc9db3c #16126

Closes #20651

2 months agomemdebug: include `backtrace.h` as system header
Viktor Szakats [Fri, 20 Feb 2026 11:44:19 +0000 (12:44 +0100)] 
memdebug: include `backtrace.h` as system header

Closes #20642

2 months agodocs: clarify --ipv4 and --ipv6
Daniel Lublin [Fri, 13 Feb 2026 08:40:12 +0000 (09:40 +0100)] 
docs: clarify --ipv4 and --ipv6

Try to make the wording more clear. It is the addresses in the resolver
result that are affected, not anything regarding *how* resolving is
done.

Closes #20585

2 months agodocs: reword explanation of --variable option
Anna Liberty [Thu, 19 Feb 2026 20:23:04 +0000 (12:23 -0800)] 
docs: reword explanation of --variable option

Simplify the language expaining the --variable option, reducing
repetition. Also fix some minor grammar issues and makes language for
examples more consistent.

Closes #20636

2 months agotests/server/sockfilt: check for NULL `tv` to silence clang-tidy
Viktor Szakats [Thu, 19 Feb 2026 17:34:35 +0000 (18:34 +0100)] 
tests/server/sockfilt: check for NULL `tv` to silence clang-tidy

A NULL dereference cannot happen with existing use of this code.

linux-mingw, CM clang-tidy:
```
/home/runner/work/curl/curl/tests/server/sockfilt.c:720:24: error: Access
 to field 'tv_sec' results in a dereference of a null pointer (loaded from
 variable 'tv') [clang-analyzer-core.NullDereference,-warnings-as-errors]
  720 |             tv->tv_sec = 0;
      |             ~~         ^
```
Ref: https://github.com/curl/curl/actions/runs/22191200093/job/64179197235?pr=20631#step:10:283

Cherry-picked from #20631

Closes #20639

2 months agoclang-tidy: work around clang-tidy <=20 false positive (Windows)
Viktor Szakats [Thu, 19 Feb 2026 23:43:57 +0000 (00:43 +0100)] 
clang-tidy: work around clang-tidy <=20 false positive (Windows)

clang-tidy <= v20 (as seen between 18.1.3 and 20.1.2) report
`readability-uppercase-literal-suffix` originating from mingw-w64 system
header `_mingw_mac.h` via `define __MSABI_LONG(x) x ## l`

Triggered by `SOCKENOMEM` (e.g. in tests/server/sockfilt.c):
```
warning: integer literal has suffix 'l', which is not uppercase [readability-uppercase-literal-suffix]
```

Work around by replacing Windows macro `WSA_NOT_ENOUGH_MEMORY`
with its literal value.

Bug: https://github.com/curl/curl/pull/20631#issuecomment-3930619868
Follow-up to c07c3cac746bb899e8014200aad02e5f4bb507de #20629
Cherry-picked from #20631

Closes #20638

2 months agoINSTALL-CMAKE.md: document more settings requiring absolute paths
Viktor Szakats [Thu, 19 Feb 2026 23:23:25 +0000 (00:23 +0100)] 
INSTALL-CMAKE.md: document more settings requiring absolute paths

Cherry-picked from #20631

Closes #20637

2 months agocmake: improve clang-tidy invocation for tests in cross-builds
Viktor Szakats [Thu, 19 Feb 2026 15:43:08 +0000 (16:43 +0100)] 
cmake: improve clang-tidy invocation for tests in cross-builds

By passing to clang-tidy the C compiler with `--target` and sysroot
options, if any.

Fixing (GHA/windows, linux-mingw, CM clang-tidy):
```
lib/curl_setup.h:841:10: error: 'io.h' file not found [clang-diagnostic-error]
  841 | #include <io.h>
      |          ^~~~~~
Found compiler error(s).
FAILED: [code=1] tests/server/CMakeFiles/servers-clang-tidy bld/tests/server/CMakeFiles/servers-clang-tidy
cd tests/server && /usr/bin/clang-tidy --config-file=.clang-tidy.yml
--warnings-as-errors=* --checks=-clang-diagnostic-unused-function first.c getpart.c util.c dnsd.c [...]
-- <-D-options> <-I-options> <cflags>
```

For reference, this is CMake's built-in clang-tidy invocation:
```
/usr/local/bin/cmake -E __run_co_compile --tidy="/usr/bin/clang-tidy;--config-file=.clang-tidy.yml;
--warnings-as-errors=*;--extra-arg-before=--driver-mode=gcc" --source=lib/curl_fopen.c
-- /usr/bin/clang --target=x86_64-w64-mingw32 <-D-options> <-I-options> <cflags>
```

Also:
- bump cmakelint `--max-statements`. Needs 59 after this patch.
- use undocumented CMake variables:
  - `CMAKE_C_COMPILE_OPTIONS_TARGET` for `--target=`
  - `CMAKE_C_COMPILE_OPTIONS_SYSROOT` for `--sysroot=`

Cherry-picked from #20631

Closes #20640

2 months agocmake: sync clang-tidy arg order in tests with C compiler
Viktor Szakats [Thu, 19 Feb 2026 17:19:49 +0000 (18:19 +0100)] 
cmake: sync clang-tidy arg order in tests with C compiler

Pass macro definitions first. For uniformity, no functional difference.

To match:
```
CMAKE_C_COMPILE_OBJECT = '<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> [...]'
```

Closes #20635

2 months agoclang-tidy: sort list [ci skip]
Viktor Szakats [Thu, 19 Feb 2026 15:33:52 +0000 (16:33 +0100)] 
clang-tidy: sort list [ci skip]

Follow-up to b7ecd14725fdfe63bf84f63829dd63fb2e8cba3f #20632

2 months agoclang-tidy: replace comma-separated string with list in config
Viktor Szakats [Thu, 19 Feb 2026 14:47:00 +0000 (15:47 +0100)] 
clang-tidy: replace comma-separated string with list in config

Bump required clang-tidy version to v17.0.0 for this.

Ref: https://releases.llvm.org/17.0.1/tools/clang/tools/extra/docs/clang-tidy/index.html
Follow-up to 4497dbd9ac4a31b0056a9179d500676ebe091de5 #20605

Closes #20632

2 months agoclang-tidy: drop redundant casts
Viktor Szakats [Wed, 18 Feb 2026 13:55:58 +0000 (14:55 +0100)] 
clang-tidy: drop redundant casts

Found via `readability-redundant-casting`. Prone to false positives, not
enabled.

Ref: https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-casting.html

Closes #20630

2 months agoclang-tidy: enable and fix `readability-uppercase-literal-suffix`
Viktor Szakats [Wed, 18 Feb 2026 12:58:36 +0000 (13:58 +0100)] 
clang-tidy: enable and fix `readability-uppercase-literal-suffix`

Ref: https://clang.llvm.org/extra/clang-tidy/checks/readability/uppercase-literal-suffix.html

Closes #20629

2 months agoclang-tidy: check `readability-redundant-preprocessor`, fix fallouts
Viktor Szakats [Wed, 18 Feb 2026 13:27:20 +0000 (14:27 +0100)] 
clang-tidy: check `readability-redundant-preprocessor`, fix fallouts

Also:
- cipher_suite: merge `USE_MBEDTLS` `#if` blocks.

Ref: https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-preprocessor.html

Closes #20628

2 months agoclang-tidy: check `readability-redundant-control-flow`
Viktor Szakats [Wed, 18 Feb 2026 13:37:33 +0000 (14:37 +0100)] 
clang-tidy: check `readability-redundant-control-flow`

Also fix fallouts.

Ref: https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-control-flow.html

Closes #20625

2 months agoclang-tidy: sync argument names in prototype and definition
Viktor Szakats [Tue, 17 Feb 2026 23:55:27 +0000 (00:55 +0100)] 
clang-tidy: sync argument names in prototype and definition

Discovered with clang-tidy checker
`readability-inconsistent-declaration-parameter-name`.

Also:
- do not enforce the above because of inconsistencies still present
  between public API prototypes and definitions. (Also betwen man page
  protos, and man page examples, and other parts of the code, e.g.
  `easy` vs `curl` vs `d` vs `handle`) Perhaps subject for a future
  effort:
  https://github.com/curl/curl/actions/runs/22166472728/job/64094691653
- enable and fix `readability-named-parameter` where missing.

Refs:
https://clang.llvm.org/extra/clang-tidy/checks/readability/inconsistent-declaration-parameter-name.html
https://clang.llvm.org/extra/clang-tidy/checks/readability/named-parameter.html

Closes #20624

2 months agortspd: fix to check `realloc()` result
Viktor Szakats [Wed, 18 Feb 2026 18:04:12 +0000 (19:04 +0100)] 
rtspd: fix to check `realloc()` result

Also enable `bugprone-suspicious-realloc-usage` clang-tidy option
to verify.

Fixing:
```
tests/server/rtspd.c:328:37: error: 'req->rtp_buffer' may be set to null if 'realloc' fails,
 which may result in a leak of the original buffer
 [bugprone-suspicious-realloc-usage,-warnings-as-errors]
  328 |                   req->rtp_buffer = realloc(req->rtp_buffer,
      |                   ~~~~~~~~~~~~~~~   ^       ~~~~~~~~~~~~~~~
```

Ref: https://clang.llvm.org/extra/clang-tidy/checks/bugprone/suspicious-realloc-usage.html

Closes #20621

2 months agocmake/FindMbedTLS: add workaround for missing static MSVC `mbedcrypto.lib` 4.0.0
Viktor Szakats [Wed, 18 Feb 2026 12:21:19 +0000 (13:21 +0100)] 
cmake/FindMbedTLS: add workaround for missing static MSVC `mbedcrypto.lib` 4.0.0

Seen with mbedTLS 4.0.0. mbedTLS 4.0.0 renamed `mbedcrypto` lib to
`tfpsacrypto`, while also keeping a copy under the old name to aid
transition. However, this compatibility logic is broken for MSVC static
builds, and the old name missing.

Work around by looking for the new name in the raw detection codepath.

Note that using `pkg-config`-based detection also works as a workaround.

Reported-by: tawmoto on github
Fixes #20616
Ref: https://github.com/Mbed-TLS/mbedtls/blob/v4.0.0/library/CMakeLists.txt#L275-L282
Ref: https://github.com/Mbed-TLS/mbedtls/issues/10605

Closes #20617

2 months agoclang-tidy: fixes and improvements
Viktor Szakats [Sun, 15 Feb 2026 22:58:39 +0000 (23:58 +0100)] 
clang-tidy: fixes and improvements

Fix bigger and smaller kinks in how clang-tidy is configured and used.
Sync behavior more between autotools and cmake, lib/src and tests. Bump
clang-tidy minimum version and prepare logic to allow using clang-tidy
to a fuller extent.

- move clang-tidy settings from builds to a new `.clang-tidy.yml`.
  To make it easy to see and edit checks at one place. Also to allow
  using the `--checks=` option internally to silence tests-specific
  checks. (clang-tidy does not support multiple `--check=` options via
  the command-line.)
  Use explicit `--config-file=` option to point to the configuration.
- .clang-tidy.yml: link to documentation.
- suppress `clang-diagnostic-nullability-extension` due to a false
  positive in libtests with `CURL_WERROR=ON` and `PICKY_COMPILER=OFF`.
- .clang-tidy.yml: enable `portability-*`, `misc-const-correctness`.
- drop `--quiet` clang-tidy option by default to make its working a bit
  more transparent. The extra output is minimial.
- consistently use double-dashes in clang-tidy command-line options.
  Supported by clang-tidy 9.0.0+ (2019-09-19). Before this patch single
  and double were used arbitrarily.
- src/tool_parsecfg: silence false positive `clang-analyzer-unix.Stream`.
  Seen with clang 18 + clang-tidy 19 and 20 (only with autotools.)
- INTERNALS: require clang-tidy 14.0.0+. For the `--config-file` option.
- INTERNALS: recommend clang-tidy 19.1.0+, to avoid bogus
  `clang-analyzer-valist.Uninitialized` warnings. (bug details below)

autotools:

- allow configuring the clang-tidy tool via `CLANG_TIDY` env.
  Also to use in GHA to point to a suffixed clang-tody tool.
- fix to pass CFLAGS to lib, src sources.
  (keep omitting them when using a non-clang compiler.)
- fix to pass `--warnings-as-errors=*` in quotes to avoid globbing.

cmake:

- fix to not pass an empty `-I` to clang-tidy.
- fix to pass CFLAGS (picky warnings) to clang-tidy for test sources.
  (keep omitting them when using a non-clang compiler.)
- fix to disable `clang-diagnostic-unused-function` for test sources.
  (tests have static entry points, which trigger this check when
  checking them as individidual sources.)
- fix forwarding `CURL_CLANG_TIDYFLAGS` to clang-tidy.
- force disable picky warnings when running clang-tidy with a non-clang
  compiler. To not pass these flags when checking lib and src.

CI:

- GHA/linux: avoid clang-tidy bug by upgrading to v19, and drop the
  workaround.
- GHA/linux: switch to clang from gcc in the clang-tidy job. Using gcc
  doesn't allow passing CFLAGS to clang-tidy, making it less effective.
  (My guess this was one factor contributing to this job often missing
  to find certain issues compared to GHA/macos.)

I recomment using clang-tidy with a clang compiler, preferably the same
version or one that's compatible. Other cases are best effort, and may
fail if a C flag is passed to clang-tidy that it does not understand.
Picky warnings are mostly omitted when using a non-clang compiler,
reducing its usefulness.

Details and reproducer for the v18 (and earlier) clang-tidy bug,
previously affecting the GHA/linux job:

clang-tidy <=18 emits false warnings way when passing multiple C sources
at once (as done with autotools):

```sh
cat > src1.c <<EOF
#include <string.h>
static void dummy(void *p) { memcmp(p, p, 0); }
EOF

cat > src2.c <<EOF
#include <stdarg.h>
void vafunc(int option, ...)
{
  va_list param;
  va_start(param, option);
  if(option)
    (void)va_arg(param, int);
  va_end(param);
}
EOF

/opt/homebrew/opt/llvm@18/bin/clang-tidy --checks=clang-analyzer-valist.Uninitialized src1.c src2.c

# src2.c:7:11: warning: va_arg() is called on an uninitialized va_list [clang-analyzer-valist.Uninitialized]
```

Follow-up to e86542038dda88dadf8959584e803895f979310c #17047

Closes #20605

2 months agobuild: fix `-Wunused-macros` warnings, and related tidy-ups
Viktor Szakats [Fri, 13 Feb 2026 16:05:36 +0000 (17:05 +0100)] 
build: fix `-Wunused-macros` warnings, and related tidy-ups

- fix internal macro `AN_APPLE_OS` reused between sources without
  resetting it. It may potentially have left the system sha256
  function unused.
- fix to define `WOLFSSL_OPTIONS_IGNORE_SYS` so that it always applies
  to wolfSSL headers, also during feature detection.
- md4, md5, sha256: simplify fallback logic.
- delete 20+ unused macros.
- scope or move macros to avoid `-Wunused-macros` warnings.
- examples: delete unused code.

The warning detects macros defined but not used within the same C
source. It does not warn for macros defined in headers. It also works
with unity builds, but to a lesser extent.

Closes #20593

2 months agocurl_ntlm_core: merge two `#if` blocks
Viktor Szakats [Wed, 18 Feb 2026 20:47:31 +0000 (21:47 +0100)] 
curl_ntlm_core: merge two `#if` blocks

Cherry-picked from #20593

Closes #20620

2 months agoopenssl: disable local keylog feature if built-in upstream
Viktor Szakats [Tue, 17 Feb 2026 14:04:00 +0000 (15:04 +0100)] 
openssl: disable local keylog feature if built-in upstream

Reported-by: Paul Howarth
Fixes #20611

Closes #20614

2 months agoeasy: reset errorbuf on eyeballing success
Stefan Eissing [Tue, 17 Feb 2026 08:50:25 +0000 (09:50 +0100)] 
easy: reset errorbuf on eyeballing success

Any failf() that fill the errorbuf need to be forgotten once happy
eyeballing finds a succssful winner. Because the errorbuf, once set, is
not overwritten with future error information.

Adds test_05_05 to verify.

Reported-by: Tim Friedrich Brüggemann
Fixes #20608

Closes #20613

2 months agolibcurl-security.md: Fix typos and add a point about URLs
Dan Fandrich [Tue, 17 Feb 2026 20:38:26 +0000 (12:38 -0800)] 
libcurl-security.md: Fix typos and add a point about URLs

2 months agoGHA/windows: mark 3023/3024 flaky
Viktor Szakats [Mon, 16 Feb 2026 19:25:19 +0000 (20:25 +0100)] 
GHA/windows: mark 3023/3024 flaky

Same as the other two tests, but for Schannel.

Follow-up to dead29362a9e8f1dc7e5c59f9ff358337ff0e121 #20602
Follow-up to 3ae234b2a3aca14908c292ac09755f6c08daac1a #20462

Closes #20609

2 months agolib: delete unused local includes
Viktor Szakats [Mon, 16 Feb 2026 15:50:52 +0000 (16:50 +0100)] 
lib: delete unused local includes

Filtered from `clang-tidy` `misc-include-cleaner` hits.

Also:
- pingping: scope includes.
- doh: say the reason for an include.

Closes #20607

2 months agoinclude: avoid recursive macros
Viktor Szakats [Sat, 14 Feb 2026 13:50:51 +0000 (14:50 +0100)] 
include: avoid recursive macros

To fix potential `-Wdisabled-macro-expansion` warnings when using these
macros within other macros. Fixing for example:
```
lib/doh.c:328:3: error: disabled expansion of recursive macro [clang-diagnostic-disabled-macro-expansion,-warnings-as-errors]
  328 |   ERROR_CHECK_SETOPT(CURLOPT_URL, url);
      |   ^
lib/doh.c:271:14: note: expanded from macro 'ERROR_CHECK_SETOPT'
  271 |     result = curl_easy_setopt((CURL *)doh, x, y);       \
      |              ^
include/curl/curl.h:3332:44: note: expanded from macro 'curl_easy_setopt'
 3332 | #define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param)
      |                                            ^
[...]
```

Also update comments on why curl continues to disable
`-Wdisabled-macro-expansion` and `-Wused-but-marked-unused` warnings.

Follow-up to 92f215fea1aa8bd5b1709d38f42aab77ab3fc662 #18477

Closes #20597

2 months agomprintf: rename internal enum to avoid collision with AmigaOS symbol
Viktor Szakats [Fri, 13 Feb 2026 00:36:05 +0000 (01:36 +0100)] 
mprintf: rename internal enum to avoid collision with AmigaOS symbol

Also:
- drop AmigaOS workaround.

Closes #20584

2 months agoGHA/windows: mark test 3000 flaky too
Viktor Szakats [Sun, 15 Feb 2026 12:53:42 +0000 (13:53 +0100)] 
GHA/windows: mark test 3000 flaky too

Similar to test 3001 marked flaky earlier.

Example:
https://github.com/curl/curl/actions/runs/22035738719/job/63668228484?pr=20597#step:14:4099

Follow-up to 3ae234b2a3aca14908c292ac09755f6c08daac1a #20462

Closes #20602

2 months agosrc: simplify declaring `curl_ca_embed`
Viktor Szakats [Sat, 14 Feb 2026 14:25:38 +0000 (15:25 +0100)] 
src: simplify declaring `curl_ca_embed`

Also to avoid `-Wunused-macros` warnings.

Follow-up to 8a3740bc8e558b9a9d4a652b74cf27a0961d7010 #14059
Cherry-picked from #20593

Closes #20601

2 months agocmake: enable binutils ld workaround for all toolchains at build-time (revert)
Viktor Szakats [Sat, 14 Feb 2026 11:03:16 +0000 (12:03 +0100)] 
cmake: enable binutils ld workaround for all toolchains at build-time (revert)

The change was valid, but caused an annoying warning with perfectly
working non-binutils ld linkers:
```
ld: warning: ignoring duplicate libraries: 'my/path/usr/local/lib/libcrypto.a'
```
(seen with Apple clang, when using static `libcrypto.a`)

It means that for the binutil ld hack to work at consumption-time, curl
must be built with the same picky binutils (gcc) toolchain.

Reverts 795433b923fc7953ae0a20b44249055fe334ae33 #20434

Closes #20594

2 months agocurl_setup.h: update/expand `OPENSSL_SUPPRESS_DEPRECATED` comment
Viktor Szakats [Sat, 14 Feb 2026 16:07:00 +0000 (17:07 +0100)] 
curl_setup.h: update/expand `OPENSSL_SUPPRESS_DEPRECATED` comment

Document functions/features requiring it.

Follow-up to cab040248d3fba3600825d77d56383019066b447 #10543
Cherry-picked from #20593

Closes #20600

2 months agoexamples/usercertinmem: use modern OpenSSL API, drop mentions of RSA
Viktor Szakats [Sat, 14 Feb 2026 12:30:33 +0000 (13:30 +0100)] 
examples/usercertinmem: use modern OpenSSL API, drop mentions of RSA

Replacing API calls deprecated by OpenSSL 3, and also missing
from OpenSSL 3 no-deprecated builds, fixing builds with the latter:
`PEM_read_bio_RSAPrivateKey()`, `RSA_free()`,
`SSL_CTX_use_RSAPrivateKey()`

Also: rename callback to match its `cacertinmem.c` sibling.

Fixes #20595
Closes #20596

2 months agolib: skip compiling code with features disabled
Viktor Szakats [Fri, 13 Feb 2026 09:32:28 +0000 (10:32 +0100)] 
lib: skip compiling code with features disabled

In non-SSL, non-SSH, non-H3, non-AppleSecTrust builds.

Also:
- drop unused internal macro `SSL_SYSTEM_VERIFIER`.

Closes #20587

2 months agoGHA/windows: bump cygwin/cygwin-install-action to v6.1
Viktor Szakats [Fri, 13 Feb 2026 14:35:22 +0000 (15:35 +0100)] 
GHA/windows: bump cygwin/cygwin-install-action to v6.1

Previous tag v6 changed upstream and points to a different commit. This
made zizmor unhappy. Previous commit is now tagged v6.0 in case we need
it.

Closes #20591

2 months agocmake: normalize uppercase hex winver (for display)
Viktor Szakats [Fri, 13 Feb 2026 09:39:28 +0000 (10:39 +0100)] 
cmake: normalize uppercase hex winver (for display)

For display and consistency with other regexp. It did not cause harm.

Follow-up to 2100d9fde267eea68f8097ff0a8ba7b3c9742c7f #12044

Closes #20586

2 months agocmake: warn for invalid `CURL_TARGET_WINDOWS_VERSION` values
Viktor Szakats [Thu, 12 Feb 2026 21:25:52 +0000 (22:25 +0100)] 
cmake: warn for invalid `CURL_TARGET_WINDOWS_VERSION` values

Also:
- INSTALL-CMAKE.md: add an example for `CURL_TARGET_WINDOWS_VERSION`.

Reported-by: nono303 on github
Ref: #20575
Closes #20582

2 months agoGHA/windows: replace Cygwin distro server
Viktor Szakats [Thu, 12 Feb 2026 22:17:53 +0000 (23:17 +0100)] 
GHA/windows: replace Cygwin distro server

`mirrors.kernel.org` is down.

Also:
- link to `mirrors.kernel.org` status page.
- link to list of mirrors.

Ref: https://archlinux.org/mirrors/kernel.org/

Closes #20583

2 months agows/tftp: include header file even when protocol disabled
Daniel Stenberg [Thu, 12 Feb 2026 09:38:26 +0000 (10:38 +0100)] 
ws/tftp: include header file even when protocol disabled

As the scheme details are still needed. clang 21 warned for this in HTTP-only
builds.

Reported-by: Marcel Raad
URL: https://curl.se/mail/lib-2026-02/0008.html
Closes #20568

2 months agosmb: include arpa/inet.h for NonStop
Daniel Stenberg [Thu, 12 Feb 2026 18:43:43 +0000 (19:43 +0100)] 
smb: include arpa/inet.h for NonStop

Reported-by: Randall S. Becker
URL: https://curl.se/mail/lib-2026-02/0010.html
Closes #20579

2 months agoschannel: refactor: reduce variable scopes, fix comment, fix indent
Daniel Stenberg [Wed, 11 Feb 2026 22:43:45 +0000 (23:43 +0100)] 
schannel: refactor: reduce variable scopes, fix comment, fix indent

Refactor and simplify the Schannel code, primarily by reducing
duplicated buffer-management and credential-setup logic.

- split client certificate selection into get_client_cert() and SSPI
  credential acquisition into acquire_sspi_handle()
- introduce a struct sbuffer for encrypted/decrypted buffering
- Add ensure_encoding_size() and ensure_decoding_size() helpers to
  centralize buffer growth/realloc decisions
- Tighten variable scopes and tidy indentation/logging in the handshake
  and receive/decrypt loops.
- Update comments and adjusts some receive error-condition handling to
  better preserve buffered-data behavior.

Closes #20569

2 months agomulti: split multi_runsingle into sub functions
Daniel Stenberg [Thu, 12 Feb 2026 15:12:06 +0000 (16:12 +0100)] 
multi: split multi_runsingle into sub functions

To reduce complexity.

- is_finished() checks if the individual transfer is done

- handle_completed() is the logic that runs for a completed
  transfer

Closes #20573

2 months agomsvc: VS2026: unlock picky warning in cmake, test in CI
Viktor Szakats [Thu, 12 Feb 2026 16:59:18 +0000 (17:59 +0100)] 
msvc: VS2026: unlock picky warning in cmake, test in CI

Upgrade a GHA/windows job to VS2026 (from VS2022), using a runner image
released a week ago. It also comes with the same Windows SDK as VS2022:
v10.0.26100.0.

The runner image uses Windows 2025 unfortunately, which makes the job
run significantly slower than before this patch:
- configure: 49s -> 1m10s
- build: 3s -> 5s
- install test prereqs: 23s -> 27s
- run tests: 3m18s -> 4m11s
- build examples: 15s -> 25s

It's a shame.

Also:
- cmake: enable picky warnings for VS2026 internal version 19.50.
  Build is clean with existing options.
- GHA/windows: make the built-in OpenSSH intall path recognize
  the windows-2025-vs2026 image as windows-2025.
- windows-2025-vs2026 is able to load the cached stunnel made on
  the windows-2022 runner.
- disk use of the build is almost identical to VS2022.

Before: https://github.com/curl/curl/actions/runs/21955482367/job/63418133880
After: https://github.com/curl/curl/actions/runs/21957589847/job/63426546943

Ref: https://github.com/actions/runner-images/blob/71f0157880be328a2b0a4dc81cda61735ba6c45d/images/windows/Windows2025-VS2026-Readme.md
Ref: #20575

Closes #20577

2 months agoGHA: update google/boringssl to v0.20260211.0
renovate[bot] [Thu, 12 Feb 2026 11:39:21 +0000 (11:39 +0000)] 
GHA: update google/boringssl to v0.20260211.0

Closes #20566

2 months agocmake: add `CURL_PATCHSTAMP` configuration variable, test in CI
Viktor Szakats [Thu, 12 Feb 2026 15:55:53 +0000 (16:55 +0100)] 
cmake: add `CURL_PATCHSTAMP` configuration variable, test in CI

Also:
- INSTALL-CMAKE.md: alpha sort.

Closes #20576

2 months agocmake: add `BORINGSSL_VERSION` configuration variable, test in CI
Viktor Szakats [Thu, 12 Feb 2026 14:21:12 +0000 (15:21 +0100)] 
cmake: add `BORINGSSL_VERSION` configuration variable, test in CI

To simplify setting BoringSSL version, using:
`-DBORINGSSL_VERSION=0.20260211.0`
or
`-DBORINGSSL_VERSION=${boringssl_version}`

Previously it could be set via C flags, using complicated shell quotes:
`-DCMAKE_C_FLAGS="-DCURL_BORINGSSL_VERSION=\\\"${boringssl_version}\\\""`
(the C flags method remains, also for autotools)

It'd be nice if BoringSSL published its version not just via
`MODULE.bazel` in its source tree, but from its public headers, to make
these workarounds unnecessary.

Also:
- GHA/http3-linux: test both options.

Closes #20571

2 months agotidy-up: miscellaneous
Viktor Szakats [Sun, 1 Feb 2026 00:56:43 +0000 (01:56 +0100)] 
tidy-up: miscellaneous

- curl_ntlm_core, smtp, schannel: fix comments.
- curl_setup.h: fix to undef before define.
- tool_doswin, server/sockfilt: reduce variables scopes.
- tool_doswin: drop an interim variable.
- windows: replace `SOCKET_ERROR` with `0` to align with rest of code.
- libssh2: rename variable to align with rest of code.
- gtls, unit1398: use `#if 0`.
- curl_trc.h, curlx/inet_ntop.h: add missing parentheses in macro
  expressions.
- ldap.c: set empty macro to `do {} while(0)`.
- examples/crawler: rename a non-CURLcode `result` variable.
- CURLINFO_TLS_SESSION: drop stray colon.
- add `const` to casts where missing.
- drop unnecessary parentheses.
- fix indent.
- quote style.
- comment style.
- whitespace, newlines, fold/unfold.

Closes #20554

2 months agowindows: tidy up `wincrypt.h` / BoringSSL/AWS-LC coexist workaround
Viktor Szakats [Wed, 11 Feb 2026 23:33:20 +0000 (00:33 +0100)] 
windows: tidy up `wincrypt.h` / BoringSSL/AWS-LC coexist workaround

- openssl: move and expand explanatory comment.

- openssl: drop duplicate workaround.

- schannel: drop workaround. Unnecessary, because OpenSSL headers are
  not included in or after schannel code.

- schannel: drop explicit `wincrypt.h` include. It's indirectly
  included by system `<schannel.h>`.

- ldap: drop explicit `wincrypt.h` include.
  It isn't used there, and also not required for the workaround.
  `winldap.h` keeps including it indirectly.

Tested with BoringSSL and AWS-LC (MultiSSL with Schannel), also LDAP
enabled, and H3, unity and non-unity, and all tested cases build fine.

In lib in general, the point is to have the `#undef`s between the first
`wincrypt.h` include [1] and the first OpenSSL include [2], within a
single compilation unit. For non-unity builds the only such source is
`openssl.c`. For unity ones, depending on batch size, in theory we
should `#undef` after each `wincrypt.h` include. In practice this is
overkill and most cases are covered by `#undef`-fing _first_ in
`vtls/openssl.c`, and `#undef` in `ldap.c`. It's not impossible that we
need to add more undefs after further `wincrypt.h` includes to cover so
far undiscovered build cases [3]. Though I could not find more with the
current sources and source order.

It's also an option to include OpenSSL first, then `wincrypt.h`, as
done in libtests, but for lib and `vtls/openssl.c` it's more practical
to do the opposite.

[1] can be indirect, e.g. via `iphlpapi.h`, `schannel.h`, `winldap.h`.

[2] in
- BoringSSL/AWS-LC: any include (due to `openssl/base.h`).
  Original fix removed by BoringSSL in year
  [2014](https://github.com/google/boringssl/commit/ded93581f1674f81faa0dba4b15a842756066ab2#diff-878093ea6426091505b4c49c59b78924f42859af0eb4ce39b8089bda9577e013).
- OpenSSL: `openssl/ssl.h`, `openssl/x509v3.h`, and some more affected,
  and including `openssl/ossl_typ.h` does the `#undef` automatically.
  Since [3.1.0+](https://github.com/openssl/openssl/commit/fbb9a1f99713b5277d5658963c1706069061e015)
  each inclusion does the `#undef`, in 3.0.x (and earlier) only
  the first inclusion did. Initially fixed in
  [0.9.6d](https://github.com/openssl/openssl/commit/1955b8742354a989650853412c27863f1644e81d)
- LibreSSL [2.3.0+](https://github.com/libressl/portable/commit/0fa826d34f42ecd0932aaf48012ca9165ac1612b):
  not affected, though to suppress another warning 3.8.2+ and
  a [define](https://github.com/libressl/portable/commit/e7fe6caab2869a043514c297ce04e6995a65d79f)
  is necessary.

[3] `lib/Makefile.inc` defines the order of unity sources.

For libtests, the case is simpler: There is always one compilation unit,
with a fixed order, and at the moment `cli_hx_download.c` is including
OpenSSL first, then wincrypt, and in this order they don't bother each
other. Also, at the moment `lib758.c` is the only other OpenSSL header
user, but it's compiled after `cli_hx_download.c` so the include is
skipped there. We may need to revisit this if either header gets
included before it.

All this said it'd be nice if BoringSSL/AWS-LC restored the built-in
workaround to behave like LibreSSL and OpenSSL and not require local
workarounds like these.

Ref: https://github.com/curl/curl/pull/20556#issuecomment-3888425644

Follow-up to 4c46c829f5ed7c37b3313c67a6662b7332c1ff7f #9110
Follow-up to fbe07c6829ba8c5793c84c2856526e19e9029ab9 #5669 #5857

Closes #20567

2 months agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 12 Feb 2026 08:25:40 +0000 (09:25 +0100)] 
RELEASE-NOTES: synced

2 months agocli_hx_download: add Schannel support
Viktor Szakats [Wed, 11 Feb 2026 01:35:02 +0000 (02:35 +0100)] 
cli_hx_download: add Schannel support

Fixes:
```
$ wine libtests.exe cli_hx_download https://curl.se/
[...]
Assertion failed: t->checked_ssl, file .../curl/tests/libtest/cli_hx_download.c, line 563
```

into:
```
[t-0] info Schannel TLS version 0x00000800
```

Refs:
https://learn.microsoft.com/windows/win32/secauthn/querycontextattributes--general
https://learn.microsoft.com/windows/win32/api/schannel/ns-schannel-secpkgcontext_connectioninfo

Ref: c220674ac451231e05df1686bd3da473e5c37252 #20564
Follow-up to ba9ddb935794a9fdd6906f043102a0d3e5795113 #18066

Closes #20556

2 months agocmake: fix `CURL_DROP_UNUSED` accidental left always-enabled
Viktor Szakats [Wed, 11 Feb 2026 15:47:38 +0000 (16:47 +0100)] 
cmake: fix `CURL_DROP_UNUSED` accidental left always-enabled

Follow-up to 66ad54e46b934e17e786e10e0292fa6f1f3fa816 #20357

Closes #20565

2 months agowindows: tidy up includes, macros, document dependencies
Viktor Szakats [Wed, 11 Feb 2026 12:54:27 +0000 (13:54 +0100)] 
windows: tidy up includes, macros, document dependencies

- define `SECURITY_WIN32` globally in `curl_setup.h`.
  To make sure it applies to all includes.

- document which Windows headers require `SECURITY_WIN32`.

- stop suppressing MSVC warning:
  `C4201 is: nonstandard extension used : nameless struct/union`
  The warning is no longer seen in supported build envs with the current
  codebase.
  Follow-up to 8beff4355956e3d18ceb3afc21c1f3edec82543c #8419

- document why `SCHANNEL_USE_BLACKLISTS` is needed.

- just define `SCHANNEL_USE_BLACKLISTS`, drop the unnecessary value `1`.

- stop defining unused `SCH_CRED_MAX_SUPPORTED*` fallback macros.
  Follow-up to 8beff4355956e3d18ceb3afc21c1f3edec82543c #8419

- document why `subauth.h` is included (where missing).

- move and de-dupe `subauth.h` include into `curl_setup.h`, limit to
  Schannel builds.

- stop include `schnlsp.h`. It is a 1-to-1 compatibility wrapper for
  `schannel.h`.

- curl_sspi.h: clarify comment about `SP_NAME_` macros.
  They are local macros, their SDK names are different and curl does not
  use them.

- curl_sspi.h: drop superfluous includes `security.h` and `rpc.h`.

Cherry-picked from #20556

Closes #20564

2 months agobuild: check `MSG_NOSIGNAL` directly, drop detection and interim macro
Viktor Szakats [Wed, 11 Feb 2026 03:10:00 +0000 (04:10 +0100)] 
build: check `MSG_NOSIGNAL` directly, drop detection and interim macro

Drop detecting it at configure time, along with the interim macro
`HAVE_MSG_NOSIGNAL`. There is no longer a reason for this workaround,
and allows to save the work at configure time and simplify.

Also say in a comment that `sys/socket.h` is defining this macro.

Follow-up to 77b3bc239daf75d9fb7702ee34c8e5871c47d387

Closes #20559

2 months agocurl_setup.h: merge back single-use internal header `curl_setup_once.h`
Viktor Szakats [Wed, 11 Feb 2026 00:51:21 +0000 (01:51 +0100)] 
curl_setup.h: merge back single-use internal header `curl_setup_once.h`

Originally split in 2006, but the issues cited are no longer present in
current code. As of now both `curl_setup.h` and `curl_setup_once.h` are
included once per compiler invocation, without recursion. The latter is
a sub-header of the former with no clear distinction in their contents.

Merge them to avoid having to decide where to put new global PP logic.
Also to make it easier to overview what gets defined/included globally
and in what order. (Perhaps even allowing some tidying up here.)

Follow-up to 77b3bc239daf75d9fb7702ee34c8e5871c47d387

Closes #20555

2 months agodocs/libcurl: unify WARNING use
Daniel Stenberg [Wed, 11 Feb 2026 08:33:35 +0000 (09:33 +0100)] 
docs/libcurl: unify WARNING use

Consistently use bold and colon.

Closes #20561

2 months agotool_operate: split post_per_transfer into sub functions
Daniel Stenberg [Wed, 11 Feb 2026 07:35:08 +0000 (08:35 +0100)] 
tool_operate: split post_per_transfer into sub functions

To make it easier to read and manage. Reduce complexity.

Closes #20560

2 months agoGHA/linux: update pizlonator/fil-c to v0.678
renovate[bot] [Wed, 11 Feb 2026 04:07:09 +0000 (04:07 +0000)] 
GHA/linux: update pizlonator/fil-c to v0.678

Closes #20558

2 months agopytest: bump pip cryptography to 46.0.5
Viktor Szakats [Wed, 11 Feb 2026 05:05:33 +0000 (06:05 +0100)] 
pytest: bump pip cryptography to 46.0.5

For CVE-2026-26007 (curl not affected)

2 months agoGHA: update awslabs/aws-lc to v1.67.0
renovate[bot] [Tue, 10 Feb 2026 01:12:19 +0000 (01:12 +0000)] 
GHA: update awslabs/aws-lc to v1.67.0

Closes #20553

2 months agohttp_aws_sigv4: fix query normalization of %2b
Daniel Stenberg [Mon, 9 Feb 2026 13:59:39 +0000 (14:59 +0100)] 
http_aws_sigv4: fix query normalization of %2b

Reported-by: Nuno Goncalves
Fixes #20543
Closes #20550

2 months agogss: exclude verbose error logic from non-verbose builds
Viktor Szakats [Tue, 10 Feb 2026 00:41:41 +0000 (01:41 +0100)] 
gss: exclude verbose error logic from non-verbose builds

Closes #20551

2 months agovtls: use ALPN http/1.0 & http/1.1 for HTTP/1.0 requests
Jay Satiro [Thu, 5 Feb 2026 22:43:55 +0000 (17:43 -0500)] 
vtls: use ALPN http/1.0 & http/1.1 for HTTP/1.0 requests

- For compatibility reasons send both ALPN ids http/1.0 and http/1.1 for
  HTTP/1.0 requests.

Prior to this change for compatibility reasons curl would send ALPN
http/1.1 for HTTP/1.0 requests, since some servers do not recognize
ALPN http/1.0. However some servers may recognize only ALPN http/1.0 for
HTTP/1.0 requests. Therefore curl now sends both.

Reported-by: programmerlexi@users.noreply.github.com
Fixes https://github.com/curl/curl/issues/20487
Closes https://github.com/curl/curl/pull/20533

2 months agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 9 Feb 2026 15:28:57 +0000 (16:28 +0100)] 
RELEASE-NOTES: synced

2 months agotest1980: verify sigv4 normalization query with + and spaces
Daniel Stenberg [Mon, 9 Feb 2026 12:21:26 +0000 (13:21 +0100)] 
test1980: verify sigv4 normalization query with + and spaces

Ref: #20543
Closes #20548

2 months agoVULN-DISCLOSURE-POLICY.md: mention GitHub quirks
Daniel Stenberg [Sat, 7 Feb 2026 22:45:27 +0000 (23:45 +0100)] 
VULN-DISCLOSURE-POLICY.md: mention GitHub quirks

Closes #20541

2 months agodigest: escape double quotes and backslashes in realm and nonce 20545/head
Daniel Stenberg [Sun, 8 Feb 2026 11:30:09 +0000 (12:30 +0100)] 
digest: escape double quotes and backslashes in realm and nonce

change test 907 to use quote in realm to verify

Fixes #20482
Reported-by: cooldadpresident on github
Closes #20545

2 months agotests: convert base64 data to %b64[]
Daniel Stenberg [Sun, 8 Feb 2026 13:09:13 +0000 (14:09 +0100)] 
tests: convert base64 data to %b64[]

To make it easier to read, understand and edit tests - and grep them.

Closes #20547

2 months agobuild: tidy up and simplify `setmode()` detection and use
Viktor Szakats [Sat, 7 Feb 2026 16:57:39 +0000 (17:57 +0100)] 
build: tidy up and simplify `setmode()` detection and use

- move macro to `curl_setup.h` (from curlx), and rename.
  It's required by src, test servers, libtests. Also used by unit/tunit,
  (which is fixable but this patch doesn't touch it.)
- special-case it for Windows/Cygwin/MS-DOS.
- build: drop `setmode()`/`_setmode()` detection.
  This also avoids detecting the different `setmode()` on BSDs,
  and a lot of complexity and overhead.
- use `CURL_O_BINARY`.

Follow-up to 250d613763dfc29f73010696ee7948f19d07dba9 #15787
Follow-up to 5e70566094463b8463d4dc1bec9b66763a761c76 #15169

Closes #20539

2 months agocurl_setup.h: drop extra header guard for internal include
Viktor Szakats [Sun, 8 Feb 2026 02:36:45 +0000 (03:36 +0100)] 
curl_setup.h: drop extra header guard for internal include

The included local header starts with this same guard. The original
commit added it for fixing VMS builds along with many other changes, but
without mention of this specific one in the commit message.

`curl_setup.h` is included once, which includes `curl_setup_once.h`
once, even if the latter wouldn't have it's own guard.

Ref: 25f351424b353884bfe36f5e1c7a787b04b46932

Closes #20544

2 months agocurl_get_line: drop single-use macro
Viktor Szakats [Sun, 8 Feb 2026 00:04:20 +0000 (01:04 +0100)] 
curl_get_line: drop single-use macro

Follow-up to 769ccb4d4261a75c8a4236fbe7dc3e27956db1c9 #19140

Closes #20542

2 months agourl.c: restore mistaken comment change
Daniel Stenberg [Sat, 7 Feb 2026 22:04:00 +0000 (23:04 +0100)] 
url.c: restore mistaken comment change

Follow-up to d7a9f1ab15

Closes #20540

2 months agosws: prevent "connection monitor" to say disconnect twice
Daniel Stenberg [Fri, 6 Feb 2026 23:16:58 +0000 (00:16 +0100)] 
sws: prevent "connection monitor" to say disconnect twice

2 months agourl: fix reuse of connections using HTTP Negotiate
Daniel Stenberg [Thu, 5 Feb 2026 07:34:21 +0000 (08:34 +0100)] 
url: fix reuse of connections using HTTP Negotiate

Assume Negotiate means connection-based

Reported-by: Zhicheng Chen
Closes #20534

2 months agosrc/Makefile.inc: update `CURLX_HFILES`
Viktor Szakats [Sat, 7 Feb 2026 17:04:31 +0000 (18:04 +0100)] 
src/Makefile.inc: update `CURLX_HFILES`

Closes #20537

2 months agodocs: compare `result` against literal `CURLE_OK` (where missing)
Viktor Szakats [Sat, 7 Feb 2026 15:50:54 +0000 (16:50 +0100)] 
docs: compare `result` against literal `CURLE_OK` (where missing)

Also scope to result variables.

Closes #20536

2 months agotidy-up: move literals to right-side of `if` expressions (where missing)
Viktor Szakats [Sat, 7 Feb 2026 14:59:59 +0000 (15:59 +0100)] 
tidy-up: move literals to right-side of `if` expressions (where missing)

Closes #20535

2 months agotool_cb_prg: drop duplicate preprocessor logic
Viktor Szakats [Thu, 5 Feb 2026 21:23:32 +0000 (22:23 +0100)] 
tool_cb_prg: drop duplicate preprocessor logic

In favor of the copy in `curl_setup.h`.

Closes #20531

2 months agolib518, 537: drop `#error` on unlikely/impossible build condition
Viktor Szakats [Thu, 5 Feb 2026 21:10:03 +0000 (22:10 +0100)] 
lib518, 537: drop `#error` on unlikely/impossible build condition

`FD_SETSIZE` is used in core code and expected to be present.

Closes #20530

2 months agoREADME: add MQTTS
Daniel Stenberg [Thu, 5 Feb 2026 21:44:32 +0000 (22:44 +0100)] 
README: add MQTTS

Follow-up to 6c31df453b02597e

Closes #20532

2 months agocurl_setup_once: allow CURL_DEBUGASSERT for customization
Juan Belon [Mon, 22 Dec 2025 10:51:10 +0000 (10:51 +0000)] 
curl_setup_once: allow CURL_DEBUGASSERT for customization

Closes #19744

2 months agoDockerfile: update debian:bookworm-slim Docker digest to 98f4b71
renovate[bot] [Tue, 3 Feb 2026 05:37:23 +0000 (05:37 +0000)] 
Dockerfile: update debian:bookworm-slim Docker digest to 98f4b71

Closes #20501

2 months agodocs: fix grammar nitpicks
Spenser Black [Wed, 4 Feb 2026 15:17:07 +0000 (15:17 +0000)] 
docs: fix grammar nitpicks

Closes #20518

2 months agourl.c: code/comment cleanup around conn creation
Stefan Eissing [Wed, 28 Jan 2026 16:20:57 +0000 (17:20 +0100)] 
url.c: code/comment cleanup around conn creation

Several comments were outdated and parameters to create_conn() and
ConnectionExists() were not needed. Give functions better names and
consistently use terms `needle` and `conn`.

No functional change.

Closes #20464

2 months agocurl: add -I and -i to -h important
jhauga [Fri, 30 Jan 2026 21:15:06 +0000 (16:15 -0500)] 
curl: add -I and -i to -h important

Closes #20483

2 months agoGHA: update google/boringssl to v0.20260204.0
renovate[bot] [Wed, 4 Feb 2026 18:10:39 +0000 (18:10 +0000)] 
GHA: update google/boringssl to v0.20260204.0

Closes #20519

2 months agomk-ca-bundle.pl: drop support for obsolete/insecure fingerprint algos
Viktor Szakats [Thu, 5 Feb 2026 13:32:35 +0000 (14:32 +0100)] 
mk-ca-bundle.pl: drop support for obsolete/insecure fingerprint algos

MD5 and SHA1 fingerprints can no longer be included in the output when
using the `-t` option.

Closes #20527

2 months agolib: disable websockets early if no http
Viktor Szakats [Thu, 5 Feb 2026 11:42:59 +0000 (12:42 +0100)] 
lib: disable websockets early if no http

To prevent inconsistent `CURL_DISABLE_WEBSOCKETS` states between source
files.

Follow-up to 8edc0338f30f458f812f9ea355de1240771fa343 #20351

Closes #20526

2 months agobuild: make `HTTP_ONLY` build options also disable websockets
Viktor Szakats [Thu, 5 Feb 2026 11:31:42 +0000 (12:31 +0100)] 
build: make `HTTP_ONLY` build options also disable websockets

Closes #20525

2 months agocmake: use `list(APPEND ...)` where missing
Viktor Szakats [Thu, 5 Feb 2026 11:15:07 +0000 (12:15 +0100)] 
cmake: use `list(APPEND ...)` where missing

Cherry-picked from #20407

Closes #20522

2 months agoGHA/linux-old: use tilde where possible and consistent
Viktor Szakats [Thu, 5 Feb 2026 11:18:42 +0000 (12:18 +0100)] 
GHA/linux-old: use tilde where possible and consistent

Cherry-picked from #20407

Closes #20524

2 months agoGHA/non-native: pin DJGPP toolchain to hash
Viktor Szakats [Thu, 5 Feb 2026 02:42:05 +0000 (03:42 +0100)] 
GHA/non-native: pin DJGPP toolchain to hash

This package is automatically bumped, but needs manual intervention
anyway, to update gcc version number in the filename.

Follow-up to 4ad0a022e1d47119c9f0b11068f3d0b0a932e989 #20517

Closes #20523

2 months agoCI: log downloaded file hashes, pin manually bumped ones
Viktor Szakats [Wed, 4 Feb 2026 13:54:26 +0000 (14:54 +0100)] 
CI: log downloaded file hashes, pin manually bumped ones

To ensure downloaded binaries are the expected ones. Also to document
SHA-256 hashes of all binary packages and source tarballs.

Closes #20517

2 months agobuild: use native file open flags in Windows-specific code
Viktor Szakats [Wed, 4 Feb 2026 13:32:11 +0000 (14:32 +0100)] 
build: use native file open flags in Windows-specific code

To comply with official documentation. Also to make code compile with
`NO_OLDNAMES` (mingw-w64) or `_CRT_DECLARE_NONSTDC_NAMES=0` (MSVC) set.

Ref: #15652

Closes #20516

2 months agomqtt: verify Remaining Length for CONNACK and PUBACK
Daniel Stenberg [Wed, 4 Feb 2026 10:00:56 +0000 (11:00 +0100)] 
mqtt: verify Remaining Length for CONNACK and PUBACK

Verified in test 1132

Closes #20513

2 months agoVULN-DISCLOSURE-POLICY.md: push reports to the web form
Daniel Stenberg [Wed, 4 Feb 2026 10:50:06 +0000 (11:50 +0100)] 
VULN-DISCLOSURE-POLICY.md: push reports to the web form

Closes #20515

2 months agoGHA/windows: set `lookup-only` in build-cache jobs
Viktor Szakats [Wed, 4 Feb 2026 01:40:27 +0000 (02:40 +0100)] 
GHA/windows: set `lookup-only` in build-cache jobs

To save a few seconds by not actually restoring the cache, just checking
if there is cache hit.

Follow-up to fb44e44d929f4e8eb140e5e1c7bd3a7f4d0e7d58 #20456

Closes #20512

2 months agobuild: move curl stat struct type to the curlx namespace
Viktor Szakats [Tue, 3 Feb 2026 14:06:07 +0000 (15:06 +0100)] 
build: move curl stat struct type to the curlx namespace

To match surrounding curlx symbols and functions.

Follow-up to a84b041281463315d3f8723febc97be1147964f4 #20496

Closes #20508

2 months agoimap: add a check for Curl_meta_get()
Daniel Stenberg [Tue, 3 Feb 2026 16:11:04 +0000 (17:11 +0100)] 
imap: add a check for Curl_meta_get()

It should not return NULL, but if it does we need to bail out. Like we
do elsewhere.a

Found by CodeSonar.
Closes #20510