curl_easy_setopt() options: 308
Public functions in libcurl: 100
Authors: 1489
- Contributors: 3728
+ Contributors: 3731
This release includes the following changes:
o cfilters: fix busy loop on blocked transfers [72]
o chunked: reject invalid bytes in trailer [210]
o CIPHERS.md: fix the example that uses only TLS 1.3 [137]
+ o cmake/FindGSS: drop "MIT Unknown" version value, related tidy ups [292]
+ o cmake/FindGSS: drop CMake <3.16 compatibility logic [291]
o cmake/FindGSS: fix comment, adjust custom flavor property name [261]
o cmake/FindGSS: prioritize MIT over GNU in pkg-config detection [196]
o cmake: auto-select static nghttp2/nghttp3/ngtcp2 Config [8]
o cmake: fix zstd CMake config name [5]
o cmake: opt in `MSVC_VERSION` 1951 to picky warnings [55]
o cmake: quote `COMPONENTS` string in `curl-config.in.cmake` [80]
+ o cmake: simplify `LINK_ONLY` imported target extraction [294]
o config2setopts: use default protocol properly [286]
o connect: remove deref of freed pointer in trace call [128]
o content_encoding: fix limit failure message [171]
o content_encoding: fix non-last chunked rejection [209]
o content_encoding: timeout during slow decoding [170]
+ o cookie: check __Secure- and __Host- case sensitively when read from file [256]
o cookie: compare path case sensitively [52]
+ o cookie: reject control octets in file-loaded cookies [289]
o cookie: simplify strstore(), remove outdated comment [12]
o cookie: tailmatch the domains for secure override [200]
o cookie: trim trailing dots when checking PSL [39]
o creds: add sasl service name [75]
+ o creds: create with empty user+pass [304]
o creds: mask OAuth bearer token in trace logs [117]
o creds: remove two unused functions [158]
o curl_easy_pause.md: rephrase the stream cache when pause clause [120]
o curl_easy_setopt.md: change options when no transfer runs [122]
o curl_formdata: fix to pass long where missing, document `CURLFORM_NAMELENGTH` [243]
+ o curl_multi_assign.md: clarify lifetime [264]
o curl_ntlm_core: fix nettle 4+ builds in certain MultiSSL combos [87]
o curl_ntlm_core: propagate DES `CryptEncrypt()` error [84]
o curl_sha512_256: fix result code on error [166]
o CURLINFO_CONTENT_LENGTH_UPLOAD_T.md: expand [215]
+ o CURLMOPT_SOCKETFUNCTION.md: this sends *all* file descriptors [266]
o CURLOPT_CHUNK_BGN_FUNCTION: target is there for symlinks only [156]
o CURLOPT_DISALLOW_USERNAME_IN_URL: is for CURLOPT_URL only [61]
o CURLOPT_DOH_URL.md: does not inherit proxy options [213]
o digest: escape control codes too [206]
o digest: flush proxy state on proxy or credential change [225]
o digest: flush state on origin or credential change [235]
+ o dns-httpsrr-lookup: use origin, not peer [302]
o dnscache: remove Curl_dns_entry_link [160]
o docs/libcurl: fix the version for curl_multi_socket_action
o docs: end "...can be used several times..." sentences with period [34]
o docs: fix odd wording in CONTRIBUTE.md [107]
o docs: note CURLOPT_PINNEDPUBLICKEY has no effect on legacy LDAP backend [65]
o docs: returned header size reflects HTTP/1-style format [203]
+ o doh: cap the maximum TTL to 24 hours [234]
+ o doh: drop redundant `curlx_dyn_free()` call in `doh_probe_done()` [232]
+ o doh: stricter HTTPS RNAME parsing [233]
o ECH: cleanups [20]
o event: fix wakeup consumption [93]
o ftp: avoid accessing EPSV response one byte past the NULL [9]
o hsts.md: mention multiple curl invokes effect [189]
o hsts: duplicate live HSTS data in curl_easy_duphandle [183]
o http-proxy: verify CONNECT response headers [192]
+ o HTTP3.md: update quiche build [229]
o http: don't pass on set cookies to new origins [140]
o http: prefer chunked encoding over Content-Length: 0 [146]
o http: reject spurious CR bytes in headers [157]
o http_digest: return better error [204]
o idn: replace header guards with forward declaration [100]
+ o INSTALL-CMAKE.md: document CMake environment variables [246]
+ o INTERNALS.md: document minimum nghttp3 and ngtcp2 versions [299]
o KNOWN_BUGS.md: remove fixed GnuTLS <-> OpenSSL incompat bug [41]
o KNOWN_BUGS: remove stale Threads::Threads entry [135]
o krb5_sspi: fix error message on `DecryptMessage()` fail [269]
o lib: two minor typos [16]
o libcurl-easy.md: minor clarifications [19]
o libssh2: do not use deprecated macros when unavailable [177]
+ o libssh2: drop stray double-negative from `strncmp()` result [194]
+ o libssh2: fix to return error code on missing parameter [198]
o libssh2: replace macro names with non-misspelled alternatives [169]
o libssh2: save non-standard port to `known_hosts` [217]
o libssh2: sync version check with INTERNALS.md [176]
o multi: handle pause in multi socket callback [109]
o multi: remove a stale comment [216]
o multi: silence gcc 16 `-Wnull-dereference`, bump CI job to test [54]
+ o multi: xfers_really_alive [288]
o netrc: remember and check filename loaded [212]
o netrc: scanner refactor [121]
o ngtcp2: fail handshake directly [138]
+ o openssl: do not mix OpenSSL int result with `CURLcode` variable [265]
o os400sys: fix theoretical length overflows [141]
o peer.h: fix typo in comment [202]
+ o pingpong: reject nul byte in server response line [268]
o progress: fix CURLINFO time reporting [145]
o psl: require libpsl 0.16.0 (2016-12-10) or greater [188]
o pytest: pass `--disable` to curl [175]
o pythonlint.sh: make it fail on error, fix ruff warnings in pytest [67]
o quic: count zero length packets against max [179]
o ratelimits: use minimal burst rate [245]
+ o RELEASE-PROCEDURE.md: update coming relese dates
o resolve: mention in error that IP address is expected [205]
o rtsp: bump buf after rtsp_filter_rtp() [88]
o runner.pm: apply minor correctness fix [105]
o setopt: fix to honor `CURLOPT_PROXY_CAINFO_BLOB` over Native CA [26]
o setopt: gate a few proxy TLS options by checking backend support [35]
o setopt: more careful cleanup of the HSTS cache [45]
+ o setopt: return error if received `curl_blob->data` is NULL [185]
o show-headers.md: mention bold headers and --no-styled-output [17]
o sigv4: URL encode the user name in the header [193]
+ o smb: constify `strchr()` result variable [257]
o smb: integer overflow proof a size check [263]
o smbserver: update internal id generation for Python 3 [238]
o socket: introduce `SOCK_EAGAIN()` and use it [278]
o spnego_sspi: honor CURLOPT_GSSAPI_DELEGATION for Windows SSPI [89]
o spnego_sspi: preserve distinction btw policy-only and uncond delegation [74]
o src: fix comment typos [83]
+ o src: sync nghttp2 versions checks with current requirements [300]
o ssl native_ca_store: always reinit [211]
o SSLCERTS: document 8.19.0 default Native CA builds (Windows) [14]
o sspi: clear SSPI credentials on AcquireCredentialsHandle failure [76]
o url: connection credentials origin [228]
o url: connection reuse fixes for starttls [68]
o url: detect proxy changes read from environment [110]
+ o url: don't log bits.close state [290]
o url: fix connection reuse for starttls protocols [27]
o url: keep the question mark for empty queries [73]
o url: remove superfluous check [131]
o var: use a dedicated pointer for the alloc [219]
o verify-release: verify more thoroughly with git [249]
o vquic: drop stray casts for `iovec.iov_len` [162]
+ o vquic: fix `-Wunused-parameter` with proxies disabled [260]
o vtls: more large buffer support and error checks for SHA-256 [164]
o vtls: use Curl_safecmp for CRLfile and pinned_key comparison [116]
o vtls_scache: include signature_algorithms in the SSL peer cache key [123]
o VULN-DISCLOSURE-POLICY.md: test code is not secure [119]
o VULN-DISCLOSURE-POLICY: non-released code [253]
o websockets: auto-tunnel through http proxy [102]
+ o websockets: buffer ugprade data at connection level [237]
o windows: update MS SDK versions in comments [60]
o winldap: avoid NULL pointer deref on `ldap_get_dn()` fail [242]
o ws: make pong sending lazy [201]
0xN3R3K3, 11soda11, Ady Elouej, A Johnston, Alan De Smet, alhudz,
alienowo on hackerone, ambikeesshh, amitbidlan, Andreas Falkenhahn,
- Andrei Rybak, Andrew Nesbitt, Aritra Basu, azraelxuemo on hackerone,
- Bartel Sielski, Bastian Jesuiter, BazaarAcc32 on github, Bill Mill,
- ByteRay on hackerone, chrizilla on github, co-authors in libssh2,
- correctmost on github, Dan Fandrich, Daniel Gustafsson, Daniel Stenberg,
- Dario Vinella, Darren Banfi, Dave Walker, daviey on hackerone,
- dependabot[bot], dyingc on github, Earnestly on github, Elise Vance,
- Emanuel Krollmann, Eunsoo Kim, evergarden1123 on hackerone, Fabian Keil,
- Filipe Casal, Gao Liyou, Guancheng Li, Guannan Wang, Harry Sintonen,
- Hem Parekh, htasta, jeffhuang, Jeremy Nicoll, Jiashuo Liang,
- jjchuck on hackerone, Johannes Schlatow, Josef Cejka, Joshua Rogers,
- Kai Pastor, Marcel Raad, Mark Esler, Max Dymond, mik, Mike-menny on github,
- Muhamad Arga Reksapati, mulan_dh on hackerone, oreadvanthink on github,
- parasol-aser, penpal, Peter Krefting, Philip H., Rainer Jung,
- Randall S. Becker, Raymond Steen, Ray Satiro, renjian on hackerone,
- renovate[bot], Ross Burton, Saud Alshareef, Sergio Correia, sfan5 on github,
- Shintomon Mathew, Sollace on github, Song X. Gao, sourceturner,
- Stefan Eissing, Tatsuhiro Tsujikawa, Tim Martin, tiymat,
- Tobias Frauenschläger, Trail of Bits, Vasiliy-Kkk, vectorqueue on hackerone,
- vegagent on hackerone, Viktor Szakats, violet12331 on hackerone,
- Will Cosgrove, wulin-nudt on github, Xi Ruoyao, x-xiang on github,
- Yedaya Katsman, zhanhb on github, Zhanpeng Liu
- (96 contributors)
+ Andrei Rybak, Andrew Nesbitt, Aritra Basu, av223119 on github,
+ azraelxuemo on hackerone, Bartel Sielski, Bastian Jesuiter,
+ BazaarAcc32 on github, Bill Mill, Bryan Henderson, ByteRay on hackerone,
+ chrizilla on github, co-authors in libssh2, correctmost on github,
+ Dan Fandrich, Daniel Gustafsson, Daniel Stenberg, Dario Vinella,
+ Darren Banfi, Dave Walker, daviey on hackerone, dependabot[bot],
+ dyingc on github, Earnestly on github, Elise Vance, Emanuel Krollmann,
+ Eunsoo Kim, evergarden1123 on hackerone, Fabian Keil, Filipe Casal,
+ Gao Liyou, Guancheng Li, Guannan Wang, Harry Sintonen, Hem Parekh, htasta,
+ jeffhuang, Jeremy Nicoll, Jiashuo Liang, jjchuck on hackerone,
+ Johannes Schlatow, Josef Cejka, Joshua Rogers, Kai Pastor, Marcel Raad,
+ Mark Esler, Max Dymond, Michael Kaufmann, mik, Mike-menny on github,
+ Muhamad Arga Reksapati, mulan_dh on hackerone, netspacer.research,
+ oreadvanthink on github, parasol-aser, penpal, Peter Krefting, Philip H.,
+ Rainer Jung, Randall S. Becker, Raymond Steen, Ray Satiro,
+ renjian on hackerone, renovate[bot], Ross Burton, Saud Alshareef,
+ Sergio Correia, sfan5 on github, Shintomon Mathew, sideshowbarker on github,
+ Sollace on github, Song X. Gao, sourceturner, Stefan Eissing,
+ Tatsuhiro Tsujikawa, Tim Martin, tiymat, Tobias Frauenschläger,
+ Trail of Bits, Vasiliy-Kkk, vectorqueue on hackerone, vegagent on hackerone,
+ Viktor Szakats, violet12331 on hackerone, Will Cosgrove,
+ wulin-nudt on github, Xi Ruoyao, x-xiang on github, Yedaya Katsman,
+ Zartaj Majeed, zhanhb on github, Zhanpeng Liu
+ (102 contributors)
References to bug reports and discussions on issues:
[182] = https://curl.se/bug/?i=21858
[183] = https://curl.se/bug/?i=21809
[184] = https://curl.se/bug/?i=21930
+ [185] = https://curl.se/bug/?i=22129
[186] = https://curl.se/bug/?i=21976
[187] = https://curl.se/bug/?i=21970
[188] = https://curl.se/bug/?i=21933
[191] = https://curl.se/bug/?i=21773
[192] = https://curl.se/bug/?i=21927
[193] = https://curl.se/bug/?i=21923
+ [194] = https://curl.se/bug/?i=22126
[195] = https://curl.se/bug/?i=21881
[196] = https://curl.se/bug/?i=22052
[197] = https://curl.se/bug/?i=21922
+ [198] = https://curl.se/bug/?i=22125
[199] = https://curl.se/bug/?i=21914
[200] = https://curl.se/bug/?i=21910
[201] = https://curl.se/bug/?i=21911
[226] = https://curl.se/bug/?i=21945
[227] = https://curl.se/bug/?i=22048
[228] = https://curl.se/bug/?i=22040
+ [229] = https://curl.se/bug/?i=22105
[230] = https://curl.se/bug/?i=21949
[231] = https://curl.se/bug/?i=22038
+ [232] = https://curl.se/bug/?i=22133
+ [233] = https://curl.se/bug/?i=22124
+ [234] = https://curl.se/bug/?i=22122
[235] = https://curl.se/bug/?i=21944
[236] = https://curl.se/bug/?i=22033
+ [237] = https://curl.se/bug/?i=22107
[238] = https://curl.se/bug/?i=21937
[239] = https://curl.se/bug/?i=22030
[242] = https://curl.se/bug/?i=22000
[243] = https://curl.se/bug/?i=22017
[245] = https://curl.se/bug/?i=22016
+ [246] = https://curl.se/bug/?i=22114
[249] = https://curl.se/bug/?i=22018
[253] = https://curl.se/bug/?i=22025
+ [256] = https://curl.se/bug/?i=22085
+ [257] = https://curl.se/bug/?i=22094
+ [260] = https://curl.se/bug/?i=22104
[261] = https://curl.se/bug/?i=22013
[262] = https://curl.se/bug/?i=22004
[263] = https://curl.se/bug/?i=22001
+ [264] = https://curl.se/bug/?i=22088
+ [265] = https://curl.se/bug/?i=22087
+ [266] = https://curl.se/bug/?i=22081
+ [268] = https://curl.se/bug/?i=21996
[269] = https://curl.se/bug/?i=22003
[270] = https://curl.se/bug/?i=22002
[271] = https://curl.se/bug/?i=21998
[281] = https://curl.se/bug/?i=21979
[283] = https://curl.se/bug/?i=21989
[286] = https://curl.se/bug/?i=21983
+ [288] = https://curl.se/bug/?i=22050
+ [289] = https://curl.se/bug/?i=22070
+ [290] = https://curl.se/bug/?i=22073
+ [291] = https://curl.se/bug/?i=22072
+ [292] = https://curl.se/bug/?i=22052
+ [294] = https://curl.se/bug/?i=22063
+ [299] = https://curl.se/bug/?i=22062
+ [300] = https://curl.se/bug/?i=22061
+ [302] = https://curl.se/bug/?i=22059
+ [304] = https://curl.se/bug/?i=21943