]> git.ipfire.org Git - thirdparty/curl.git/commit
tidy-up: prefer `return` over `exit()`, fix fallouts
authorViktor Szakats <commit@vsz.me>
Thu, 27 Feb 2025 10:32:43 +0000 (11:32 +0100)
committerViktor Szakats <commit@vsz.me>
Fri, 28 Feb 2025 12:11:41 +0000 (13:11 +0100)
commit08c7c937dc0dbd1f92f73360e5d8b2bb2ee6afa8
treecb080c4ae67182d142f2d55b690d9b9f4e0d053e
parent2e585f564004e473b0163092fb687e051cec14ec
tidy-up: prefer `return` over `exit()`, fix fallouts

To avoid breaking the control flow and align to majority of code
already using `return`.

`exit()` has the side-effect of suppressing leak detection in cases.
Fix fallouts detected after switching to `return`.

- configure:
  - fix `getaddrinfo` run test to call `freeaddrinfo()` to pacify ASAN,
    and call `WSACleanup()` to deinit winsock2.
  - fix `getifaddrs` run test to call `freeifaddrs()` to pacify ASAN.
- tests/server:
  - setup `atexit(win32_cleanup)` via `win32_init()`.
  - return 2 instead of 1 on winsock2 init failures.
  - sws: goto cleanup instead of `exit()` in `http_connect()`.
    Follow-up to 02dfe7193704817184b522888ffa926e6b73f648 #7235
- tests/client/http:
  - cleanup memory to pacify ASAN in `h2-upgrade-extreme`,
    `tls-session-reuse`.
- examples:
  - block_ip: fix memory leak reported by CI.
  - http2-upload: avoid handle leaks.

Untouched `exit()` calls, made from callbacks:
- docs/examples: ephiperfifo.c, ghiper.c, hiperfifo.c
- tests/libtest: lib582.c, lib655.c, lib670.c
- tests/server: tftpd.c

Closes #16507
22 files changed:
docs/examples/block_ip.c
docs/examples/chkspeed.c
docs/examples/cookie_interface.c
docs/examples/htmltitle.cpp
docs/examples/http2-download.c
docs/examples/http2-upload.c
m4/curl-compilers.m4
m4/curl-functions.m4
packages/vms/report_openssl_version.c
tests/http/clients/h2-pausing.c
tests/http/clients/h2-upgrade-extreme.c
tests/http/clients/tls-session-reuse.c
tests/http/clients/upload-pausing.c
tests/server/mqttd.c
tests/server/resolve.c
tests/server/rtspd.c
tests/server/sockfilt.c
tests/server/socksd.c
tests/server/sws.c
tests/server/tftpd.c
tests/server/util.c
tests/server/util.h