Commit graph

35676 commits

Author SHA1 Message Date
Viktor Szakats
921219caa3
verify-examples.pl: enable warnings, fix them 2025-07-27 22:23:15 +02:00
Viktor Szakats
7070a7ea14
drop FATAL, do it separate PR 2025-07-27 22:23:15 +02:00
Viktor Szakats
f63d275137
test1140.pl: try fixing warning
```
Possible precedence issue with control flow operator (exit) at ../../tests/test1140.pl line 119.
```
https://github.com/curl/curl/actions/runs/16208581789/job/45764191709?pr=17877#step:16:1886
2025-07-27 22:23:15 +02:00
Viktor Szakats
1e65c5894b
test1175.pl formatting 2025-07-27 22:23:15 +02:00
Viktor Szakats
34472f7dc1
test1275.pl: initialize $errors 2025-07-27 22:23:15 +02:00
Viktor Szakats
0f7a83d7ee
test1707.pl: initialize $error 2025-07-27 22:23:15 +02:00
Viktor Szakats
a0bbb9776b
test1488.pl: initialize $error 2025-07-27 22:23:15 +02:00
Viktor Szakats
6c0baa5bf3
test1488.pl test971.pl fixup 2025-07-27 22:23:15 +02:00
Viktor Szakats
5b53ab2b0b
allversions.pm: text in comment 2025-07-27 22:23:15 +02:00
Viktor Szakats
c5b87ba164
test1013.pl: fix warning
```
Global symbol "@curl" requires explicit package name (did you forget to declare "my @curl"?) at ./test1013.pl line 47.
Global symbol "@curl" requires explicit package name (did you forget to declare "my @curl"?) at ./test1013.pl line 61.
Global symbol "@curl" requires explicit package name (did you forget to declare "my @curl"?) at ./test1013.pl line 61.
Global symbol "@curl" requires explicit package name (did you forget to declare "my @curl"?) at ./test1013.pl line 65.
```
2025-07-27 22:23:15 +02:00
Viktor Szakats
fea9610e47
test307.pl: silence warning
```
Scalar value @ARGV[0] better written as $ARGV[0] at ./test307.pl line 33.
```
2025-07-27 22:23:15 +02:00
Viktor Szakats
1c89117398
mk-lib1521.pl: fix warning 2025-07-27 22:23:15 +02:00
Viktor Szakats
28957cb37c
libtests: enable strict/warnings, fix formatting 2025-07-27 22:23:15 +02:00
Viktor Szakats
364c5442c5
test*: make all Perl warnings fatal 2025-07-27 22:23:15 +02:00
Viktor Szakats
13afb1bf10
extract-unit-protos: enable strict/warnings, fix them 2025-07-27 22:23:14 +02:00
Viktor Szakats
c052bd176f
mkhelp.pl: enable strict/warnings, fix them 2025-07-27 22:23:14 +02:00
Viktor Szakats
9bdd0db192
mk-file-embed.pl: enable strict/warnings, fix them 2025-07-27 22:23:14 +02:00
Viktor Szakats
bc1e0cf561
test971.pl: enable strict/warnings, fix them 2025-07-27 22:23:14 +02:00
Viktor Szakats
31e8d11aee
test1488.pl: enable strict, fix warning 2025-07-27 22:23:14 +02:00
Viktor Szakats
8323768234
test1276.pl: enable strict/warnings, fix them 2025-07-27 22:23:14 +02:00
Viktor Szakats
5bd42f479f
test1275.pl: enable strict/warnings, fix them 2025-07-27 22:23:14 +02:00
Viktor Szakats
d541cd3999
test1140.pl: enable strict/warnings, fix them 2025-07-27 22:23:14 +02:00
Viktor Szakats
d672bbd876
memanalyze.pl: try fixing a warning
```
Use of uninitialized value $sizeataddr{"5600c1703d38"} in numeric gt (>) at ../../tests/memanalyze.pl line 178, <$fileh> line 1.
Use of uninitialized value $sizeataddr{"5600c1703d38"} in numeric gt (>) at ../../tests/memanalyze.pl line 178, <$fileh> line 1.
```
https://github.com/curl/curl/actions/runs/16178889943/job/45670573824?pr=17877#step:39:163
2025-07-27 22:23:14 +02:00
Viktor Szakats
f01ca10aa3
runtests.pl: try fixing unitialized $allocs
```
Use of uninitialized value $allocs in numeric gt (>) at ../../tests/runtests.pl line 1729.
```
https://github.com/curl/curl/actions/runs/16178889943/job/45670573824?pr=17877#step:39:165
2025-07-27 22:23:14 +02:00
Viktor Szakats
d2c0b6b2d6
memanalyze.pl: fix warnings 2025-07-27 22:23:14 +02:00
Viktor Szakats
6c1879abb6
enable strict where missing cleanup 2025-07-27 22:23:14 +02:00
Viktor Szakats
9ba943e38e
enable strict where missing 2025-07-27 22:23:14 +02:00
Viktor Szakats
612557e022
bump warnings to errors 2025-07-27 22:23:14 +02:00
Viktor Szakats
9d7e97fe4d
enable warnings where missing 2025-07-27 22:23:13 +02:00
Viktor Szakats
08f97cbf5c
doh: rename symbols to avoid collision with mingw-w64 headers
Collision happens when building with mingw-w64 v3 or v2 while targeting
Vista or newer. `iphlpapi.h` includes `windns.h` in this case, which
defines macros named `DNS_TYPE_*`, colliding with curl doh enums.

The issue was fixed in mingw-w64 v4:
ea95d55e33

Fixes:
```
lib/doh.h:54:3: error: expected identifier before numeric constant
   DNS_TYPE_A = 1,
   ^
```
Ref: https://github.com/curl/curl/actions/runs/16551209676/job/46806303365?pr=18009#step:10:17

This workaround seems harmless and generally good practice, but
another option is to require mingw-w64 v4.

Ref: #18009
Closes #18041
2025-07-27 18:54:00 +02:00
Stefan Eissing
6080143f9d
multi: replace remaining EXPIRE_RUN_NOW
Remove EXPIRE_RUN_NOW completely. Replace the remaining use of
EXPIRE_RUN_NOW with marking transfers as dirty.

Closes #17883
2025-07-27 18:40:41 +02:00
David Zhuang
0122cc17f1
multi: don't insert a node into the splay tree twice
Closes #18005
2025-07-27 18:33:08 +02:00
Daniel Stenberg
9f9fecc724
tool_getparam: add support for --longopt=value
If the long option name ends with an equals sign (`=`), the argument is
the text following on its right side.

This makes the command line parser accept this common style in addition
to the existing way to accept option arguments more similar to how other
command line tools do.

Example: `curl --user-agent=curl-2000 https://example.com/`

Change a few existing tests to use this syntax: 206, 1333, 1335, 1442

Closes #17789
2025-07-27 18:29:01 +02:00
Daniel Stenberg
378713deb2
netrc: use the NETRC environment variable (first) if set
Add test 755 to verify.

Proposed-by: Berthin Torres Callañaupa
URL: https://curl.se/mail/lib-2025-06/0015.html

Closes #17712
2025-07-27 18:26:43 +02:00
Daniel Stenberg
9d8998c994
tls: make default TLS version be minimum 1.2
This still allows users to explictily ask for 1.0 or 1.1 as the minimum
version. If the TLS library allows it.

Starting with this change, the CURL_SSLVERSION_DEFAULT value is no
longer used as minimum version when the TLS backend are called.

This also makes curl set the minimum version to 1.2 independently of
libcurl for the rare case where a newer curl tool would use an older
libcurl.

URL: https://curl.se/mail/lib-2025-07/0007.html
Assisted-by: Stefan Eissing
Closes #17894
2025-07-27 18:23:04 +02:00
Daniel Stenberg
0e022d4241
RELEASE-NOTES: synced
Working towards 8.16.0 now
2025-07-27 18:03:13 +02:00
Daniel Stenberg
91138b014d
vquic: drop msh3
It has never been properly functional in curl while there are several
alternatives that are.

Closes #17729
2025-07-27 17:57:17 +02:00
Viktor Szakats
c4430c542a
curl_addrinfo: drop workaround for old-mingw
Follow-up to a3585c9576 #15543

Closes #18038
2025-07-27 11:32:27 +02:00
Viktor Szakats
2f80a9b253
cf-https-connect: delete unused declaration
Closes #18036
2025-07-27 11:04:11 +02:00
Viktor Szakats
9b13453476
GHA/windows: add minimal mingw-w64 v3 job
Also document mingw-w64 versions for dl-mingw jobs.

Cherry-picked from #18010
Closes #18037
2025-07-27 11:04:11 +02:00
Viktor Szakats
4072315990
GHA: skip building certs, build more tests, one minor fix
- GHA/windows: disable building certs in the MSVC job that's not running
  tests. Saves 4-5 seconds for MSVC, makes logs shorter for the rests.

- GHA/linux: build tests in two more jobs (LTO, CM Rustls), 5s each.

- GHA/linux: skip 'install test prereqs' for `skiprun` jobs.
  (there were no such jobs before this patch.)

Closes #18034
2025-07-27 11:04:11 +02:00
Viktor Szakats
73d52567a0
DEPRECATE.md: drop support for Windows XP/2003
Dropped from curl-for-win on August 28, 2022:
6976612160

https://en.wikipedia.org/wiki/Windows_XP
https://en.wikipedia.org/wiki/Windows_Server_2003

Ref: #17985
Closes #18016
2025-07-26 13:52:19 +02:00
renovate[bot]
8a5d1d2280
GHA: Update dependency awslabs/aws-lc to v1.56.0
Closes #18006
2025-07-26 13:51:22 +02:00
renovate[bot]
b4c3e5677b
GHA: update dependency ngtcp2/nghttp3 to v1.11.0
Closes #18021
2025-07-26 13:48:37 +02:00
Viktor Szakats
054f69ffb7
http: silence -Warray-bounds with gcc 13+
This became an issue after promoting curl compiler warnings to errors in
curl-for-win. The code is correct. It over-allocates a struct to store
variable sized data past its length. Similar code is present in
`lib/smb.c`, silenced earlier.

Seen in linux-musl-debian-testing-gcc curl-for-win builds, gcc 14.2.0,
RISC-V (but not amd64/aarch64), unity, debian:testing (trixie):

musl:
```
In file included from /curl/_r64-linux-musl-bld/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c:184:
In function 'Curl_http_req_make',
    inlined from 'Curl_http_proxy_create_CONNECT' at /curl/lib/http_proxy.c:252:12:
/curl/lib/http.c:4373:3: error: 'memcpy' offset [137, 142] from the object at 'req' is out of the bounds of
referenced subobject 'method' with type 'char[1]' at offset 136 [-Werror=array-bounds=]
 4373 |   memcpy(req->method, method, m_len);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /curl/lib/urldata.h:182,
                 from /curl/lib/altsvc.c:32,
                 from /curl/_r64-linux-musl-bld/lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c:4:
/curl/lib/http.h: In function 'Curl_http_proxy_create_CONNECT':
/curl/lib/http.h:230:8: note: subobject 'method' declared here
  230 |   char method[1];
      |        ^~~~~~
```
Ref: https://github.com/curl/curl/actions/runs/16527769182/job/46745369844?pr=18025#step:3:5798
Ref: https://github.com/curl/curl-for-win/actions/runs/16525969694/job/46739239206#step:3:5958

glibc (with unity batch):
```
In file included from /usr/riscv64-linux-gnu/include/string.h:548,
                 from /curl/lib/curl_setup_once.h:33,
                 from /curl/lib/curl_setup.h:823,
                 from /curl/lib/http.c:25,
                 from /curl/_r64-linux-gnu-bld/lib/CMakeFiles/libcurl_object.dir/Unity/unity_2_c.c:4:
In function 'memcpy',
    inlined from 'Curl_http_req_make' at /curl/lib/http.c:4373:3,
    inlined from 'Curl_http_proxy_create_CONNECT' at /curl/lib/http_proxy.c:252:12:
/usr/riscv64-linux-gnu/include/bits/string_fortified.h:29:10: error: '__builtin_memcpy' offset [137, 142]
from the object at 'req' is out of the bounds of
referenced subobject 'method' with type 'char[1]' at offset 136 [-Werror=array-bounds=]
   29 |   return __builtin___memcpy_chk (__dest, __src, __len,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   30 |                                  __glibc_objsize0 (__dest));
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /curl/lib/urldata.h:182,
                 from /curl/lib/http.c:50:
/curl/lib/http.h: In function 'Curl_http_proxy_create_CONNECT':
/curl/lib/http.h:230:8: note: subobject 'method' declared here
  230 |   char method[1];
      |        ^~~~~~
```
Ref: https://github.com/curl/curl-for-win/actions/runs/16538174468/job/46775731055#step:3:5936

Ref: f45df099f3
Follow-up to 14f26f5ee7 #16187
Cherry-picked from #18025
Closes #18030
2025-07-26 13:42:10 +02:00
Viktor Szakats
99500660af
GHA/http3-linux: bump to ngtcp2 1.14.0, fix local build
ngtcp2 1.14.0 added crypto dependencies to the ngtcp2 crypto `.pc`
files. It broke GHA builds, because how curl's `configure` is setting up
the per-dependency custom prefixes for pkg-config.

`configure` uses `PKG_CONFIG_LIBDIR` to set per-dependency custom
prefixes, as specified via `--with-ngtcp2=<custom-dir>`. In classic
`pkg-config` this overrides any previously configured `PKG_CONFIG_DIR`.
This in turn break detecting transitive pkg-config modules unless they
are found at locations `pkg-config` is searching by default. This
doesn't affect `pkgconf` because it appends `PKG_CONFIG_LIBDIR` to
the custom `PKG_CONFIG_DIR`, according to its man page.

It may make sense to fix this in`acinclude.m4`, to make sure to honor
global custom pkg-config paths while detecting components at custom
locations, regardless of pkg-config implementation. But this PR doesn't
do this.

Instead it drops the ngtcp2 custom path and lets detection rely on
`PKG_CONFIG_DIR` that's already set up for all custom-built dependencies
anyway.

Also:
- fix `openssl-quic` job to use the custom-built nghttp2 (like other
  jobs do) instead of the system default.
- configure nghttp3 via `PKG_CONFIG_DIR` in the `openssl-quic` job,
  to sync with other jobs. And drop `--with-nghttp3` option.

cb9b1a4c4e/acinclude.m4 (L1376-L1381)
https://manpages.debian.org/unstable/pkg-config/pkg-config.1.en.html
https://man.archlinux.org/man/pkgconf.1.en

Ref: https://github.com/ngtcp2/ngtcp2/pull/1689#issuecomment-3121576712
Closes #18022
Closes #18028
2025-07-26 13:42:10 +02:00
Viktor Szakats
cb9b1a4c4e
curl_ossl: extend callback table for nghttp3 1.11.0
```
../../lib/vquic/curl_osslq.c:1091:1: error: missing initializer for field 'recv_origin' of 'nghttp3_callbacks' [-Werror=missing-field-initializers]
 1091 | };
      | ^
In file included from ../../lib/vquic/curl_osslq.c:33:
/home/runner/nghttp3/build/include/nghttp3/nghttp3.h:2082:23: note: 'recv_origin' declared here
 2082 |   nghttp3_recv_origin recv_origin;
      |                       ^~~~~~~~~~~
```
Ref: https://github.com/curl/curl/actions/runs/16527325587/job/46743893924?pr=18021#step:18:35

Follow-up to 1055144063 #18019

Closes #18026
2025-07-25 20:15:04 +02:00
Viktor Szakats
1055144063
curl_ngtcp2: extend callback tables for nghttp3 1.11.0 and ngtcp2 1.14.0
An emergency update to initialize callbacks to NULL.

May need further updates, e.g. to provide the recommended random
generator callback for nghttp3.

Fixing potential crashes at runtime in curl-for-win 8.15.0_3, and these
build warnings:
```
/home/appveyor/projects/curl-for-win/curl/lib/vquic/curl_ngtcp2.c:836:1:
warning: missing field 'begin_path_validation' initializer [-Wmissing-field-initializers]
  836 | };
      | ^
/home/appveyor/projects/curl-for-win/curl/lib/vquic/curl_ngtcp2.c:1186:1:
warning: missing field 'recv_origin' initializer [-Wmissing-field-initializers]
 1186 | };
      | ^
2 warnings generated.
```
Ref: https://ci.appveyor.com/project/curlorg/curl-for-win/builds/52462852#L14821

Also causing all `GHA/curl-for-win` jobs to fail:
https://github.com/curl/curl/actions/runs/16523625082?pr=18010

Ref: https://github.com/ngtcp2/nghttp3/releases/tag/v1.11.0
Ref: https://github.com/ngtcp2/ngtcp2/releases/tag/v1.14.0
Ref: ff788c81e4

Closes #18019
2025-07-25 17:39:58 +02:00
Viktor Szakats
4d977fe552
tidy-up: more whitespace/indent, comments
Also a couple of minor formatting updates in the root `CMakeLists.txt`.
One swap to `#ifdef`.

Closes #17929
2025-07-25 11:47:51 +02:00
Viktor Szakats
63a8167f3e
CODE_STYLE: sync with recent checksrc.pl updates
Follow-up to ef2ccf862f #17840
Follow-up to f9656445ba #17764

Closes #18015
2025-07-25 03:10:01 +02:00