Commit graph

173 commits

Author SHA1 Message Date
Viktor Szakats
3baaad2941
ech_tests.sh: replace "pres" with "res" 2025-07-21 15:20:41 +02:00
Viktor Szakats
9f99d6a913
typos.toml drop exceptions means for packages/*, now excluded by dir 2025-07-21 15:20:40 +02:00
Viktor Szakats
2b8d63421f
runner.pm: rename variables to avoid an exception 2025-07-21 15:20:40 +02:00
Viktor Szakats
3a83bb1158
typos exclude packages/* 2025-07-21 15:20:40 +02:00
Viktor Szakats
2ffdf12c61
lib3026.c: rename variable to avoid spelling exceptions 2025-07-21 15:20:40 +02:00
Viktor Szakats
a8cf4d3842
redact word in example causing spellcheck hits 2 2025-07-21 15:20:40 +02:00
Viktor Szakats
1412454169
redact word in example causing spellcheck hits 2025-07-21 15:20:40 +02:00
Viktor Szakats
9de25ee030
adddocsref.pl: rename variable to avoid spelling exceptions 2025-07-21 15:20:40 +02:00
Viktor Szakats
c79ed59e36
runner.pm: rename variable to avoid spelling exceptions 2025-07-21 15:20:40 +02:00
Viktor Szakats
cbcc8bb410
lib1560: replace word in test to pass spellcheck 2025-07-21 15:20:40 +02:00
Viktor Szakats
e135677249
reword a comment to avoid spelling exception 2025-07-21 15:20:40 +02:00
Viktor Szakats
3e45ff807e
ech_tests.sh rename variable in docs to avoid exclusion 2025-07-21 15:20:40 +02:00
Viktor Szakats
4bf3b2c573
smbserver.py rename variable in docs to avoid exclusion 2025-07-21 15:20:40 +02:00
Viktor Szakats
5f5139e5ac
rename variable in docs to avoid exclusion 2025-07-21 15:20:40 +02:00
Viktor Szakats
3ac6df7f7c
test1173.pl: rename variable to avoid type hit 2025-07-21 15:20:40 +02:00
Viktor Szakats
2bf9c4f247
typos: move exclusiont to config, after finding the --force-exclude option 2025-07-21 15:20:40 +02:00
Viktor Szakats
0eec37c17c
typos: fixup
Apparently regexps do not work as expected.
Also seems to pick up some implicit rule from the local machine,
but found no option to make the hidden magic visible.
2025-07-21 15:20:40 +02:00
Viktor Szakats
3177e88f37
typos: hard to say what is going on, but now it picks up implicit rules from somewhere
on the local machine.
2025-07-21 15:20:40 +02:00
Viktor Szakats
4c8a47fb24
typos tweak 1 2025-07-21 15:20:40 +02:00
Viktor Szakats
b65552f294
drop typos exception 2025-07-21 15:20:40 +02:00
Viktor Szakats
bf48b89954
rename indx var to idx, drop exception 2025-07-21 15:20:40 +02:00
Viktor Szakats
7cdd186798
avoid exceptions by rename vars in getpart.c 2025-07-21 15:20:40 +02:00
Viktor Szakats
cb056a7ee1
rename variable, drop exception 2025-07-21 15:20:40 +02:00
Viktor Szakats
6f899a738f
move typos version back to GHA 2025-07-21 15:20:40 +02:00
Viktor Szakats
bc4fa842c1
move codespell version back to GHA 2025-07-21 15:20:39 +02:00
Viktor Szakats
d2a801d82f
move typos to a script 2025-07-21 15:20:39 +02:00
Viktor Szakats
7f4e2ea9f9
move codespell to a script 2025-07-21 15:20:39 +02:00
Viktor Szakats
70e4cdd6e5
cleanup typos exceptions, ignore all 2-3-letter words 2025-07-21 15:20:39 +02:00
Viktor Szakats
7029c0a364
try typos 2025-07-21 15:20:39 +02:00
Viktor Szakats
cbd1baf595
add exceptions 2025-07-21 15:20:39 +02:00
Viktor Szakats
bba602053a
codespell-ignore.txt sort 2025-07-21 15:20:39 +02:00
Stefan Eissing
51f933801e
scorecard: flame graphs and documentation
Add `--flame` option to scorecard.py for generating flame graphs.
Add documentation in docs/internal/SCORECARD.md on how to use this.

Closes #17792
2025-07-07 09:04:22 +02:00
Daniel Stenberg
a3272c526c
GHA: make the spacecheck say line number for trailing space errors
As it can be quite confusing and frustrating without it.

Closes #17777
2025-06-29 16:43:41 +02:00
Viktor Szakats
3ea0f71ffa
build: stop checking for sys/stat.h
It has been used unconditionally in `src` and `tests` since at least
2011-09-19 via fdecb56cbf. There are
earlier unguarded references in `tests`.

Also de-duplicate to include it just once.

Ref: https://github.com/curl/curl/pull/17717#issuecomment-2996631026

Closes #17724
2025-06-24 09:44:28 +02:00
Viktor Szakats
17a669426f
CI: fix zizmor 1.9.0 warnings, shellcheck verify CI shell code, fix fallouts
zizmor 1.9.0 effectively bans using GHA macros within shell script
snippets. Rework them to pass GHA macro values via envs and use those
envs in shell snippets. `${{ env.* }}` macros could be converted
to native env references after making their names shell-compatible.

Envs and shell commands can no longer be used in GHA macro values. Most
cases could be fixed by using literals. Passing quoted values with
spaces combined with other args also doesn't work anymore. This was
replaced by passing them separately.

Despite the initial complications, avoiding GHA macros in scripts does
seems to make the CI code reasonable cleaner. It also makes it possible
to analyze the scripts with shellcheck, finding subtle issues that went
unnoticed till now.

Also:
- un-ignore and fix three existing zizmor `template-injection` issues.
- add script to extract and shellcheck all shell code stored within GHA
  and Circle CI YAML files.
- add CI job to run this script.
- fix shellcheck issues discovered.
- fix minor differences between cmake and autotools FreeBSD jobs.
- merge cmake/autotools FreeBSD jobs to avoid developing unwanted
  differences again.
- fix/sync quote use across shell code.
- replace `$HOME` with `~` or literal where it made sense.
- replace most `brew --prefix` with literals.
- move all curl install tests to the `curl-install*` prefix.
- add missing curl install tests to cygwin/msys/mingw/*bsd.
- pipe to `tar` instead of storing downloads on disk.
- drop unnecessary `PKG_CONFIG_PATH` when building nghttp3.

Ref: https://github.com/curl/curl/actions/runs/15461461371/job/43523546041
Ref: https://github.com/zizmorcore/zizmor/releases/tag/v1.9.0

Follow-up to e522f47986 #17278

Closes #17537
2025-06-06 21:30:43 +02:00
Daniel Stenberg
b13a7a3ec4
misc: we write *an* IPv6 address
Add it as a "bad word"

Closes #17484
2025-05-30 07:53:31 +02:00
Viktor Szakats
828f998493
spacecheck.pl: drop more exceptions
- replace ß (scharfes S) with links.
- replace § (section sign) with links.
- replace 🙏 emoji with `🙏`.
 Supported by GitHub, Forgejo/Gitea and most likely GitLab.
- docs/libcurl/curl_mprintf.md: replace Unicode ± with `{+|-}`.
- docs/CIPHERS.md: URL encode Unicode in URLs.
- lib1560: use hex encoding in `räksmörgås.se`.
- unit1307: use hex encoding in `Lindmätarv`.
- drop LATIN SMALL LETTER A WITH ACUTE exception.
  No longer appears in tests.

This leaves the single character exception: `ö`
And file exceptions holding contributor names.

Follow-up to 9243ed59b3 #17329
Follow-up to 838dc53bb7 #17247

Closes #17335
2025-05-13 16:01:07 +02:00
Viktor Szakats
e270881a5d
lib1560: use hex notation, drop non-ASCII exception
Closes #17334
2025-05-13 11:04:43 +02:00
Daniel Stenberg
11cad7bf32
tests: provide all non-ascii data hex encoded
- make the scanner not whitelist anything for test cases making
  everything non-ascii forced to be hex encoded

- update all tests using non-ascii bytes to use %hex[] sequences

Closes #17331
2025-05-13 10:32:35 +02:00
Viktor Szakats
9243ed59b3
spacecheck.pl: verify tests/data/test* for non-ASCII chars
Exclude test data files (4 of them) based on existing feature tags:
`codeset-utf8` and `Unicode`.

Add the new keyword `non-ascii` to mark remaining exceptions (9 files).

Follow-up to 838dc53bb7 #17247

Closes #17329
2025-05-13 08:47:47 +02:00
Viktor Szakats
838dc53bb7
spacecheck.pl: check for non-ASCII chars, fix fallouts
Reported-by: James Fuller
Assisted-by: Dan Fandrich

Closes #17247
2025-05-04 17:26:11 +02:00
Daniel Stenberg
b1eebdf46a
docs/libcurl: fix type and prototype problems in examples
Found by enabling the typechecks when compiling them with
verify-examples.pl

Closes #17231
2025-04-29 22:44:05 +02:00
Viktor Szakats
3fcddc835c
scripts: fix perl indentation, whitespace, semicolons
Ref: #17116

Closes #17209
2025-04-29 19:35:55 +02:00
Daniel Stenberg
9f57c2ea95
VULN-DISCLOSURE-POLICY: use of weak algos
Not necessarily security problems.

Closes #17220
2025-04-29 13:11:07 +02:00
Viktor Szakats
4a15cfc99f
autotools: detect wolfSSL_set_quic_use_legacy_code like cmake does
Cherry-picked from #17082

Closes #17172
2025-04-24 19:46:28 +02:00
Viktor Szakats
4bfc379b90
cmake: tidy up and document feature detections in dependencies
- update text on dependency feature detection variables, and move it
  to its own section in `docs/INSTALL-CMAKE.md`.
  Ref: #17032 (Discussion)

- tidy up descriptions/comments, alpha-sort.

- move comment to its own section in `docs/INSTALL-CMAKE.md`.

- split `HAVE_SSL_SET_QUIC_USE_LEGACY_CODEPOINT` to distinct names for
  each TLS backend API. To make the names more stable and to sync them
  with autotools.
  Follow-up to 07cc50f8eb #17018
  Follow-up to 342a654ef3 #15873

- drop redundant condition while detecting QUICTLS API.
  Follow-up to 07cc50f8eb #17018

- add config-comparison exception for `HAVE_SSL_SET_QUIC_TLS_CBS`.
  Follow-up to 5eefdd71a3 #17027

- detect `wolfSSL_get_peer_certificate` like autotools does.

- detect `wolfSSL_UseALPN` like autotools does.

Closes #17082
2025-04-24 19:46:27 +02:00
Daniel Stenberg
23bed347b3
wcurl: import v2025.04.20 script + docs
Build/install the man page. Install the script.

This an "import" rather than just adding the script into the release tarball
with maketgz to make sure the tarball build is completely reproducible.

wcurl development, issues etc is still to be done at
https://github.com/curl/wcurl

Assisted-by: Viktor Szakats
Assisted-by: Samuel Henrique

Closes #17035
2025-04-21 11:06:44 +02:00
Stefan Eissing
909af1a43b
multi: do transfer book keeping using mid
Change multi's book keeping of transfers to no longer use lists, but a
special table and bitsets for unsigned int values.

`multi-xfers` is the `uint_tbl` where `multi_add_handle()` inserts a new
transfer which assigns it a unique identifier `mid`. Use bitsets to keep
track of transfers that are in state "process" or "pending" or
"msgsent".

Use sparse bitsets to replace `conn->easyq` and event handlings tracking
of transfers per socket. Instead of pointers, keep the mids involved.

Provide base data structures and document them in docs/internal:
* `uint_tbl`: a table of transfers with `mid` as lookup key,
   handing out a mid for adds between 0 - capacity.
* `uint_bset`: a bitset keeping unsigned ints from 0 - capacity.
* `uint_spbset`: a sparse bitset for keeping a small number of
  unsigned int values
* `uint_hash`: for associating `mid`s with a pointer.

This makes the `mid` the recommended way to refer to transfers inside
the same multi without risk of running into a UAF.

Modifying table and bitsets is safe while iterating over them. Overall
memory requirements are lower as with the double linked list apprach.

Closes #16761
2025-04-17 17:28:38 +02:00
Viktor Szakats
e6ce46ea03
scripts: drop unused import, formatting
Ref: #16840
Closes #17077
2025-04-16 23:07:32 +02:00
Daniel Stenberg
960984263f
docs/libcurl: make examples build with picky compiler options
Found by improving verify-examples.pl:

- Operate directly on markdown files to remove the need to render nroff files
  first.

- Add -Wall as a compiler option to find more issues

Closes #17028
2025-04-11 15:23:51 +02:00