curl/src
Viktor Szakats bf7375ecc5
build: avoid overriding system symbols for socket functions
Before this patch `accept4()`, `socket()`, `socketpair()`, `send()` and
`recv()` system symbols were remapped via macros, using the same name,
to local curl debug wrappers. This patch replaces these overrides by
introducing curl-namespaced macros that map either to the system symbols
or to their curl debug wrappers in `CURLDEBUG` (TrackMemory) builds.

This follows a patch that implemented the same for `accept()`.

The old method required tricks to make these redefines work in unity
builds, and avoid them interfering with system headers. These tricks
did not work for system symbols implemented as macros.

The new method allows to setup these mappings once, without interfering
with system headers, upstream macros, or unity builds. It makes builds
more robust.

Also:
- checksrc: ban all mapped functions.
- docs/examples: tidy up checksrc rules.

Follow-up to 9863599d69 #18502
Follow-up to 3bb5e58c10 #17827

Closes #18503
2025-09-20 13:44:59 +02:00
..
.checksrc checksrc: reduce exceptions, apply again to curlx 2025-06-27 17:33:35 +02:00
.gitignore rtmp: remove no longer used proto member 2025-05-08 10:24:19 +02:00
CMakeLists.txt cmake: add CURL_CODE_COVERAGE option 2025-09-20 01:28:35 +02:00
config2setopts.c tool: move the error buffer to the per transfer struct 2025-09-01 08:52:57 +02:00
config2setopts.h curl: remove the global argument from many functions 2025-07-10 23:28:31 +02:00
curl.rc windows: drop code and curl manifest targeting W2K and older 2025-02-24 21:00:31 +01:00
curlinfo.c build: address some -Weverything warnings, update picky warnings 2025-09-20 10:16:15 +02:00
Makefile.am clang-tidy: disable clang-analyzer-security.ArrayBound 2025-08-29 03:07:42 +02:00
Makefile.inc build: fix libcurltool with cmake and tunits, related tidy-ups 2025-06-25 09:57:06 +02:00
mk-file-embed.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
mkhelp.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
slist_wc.c tidy-up: replace <memdebug.h> with "memdebug.h" (src, units) 2025-06-24 09:44:28 +02:00
slist_wc.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
terminal.c tidy-up: whitespace 2025-09-15 15:00:11 +02:00
terminal.h curl: make warnings and other messages aware of terminal width 2024-05-28 23:12:32 +02:00
tool_bname.c tidy-up: replace <memdebug.h> with "memdebug.h" (src, units) 2025-06-24 09:44:28 +02:00
tool_bname.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
tool_cb_dbg.c tidy-up: drop stray "unused" comments 2025-09-03 16:31:16 +02:00
tool_cb_dbg.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
tool_cb_hdr.c tool_cb_hdr: size is always 1 2025-09-20 12:06:27 +02:00
tool_cb_hdr.h tool_cb_hrd: remove global pointer from 'struct HdrCbData' 2025-08-05 15:47:56 +02:00
tool_cb_prg.c tidy-up: replace <memdebug.h> with "memdebug.h" (src, units) 2025-06-24 09:44:28 +02:00
tool_cb_prg.h curltime: use libcurl time functions in src and tests/server 2025-03-12 11:33:26 +01:00
tool_cb_rea.c build: avoid overriding system symbols for socket functions 2025-09-20 13:44:59 +02:00
tool_cb_rea.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
tool_cb_see.c tidy-up: replace <memdebug.h> with "memdebug.h" (src, units) 2025-06-24 09:44:28 +02:00
tool_cb_see.h tool: move tool_ftruncate64 to tool_util.c 2024-04-25 09:20:38 +02:00
tool_cb_soc.c build: avoid overriding system symbols for socket functions 2025-09-20 13:44:59 +02:00
tool_cb_soc.h curl: (on linux) add MPTCP support 2024-06-07 10:54:19 +02:00
tool_cb_wrt.c tool_cb_wrt: stop alloc/free for every chunk windows console output 2025-08-11 09:37:29 +02:00
tool_cb_wrt.h copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
tool_cfgable.c tool: fix exponential retry delay 2025-09-18 10:15:54 +02:00
tool_cfgable.h tool: fix exponential retry delay 2025-09-18 10:15:54 +02:00
tool_dirhie.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_dirhie.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_doswin.c build: avoid overriding system symbols for socket functions 2025-09-20 13:44:59 +02:00
tool_doswin.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_easysrc.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_easysrc.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_filetime.c tool_filetime: correct the conditions 2025-09-02 07:50:11 +02:00
tool_filetime.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_findfile.c tidy-up: avoid using the reserved macro namespace 2025-09-20 02:27:06 +02:00
tool_findfile.h windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
tool_formparse.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_formparse.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_getparam.c build: address some -Weverything warnings, update picky warnings 2025-09-20 10:16:15 +02:00
tool_getparam.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_getpass.c tidy-up: move literal to the right side of comparisons 2025-07-27 22:35:17 +02:00
tool_getpass.h code: language cleanup in comments 2024-07-01 22:58:55 +02:00
tool_help.c spelling: file system 2025-08-22 15:53:41 +02:00
tool_help.h curl: fix memory leak when -h is used in config file 2025-05-10 11:16:07 +02:00
tool_helpers.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_helpers.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_hugehelp.h build: drop tool_hugehelp.c.cvs, tidy up macros, drop buildconf.bat 2025-01-26 14:22:49 +01:00
tool_ipfs.c curl: remove first argument from helpf() 2025-08-07 16:55:39 +02:00
tool_ipfs.h ipfs: add options to disable 2024-09-21 12:08:32 +02:00
tool_libinfo.c tidy-up: replace <memdebug.h> with "memdebug.h" (src, units) 2025-06-24 09:44:28 +02:00
tool_libinfo.h tool_getparam: fail --hostpubsha256 if libssh2 is not used 2025-01-28 10:30:40 +01:00
tool_listhelp.c curl: add --follow 2025-08-04 17:12:14 +02:00
tool_main.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_main.h curl: add --parallel-max-host to limit concurrent connections per host 2025-07-31 23:30:40 +02:00
tool_msgs.c curl: remove first argument from helpf() 2025-08-07 16:55:39 +02:00
tool_msgs.h curl: remove first argument from helpf() 2025-08-07 16:55:39 +02:00
tool_operate.c build: address some -Weverything warnings, update picky warnings 2025-09-20 10:16:15 +02:00
tool_operate.h tool: move the error buffer to the per transfer struct 2025-09-01 08:52:57 +02:00
tool_operhlp.c tool_operate: cleanups 2025-08-08 11:43:28 +02:00
tool_operhlp.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_paramhlp.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_paramhlp.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_parsecfg.c tool_parsecfg: use dynbuf for quoted arguments 2025-08-08 18:27:03 +02:00
tool_parsecfg.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_progress.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_progress.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_sdecls.h curl: make the URL indexes 64 bit 2025-07-30 23:13:45 +02:00
tool_setopt.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_setopt.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_setup.h tidy-up: whitespace 2025-07-11 13:32:54 +02:00
tool_ssls.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_ssls.h curl: remove the global argument from many functions 2025-07-10 23:28:31 +02:00
tool_stderr.c curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_stderr.h curl: make global truly global 2025-08-07 10:43:06 +02:00
tool_strdup.c tool: replace three malloc + copy with memdup0 2025-08-05 15:46:51 +02:00
tool_strdup.h tool: replace three malloc + copy with memdup0 2025-08-05 15:46:51 +02:00
tool_urlglob.c urlglob: only accept 255 globs 2025-08-30 22:27:28 +02:00
tool_urlglob.h tool_urlglob: polish, cleanups, improvements 2025-08-06 08:47:53 +02:00
tool_util.c tidy-up: replace <memdebug.h> with "memdebug.h" (src, units) 2025-06-24 09:44:28 +02:00
tool_util.h curltime: use libcurl time functions in src and tests/server 2025-03-12 11:33:26 +01:00
tool_version.h config: rename the OS define to CURL_OS to reduce collision risk 2024-10-30 14:59:54 +01:00
tool_vms.c tidy-up: more whitespace/indent, comments 2025-07-25 11:47:51 +02:00
tool_vms.h tidy-up: more whitespace/indent, comments 2025-07-25 11:47:51 +02:00
tool_writeout.c tool: move the error buffer to the per transfer struct 2025-09-01 08:52:57 +02:00
tool_writeout.h curl: add write-out variable 'tls_earlydata' 2025-02-22 10:02:39 +01:00
tool_writeout_json.c build: drop explicit curlx from hdr paths, refer headers with curlx/ prefix 2025-06-23 17:02:43 +02:00
tool_writeout_json.h curlx: move into to curlx/ 2025-05-07 11:01:15 +02:00
tool_xattr.c tidy-up: replace <memdebug.h> with "memdebug.h" (src, units) 2025-06-24 09:44:28 +02:00
tool_xattr.h tests: always make bundles, adapt build and tests 2025-06-14 21:08:23 +02:00
var.c curl: make global truly global 2025-08-07 10:43:06 +02:00
var.h curl: make global truly global 2025-08-07 10:43:06 +02:00