#
080973dc |
| 28-Oct-2024 |
Daniel Stenberg |
lib: msnprintf tidy-ups doh: avoid an msnprintf() openssl: skip a superfluous return code check Closes #15434
|
#
8403e5a7 |
| 14-Oct-2024 |
Daniel Stenberg |
tests: fix callback signatures to please UndefinedBehaviorSanitizer Make test applications use the correct prototypes for callbacks. Closes #15289
|
#
eed3c8f4 |
| 14-Oct-2024 |
Daniel Stenberg |
curl.h: remove the struct pointer for CURL/CURLSH/CURLM typedefs It makes the callbacks get different signnatures when used from within libcurl vs outside of it by libcurl-using applicat
curl.h: remove the struct pointer for CURL/CURLSH/CURLM typedefs It makes the callbacks get different signnatures when used from within libcurl vs outside of it by libcurl-using applications (such as the libtests) and this triggers UndefinedBehaviorSanitizer errors. Closes #15289
show more ...
|
#
bcec0840 |
| 02-Oct-2024 |
Daniel Stenberg |
lib: use bool/TRUE/FALSE properly booleans should use the type 'bool' and set the value to TRUE/FALSE non-booleans should not be 'bool' and should not set the value to TRUE/FALS
lib: use bool/TRUE/FALSE properly booleans should use the type 'bool' and set the value to TRUE/FALSE non-booleans should not be 'bool' and should not set the value to TRUE/FALSE Closes #15123
show more ...
|
#
fbf5d507 |
| 18-Sep-2024 |
Daniel Stenberg |
lib/src: white space edits to comply better with code style ... as checksrc now finds and complains about these. Closes #14921
|
#
24606191 |
| 07-Sep-2024 |
Daniel Stenberg |
doh: remove redundant checks Pointed out by CodeSonar Closes #14823
|
#
435dd8aa |
| 04-Sep-2024 |
Stefan Eissing |
doh: cleanups Mostly cleanup on identifiers of DoH code. Always use 'Curl_doh_cleanup()' for releasing resources. More concise and telling names (ymmv): * prefix all st
doh: cleanups Mostly cleanup on identifiers of DoH code. Always use 'Curl_doh_cleanup()' for releasing resources. More concise and telling names (ymmv): * prefix all static functions with 'doh_' for unity builds * doh_encode -> doh_req_encode * doh_decode -> doh_resp_decode * struct dohdata -> struct doh_probes * probe's 'serverdoh' -> 'resp_body' * probe's 'dohbuffer' -> 'req_body' * probe's 'headers' -> 'req_hds' * 'dohprobe()' -> doh_run_probe()' * 'DOH_PROBE_SLOTS' -> 'DOH_SLOT_COUNT' * 'DOH_PROBE_SLOT_IPADDR_V4' -> 'DOH_SLOT_IPV4' * 'DOH_PROBE_SLOT_IPADDR_V6' -> 'DOH_SLOT_IPV6' * 'DOH_PROBE_SLOT_HTTPS' -> 'DOH_SLOT_HTTPS_RR' Closes #14783
show more ...
|
#
4ff04615 |
| 02-Sep-2024 |
Daniel Stenberg |
lib: use FMT_ as prefix instead of CURL_FORMAT_ For printf format defines used internally. Makes the code slighly easier to read. Closes #14764
|
#
22d292b3 |
| 12-Aug-2024 |
Stefan Eissing |
urldata: introduce `data->mid`, a unique identifier inside a multi `data->id` is unique in *most* situations, but not in all. If a libcurl application uses more than one connection cache
urldata: introduce `data->mid`, a unique identifier inside a multi `data->id` is unique in *most* situations, but not in all. If a libcurl application uses more than one connection cache, they will overlap. This is a rare situations, but libcurl apps do crazy things. However, for informative things, like tracing, `data->id` is superior, since it assigns new ids in curl's serial curl_easy_perform() use. Introduce `data->mid` which is a unique identifer inside one multi instance, assigned on multi_add_handle() and cleared on multi_remove_handle(). Use the `mid` in DoH operations and also in h2/h3 stream hashes. Reported-by: 罗朝辉 Fixes #14414 Closes #14499
show more ...
|
#
5a9262a3 |
| 12-Jul-2024 |
Stefan Eissing |
url: dns_entry related improvements Replace Curl_resolv_unlock() with Curl_resolv_unlink(): -replace inuse member with refcount in Curl_dns_entry - pass Curl_dns_entry ** t
url: dns_entry related improvements Replace Curl_resolv_unlock() with Curl_resolv_unlink(): -replace inuse member with refcount in Curl_dns_entry - pass Curl_dns_entry ** to unlink, so it gets always cleared - solve potential (but unlikley) UAF in FTP's handling of looked up Curl_dns_entry. Esp. do not use addr information after unlinking an entry. In reality, the unlink will not free memory, as the dns entry is still referenced by the hostcache. But this is not safe and relying on no other code pruning the cache in the meantime. - pass permanent flag when adding a dns entry instead of fixing timestamp afterwards. url.c: fold several static *resolve_* functions into one. Closes #14195
show more ...
|
#
d8696dc8 |
| 17-Jul-2024 |
Stefan Eissing |
doh: fix cleanup When removing an easy handle that had DoH sub-easy handles going, those were not removed from the multi handle. Their memory was reclaimed on curl_easy_cleanup() of
doh: fix cleanup When removing an easy handle that had DoH sub-easy handles going, those were not removed from the multi handle. Their memory was reclaimed on curl_easy_cleanup() of the owning handle, but multi still had them in their list. Add `Curl_doh_close()` and `Curl_doh_cleanup()` as common point for handling the DoH resource management. Use the `multi` present in the doh handles (if so), for removal, as the `data->multi` might already have been NULLed at this time. Reported-by: 罗朝辉 Fixes #14207 Closes #14212
show more ...
|
#
6a5bb685 |
| 10-Jul-2024 |
Stephen Farrell |
doh: fix leak and zero-length HTTPS RR crash This PR fixes a leak and a crash that can happen when curl encounters bad HTTPS RR values in DNS. We're starting to do better testing of that
doh: fix leak and zero-length HTTPS RR crash This PR fixes a leak and a crash that can happen when curl encounters bad HTTPS RR values in DNS. We're starting to do better testing of that kind of thing and e.g. have published bad HTTPS RR values at dodgy.test.defo.ie. Closes #14151
show more ...
|
#
c074ba64 |
| 01-Jul-2024 |
Daniel Stenberg |
code: language cleanup in comments Based on the standards and guidelines we use for our documentation. - expand contractions (they're => they are etc) - host name = > hostname
code: language cleanup in comments Based on the standards and guidelines we use for our documentation. - expand contractions (they're => they are etc) - host name = > hostname - file name => filename - user name = username - man page => manpage - run-time => runtime - set-up => setup - back-end => backend - a HTTP => an HTTP - Two spaces after a period => one space after period Closes #14073
show more ...
|
#
72abf7c1 |
| 02-Jun-2024 |
Viktor Szakats |
lib: tidy up types and casts Cherry-picked from #13489 Closes #13862
|
#
59dc9f7e |
| 20-May-2024 |
Viktor Szakats |
build: untangle `CURLDEBUG` and `DEBUGBUILD` macros `CURLDEBUG` is meant to enable memory tracking, but in a bunch of cases, it was protecting debug features that were supposed to be gua
build: untangle `CURLDEBUG` and `DEBUGBUILD` macros `CURLDEBUG` is meant to enable memory tracking, but in a bunch of cases, it was protecting debug features that were supposed to be guarded with `DEBUGBUILD`. Replace these uses with `DEBUGBUILD`. This leaves `CURLDEBUG` uses solely for its intended purpose: to enable the memory tracking debug feature. Also: - autotools: rely on `DEBUGBUILD` to enable `checksrc`. Instead of `CURLDEBUG`, which worked in most cases because debug builds enable `CURLDEBUG` by default, but it's not accurate. - include `lib/easyif.h` instead of keeping a copy of a declaration. - add CI test jobs for the build issues discovered. Ref: https://github.com/curl/curl/pull/13694#issuecomment-2120311894 Closes #13718
show more ...
|
#
0a94d182 |
| 03-May-2024 |
Daniel Stenberg |
doh: cleanups in ECH related functions - make local_decode_rdata_name use dynbuf instead of calloc + memcpy - avoid extra memdup in local_decode_rdata_alpn - no need to if() before f
doh: cleanups in ECH related functions - make local_decode_rdata_name use dynbuf instead of calloc + memcpy - avoid extra memdup in local_decode_rdata_alpn - no need to if() before free() - use memdup instead of calloc + memcpy in Curl_doh_decode_httpsrr Reviewed-by: Stephen Farrell Closes #13526
show more ...
|
#
63a07a72 |
| 04-May-2024 |
RainRat |
doh: Fix typo in comment Closes: #13504 Author: RainRat on Github Reviewed-by: Daniel Stenberg <daniel@haxx.se> Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
|
#
a362962b |
| 04-Apr-2024 |
Stephen Farrell |
TLS: add support for ECH (Encrypted Client Hello) An EXPERIMENTAL feature used with CURLOPT_ECH and --ech. Closes #11922
|
#
e411c98f |
| 11-Apr-2024 |
Viktor Szakats |
build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`) Before this patch, two macros were used to guard IPv6 features in curl sources: `ENABLE_IPV6` and `USE_IPV6`. This patch ma
build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`) Before this patch, two macros were used to guard IPv6 features in curl sources: `ENABLE_IPV6` and `USE_IPV6`. This patch makes the source use the latter for consistency with other similar switches. `-DENABLE_IPV6` remains accepted for compatibility as a synonym for `-DUSE_IPV6`, when passed to the compiler. `ENABLE_IPV6` also remains the name of the CMake and `Makefile.vc` options to control this feature. Closes #13349
show more ...
|
#
f7e59879 |
| 27-Nov-2023 |
Stefan Eissing |
DoH: add trace configuration - refs #12397 where it is dicussed how to en-/disable verbose output of DoH operations - introducing `struct curl_trc_feat` to track a curl feature for
DoH: add trace configuration - refs #12397 where it is dicussed how to en-/disable verbose output of DoH operations - introducing `struct curl_trc_feat` to track a curl feature for tracing - adding `data->state.feat` optionally pointing to the feature a transfer belongs to - adding trace functions and verbosity checks on features - using trace feature in DoH code - documenting `doh` as feature for `--trace-config` Closes #12411
show more ...
|
#
2dbe75bd |
| 09-Dec-2023 |
Viktor Szakats |
build: fix some `-Wsign-conversion`/`-Warith-conversion` warnings - enable `-Wsign-conversion` warnings, but also setting them to not raise errors. - fix `-Warith-conversion` warni
build: fix some `-Wsign-conversion`/`-Warith-conversion` warnings - enable `-Wsign-conversion` warnings, but also setting them to not raise errors. - fix `-Warith-conversion` warnings seen in CI. These are triggered by `-Wsign-converion` and causing errors unless explicitly silenced. It makes more sense to fix them, there just a few of them. - fix some `-Wsign-conversion` warnings. - hide `-Wsign-conversion` warnings with a `#pragma`. - add macro `CURL_WARN_SIGN_CONVERSION` to unhide them on a per-build basis. - update a CI job to unhide them with the above macro: https://github.com/curl/curl/actions/workflows/linux.yml -> OpenSSL -O3 Closes #12492
show more ...
|
#
907eea08 |
| 14-Dec-2023 |
Daniel Stenberg |
Revert "urldata: move async resolver state from easy handle to connectdata" This reverts commit 56a4db2e4e2bcb9a0dcb75b83560a78ef231fcc8 (#12198) We want the c-ares channel to be he
Revert "urldata: move async resolver state from easy handle to connectdata" This reverts commit 56a4db2e4e2bcb9a0dcb75b83560a78ef231fcc8 (#12198) We want the c-ares channel to be held in the easy handle, not per connection - for performance. Closes #12524
show more ...
|
#
d65b8868 |
| 08-Dec-2023 |
Daniel Gustafsson |
doh: remove unused local variable The nurl variable is no longer used during probing following a refactoring, so remove. Closes #12491
|
#
db5bf231 |
| 20-Nov-2023 |
Daniel Stenberg |
doh: provide better return code for responses w/o addresses Previously it was wrongly returning CURLE_OUT_OF_MEMORY when the response did not contain any addresses. Now it more accuratel
doh: provide better return code for responses w/o addresses Previously it was wrongly returning CURLE_OUT_OF_MEMORY when the response did not contain any addresses. Now it more accurately returns CURLE_COULDNT_RESOLVE_HOST. Reported-by: lRoccoon on github Fixes #12365 Closes #12366
show more ...
|
#
bc8509a7 |
| 07-Nov-2023 |
Sam James |
misc: fix -Walloc-size warnings GCC 14 introduces a new -Walloc-size included in -Wextra which gives: ``` src/tool_operate.c: In function ‘add_per_transfer’: src/tool_operat
misc: fix -Walloc-size warnings GCC 14 introduces a new -Walloc-size included in -Wextra which gives: ``` src/tool_operate.c: In function ‘add_per_transfer’: src/tool_operate.c:213:5: warning: allocation of insufficient size ‘1’ for type ‘struct per_transfer’ with size ‘480’ [-Walloc-size] 213 | p = calloc(sizeof(struct per_transfer), 1); | ^ src/var.c: In function ‘addvariable’: src/var.c:361:5: warning: allocation of insufficient size ‘1’ for type ‘struct var’ with size ‘32’ [-Walloc-size] 361 | p = calloc(sizeof(struct var), 1); | ^ ``` The calloc prototype is: ``` void *calloc(size_t nmemb, size_t size); ``` So, just swap the number of members and size arguments to match the prototype, as we're initialising 1 struct of size `sizeof(struct ...)`. GCC then sees we're not doing anything wrong. Closes #12292
show more ...
|