← Commit list

470e26ff6e

Daniel Stenberg
Daniel Stenberg
2026-01-09
SUCCESS Duration: 354s

Subject

RELEASE-NOTES: synced

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

RELEASE-NOTES+24 -797
@@ -1,6 +1,6 @@
-curl and libcurl 8.18.0
+curl and libcurl 8.18.1
- Public curl releases: 272
+ Public curl releases: 273
Command line options: 273
curl_easy_setopt() options: 308
Public functions in libcurl: 100
@@ -8,405 +8,19 @@ curl and libcurl 8.18.0
This release includes the following changes:
- o build: drop support for VS2008 (Windows) [62]
- o build: drop Windows CE / CeGCC support [69]
- o gnutls: drop support for GnuTLS < 3.6.5 [167]
- o gnutls: implement CURLOPT_CAINFO_BLOB [168]
- o openssl: bump minimum OpenSSL version to 3.0.0 [60]
This release includes the following bugfixes:
- o _PROGRESS.md: add the E unit, mention kibibyte [24]
- o alt-svc: more flexibility on same destination [298]
- o altsvc: accept ma/persist per alternative entry [287]
- o altsvc: make it one malloc instead of three per entry [266]
- o AmigaOS: increase minimum stack size for tool_main [137]
- o apple sectrust: fix ancient evaluation [327]
- o apple-sectrust: always ask when `native_ca_store` is in use [162]
- o asyn-ares: handle Curl_dnscache_mk_entry() OOM error [199]
- o asyn-ares: remove hostname free on OOM [122]
- o asyn-thrdd: fix Curl_async_getaddrinfo() on systems without getaddrinfo [265]
- o asyn-thrdd: release rrname if ares_init_options fails [41]
- o auth: always treat Curl_auth_ntlm_get() returning NULL as OOM [186]
- o autotools: add nettle library detection via pkg-config (for GnuTLS) [178]
- o autotools: drop autoconf <2.59 compatibility code (zz60-xc-ovr) [70]
- o autotools: fix LargeFile feature display on Windows (after prev patch) [276]
- o autotools: tidy-up `if` expressions [275]
- o badwords: add fist -> first, fix fallouts [388]
- o badwords: catch and fix threading-related words [320]
- o badwords: fix issues found in scripts and other files [142]
- o badwords: fix issues found in tests [156]
- o build: add build-level `CURL_DISABLE_TYPECHECK` options [163]
- o build: exclude clang prereleases from compiler warning options [154]
- o build: replace `-pedantic` with `-Wpedantic` when supported [306]
- o build: set `-Wno-format-signedness` [288]
- o build: tidy-up MSVC CRT warning suppression macros [140]
- o ccsidcurl: make curl_mime_data_ccsid() use the converted size [74]
- o cf-h1-proxy: support folded headers in CONNECT responses [296]
- o cf-https-connect: allocate ctx at first in cf_hc_create() [79]
- o cf-socket: drop feature check for `IPV6_V6ONLY` on Windows [210]
- o cf-socket: enable Win10 `TCP_KEEP*` options with old SDKs [323]
- o cf-socket: limit use of `TCP_KEEP*` to Windows 10.0.16299+ at runtime [157]
- o cf-socket: return OOM error if socket() fails due to OOM [341]
- o cf-socket: trace ignored errors [97]
- o cfilters: make conn_forget_socket a private libssh function [109]
- o checksrc.pl: detect assign followed by more than one space [26]
- o cmake: adjust defaults for target platforms not supporting shared libs [35]
- o cmake: define dependencies as `IMPORTED` interface targets [223]
- o cmake: delete unused file `CMake/CMakeConfigurableFile.in` [363]
- o cmake: disable `CURL_CA_PATH` auto-detection if `USE_APPLE_SECTRUST=ON` [16]
- o cmake: fix `ws2_32` reference in `curl-config.cmake` [201]
- o cmake: honor `CURL_DISABLE_INSTALL` and `CURL_ENABLE_EXPORT_TARGET` [106]
- o cmake: replace deprecated `OPENSSL_FOUND` with `OpenSSL_FOUND` [310]
- o cmake: replace deprecated `PERL_FOUND` with `Perl_FOUND` [312]
- o cmake: save and restore `CMAKE_MODULE_PATH` in `curl-config.cmake` [222]
- o cmake: set found status to OFF when not found (for compression deps) [359]
- o code: minor indent fixes before closing braces [107]
- o CODE_STYLE.md: sync banned function list with checksrc.pl [243]
- o compressed.md: might generate a huge amount of bytes [227]
- o config-win32.h: delete obsolete, non-Windows comments [295]
- o config-win32.h: drop unused/obsolete `CURL_HAS_OPENLDAP_LDAPSDK` [278]
- o config2setopts: add space in cookie header with multiple -b [344]
- o config2setopts: bail out if curl_url_get() returns OOM [102]
- o config2setopts: exit if curl_url_set() fails on OOM [105]
- o configure: delete unused variable [294]
- o conncache: silence `-Wnull-dereference` on gcc 14 RISC-V 64 [17]
- o conncontrol: reuse handling [170]
- o connect: reshuffle Curl_timeleft_ms to avoid 'redundant condition' [100]
- o connection: attached transfer count [228]
- o content_encoding: avoid strcpy [331]
- o cookie. return proper error on OOM [330]
- o cookie: allocate the main struct once cookie is fine [259]
- o cookie: flush better [218]
- o cookie: only keep and use the canonical cleaned up path [256]
- o cookie: propagate errors better, cleanup the internal API [118]
- o cookie: return error on OOM [131]
- o cookie: when parsing a cookie header, delay all allocations until okay [258]
- o cshutdn: acknowledge FD_SETSIZE for shutdown descriptors [25]
- o curl: fix progress meter in parallel mode [15]
- o curl_fopen: do not pass invalid mode flags to `open()` on Windows [84]
- o curl_gssapi: make sure Curl_gss_log_error() has an initialized buffer [257]
- o curl_ntlm_core: fix DES_* symbols for some wolfSSL builds [281]
- o curl_quiche: refuse headers with CR, LF or null bytes [333]
- o curl_sasl: if redirected, require permission to use bearer [250]
- o curl_sasl: make Curl_sasl_decode_mech compare case insensitively [160]
- o curl_setup.h: document more funcs flagged by `_CRT_SECURE_NO_WARNINGS` [124]
- o curl_setup.h: drop stray `#undef stat` (Windows) [103]
- o curl_setup.h: drop superfluous parenthesis from `Curl_safefree` macro [242]
- o curl_threads: don't do another malloc if the first fails [345]
- o curl_trc: delete unused DoH remains [272]
- o CURLINFO: remove 'get' and 'get the' from each short desc [50]
- o CURLINFO_SCHEME/PROTOCOL: they return the "scheme" for a "transfer" [48]
- o CURLINFO_TLS_SSL_PTR.md: remove CURLINFO_TLS_SESSION text [49]
- o CURLMOPT_SOCKETFUNCTION.md: fix the callback argument use [206]
- o CURLOPT_ACCEPT_ENCODING.md: warn about the expansion [224]
- o CURLOPT_FOLLOWLOCATION.md: s/Authentication:/Authorization:/ [283]
- o CURLOPT_HAPROXY_CLIENT_IP.md: emphasize reused connection use [328]
- o CURLOPT_READFUNCTION.md: clarify the size of the buffer [47]
- o CURLOPT_SSH_KEYFUNCTION.md: fix minor indent mistake in example
- o curlx/fopen: replace open CRT functions their with `_s` counterparts (Windows) [204]
- o curlx/multibyte: stop setting macros for non-Windows [226]
- o curlx/strerr: use `strerror_s()` on Windows [75]
- o curlx: add `curlx_rename()`, fix to support long filenames on Windows [354]
- o curlx: curlx_strcopy() instead of strcpy() [326]
- o curlx: limit use of system allocators to the minimum possible [169]
- o curlx: replace `mbstowcs`/`wcstombs` with `_s` counterparts (Windows) [143]
- o curlx: replace `sprintf` with `snprintf` [194]
- o curlx: use curl alloc in `curlx_win32_stat()` (Windows) [360]
- o curlx: use curlx allocators in non-memdebug builds (Windows) [155]
- o DEPRECATE: add CMake <3.18 deprecation for April 2026 [291]
- o digest: fix OWS and escaped quote handling [391]
- o digest_sspi: fix a memory leak on error path [149]
- o digest_sspi: properly free sspi identity [12]
- o DISTROS.md: add OpenBSD [126]
- o DISTROS: fix a Mageia URL
- o DISTROS: remove broken URLs for buildroot
- o doc: some returned in-memory data may not be altered [196]
- o Dockerfile: update debian:bookworm-slim digest to e899040 [305]
- o docs/libcurl: fix C formatting nits [207]
- o docs: add a note about --compressed to note about binary output [381]
- o docs: clarify how to do unix domain sockets with SOCKS proxy [240]
- o docs: fix checksrc `EQUALSPACE` warnings [21]
- o docs: fix time_posttransfer output unit as seconds [335]
- o docs: mention umask need when curl creates files [56]
- o docs: remove dead URLs
- o docs: rename CURLcode variables to 'result'
- o docs: spell it Rustls with a capital R [181]
- o docs: switch more URLs to https:// [229]
- o docs: use .example URLs for proxies
- o docs: use mresult as variable name for CURLMcode
- o escape: add a length check in curl_easy_escape [284]
- o example: fix formatting nits [232]
- o examples/crawler: fix variable [92]
- o examples/multi-uv: fix invalid req->data access [177]
- o examples/threaded-ssl: delete in favor of `examples/threaded` [318]
- o examples/threaded: fix race condition [101]
- o examples: fix minor typo [203]
- o examples: make functions/data static where missing [139]
- o examples: tidy-up headers and includes [138]
- o examples: use 64-bit `fstat` on Windows [301]
- o FAQ/TODO/KNOWN_BUGS: convert to markdown [307]
- o FAQ: fix hackerone URL
- o file: do not pass invalid mode flags to `open()` on upload (Windows) [83]
- o formdata: validate callback is non-NULL before use [267]
- o ftp: make EPRT connections non-blocking [268]
- o ftp: refactor a piece of code by merging the repeated part [40]
- o ftp: remove #ifdef for define that is always defined [76]
- o ftp: return better on OOM in two places [343]
- o ftp: return from ftp_state_use_port immediately on OOM [338]
- o getenv: drop internal 1-to-1 wrapper [334]
- o getinfo: improve perf in debug mode [99]
- o gnutls: add PROFILE_MEDIUM as default [233]
- o gnutls: report accurate error when TLS-SRP is not built-in [18]
- o gtls: add return checks and optimize the code [2]
- o gtls: Call keylog_close in cleanup
- o gtls: skip session resumption when verifystatus is set
- o h2/h3: handle methods with spaces [146]
- o headers: add length argument to Curl_headers_push() [309]
- o hostcheck: fail wildcard match if host starts with a dot [235]
- o hostip.h: drop redundant `setjmp.h` include [380]
- o hostip: don't store negative lookup on OOM [61]
- o hostip: make more functions return CURLcode [202]
- o hostip: only store negative response for CURLE_COULDNT_RESOLVE_HOST [183]
- o hsts: propagate and error out correctly on OOM [130]
- o hsts: use one malloc instead of two per entry [263]
- o http: acknowledge OOM errors from Curl_input_ntlm [185]
- o http: avoid two strdup()s and do minor simplifications [144]
- o http: error on OOM when creating range header [59]
- o http: fix OOM exit in Curl_http_follow [179]
- o http: handle oom error from Curl_input_digest() [192]
- o http: replace atoi use in Curl_http_follow with curlx_str_number [65]
- o http: return OOM errors from hsts properly [262]
- o http: the :authority header should never contain user+password [147]
- o http: unfold response headers earlier [277]
- o idn: avoid allocations and wcslen on Windows [247]
- o idn: clarify null-termination on Windows [324]
- o idn: fix memory leak in `win32_ascii_to_idn()` [173]
- o idn: use curlx allocators on Windows [165]
- o imap: check buffer length before accessing it [308]
- o imap: make sure Curl_pgrsSetDownloadSize() does not overflow [200]
- o inet_ntop: avoid the strlen() [371]
- o INSTALL-CMAKE.md: document static option defaults more [37]
- o krb5: fix detecting channel binding feature [187]
- o krb5_sspi: unify a part of error handling [80]
- o ldap: call ldap_init() before setting the options [236]
- o ldap: drop PP logic for old, unsupported, Windows SDKs [279]
- o ldap: improve detection of Apple LDAP [174]
- o ldap: provide version for "legacy" ldap as well [254]
- o lib/sendf.h: forward declare two structs [221]
- o lib: cleanup for some typos about spaces and code style [3]
- o lib: create unitprotos.h in the builddir, not srcdir [322]
- o lib: drop unused or duplicate `curlx/timeval.h` includes [384]
- o lib: drop unused protocol headers [270]
- o lib: eliminate size_t casts [112]
- o lib: error for OOM when extracting URL query [127]
- o lib: fix formatting nits (part 2) [253]
- o lib: fix formatting nits (part 3) [248]
- o lib: fix formatting nits [215]
- o lib: fix gssapi.h include on IBMi [55]
- o lib: name the main CURLMcode variable 'mresult' [316]
- o lib: refactor the type of funcs which have useless return and checks [1]
- o lib: replace `_tcsncpy`/`wcsncpy`/`wcscpy` with `_s` counterparts (Windows) [164]
- o lib: timer stats improvements [190]
- o lib: use `SOCKET_WRITABLE()`/`SOCKET_READABLE()` where possible [350]
- o libssh2: add paths to error messages for quote commands [114]
- o libssh2: cleanup ssh_force_knownhost_key_type [64]
- o libssh2: consider strdup() failures OOM and return correctly [72]
- o libssh2: replace atoi() in ssh_force_knownhost_key_type [63]
- o libssh: fix state machine loop to progress as it should
- o libssh: properly free sftp_attributes [153]
- o libssh: require private key or user-agent for public key auth [293]
- o libssh: set both knownhosts options to the same file [271]
- o libtests: replace `atoi()` with `curlx_str_number()` [120]
- o limit-rate: add example using --limit-rate and --max-time together [89]
- o localtime: detect thread-safe alternatives and use them [325]
- o m4/sectrust: fix test(1) operator [4]
- o manage: expand the 'libcurl support required' message [208]
- o mbedTLS: cleanup insecure/deprecated code [351]
- o mbedtls: fix potential use of uninitialized `nread` [8]
- o mbedtls: sync format across log messages [213]
- o mbedtls_threadlock: avoid calloc, use array [244]
- o mdlinkcheck: ignore IP numbers, allow '@' in raw URLs
- o mdlinkcheck: only look for markdown links in markdown files [311]
- o memdebug: add mutex for thread safety [184]
- o memdebug: fix realloc logging [286]
- o mk-ca-bundle.md: the file format docs URL is permaredirected [188]
- o mk-ca-bundle.pl: default to SHA256 fingerprints with `-t` option [73]
- o mk-ca-bundle.pl: use `open()` with argument list to replace backticks [71]
- o mqtt: reject overly big messages [39]
- o mqtt: return error when a too large packet is decoded [366]
- o multi: make max_total_* members size_t [158]
- o multi: remove MSTATE_TUNNELING [297]
- o multi: simplify admin handle processing [189]
- o multibyte: limit `curlx_convert_*wchar*()` functions to Unicode builds [135]
- o ngtcp2+openssl: fix leak of session [172]
- o ngtcp2: remove the unused Curl_conn_is_ngtcp2 function [85]
- o ngtcp2: retune window sizes [365]
- o noproxy: fix build on systems without IPv6 [264]
- o noproxy: fix ipv6 handling [239]
- o noproxy: replace atoi with curlx_str_number [67]
- o openssl: exit properly on OOM when getting certchain [133]
- o openssl: fix a potential memory leak of bio_out [150]
- o openssl: fix a potential memory leak of params.cert [151]
- o openssl: fix building against no-dsa openssl [386]
- o openssl: fix building against no-ocsp openssl with Apple SecTrust [385]
- o openssl: no verify failf message unless strict [166]
- o openssl: release ssl_session if sess_reuse_cb fails [43]
- o openssl: remove code handling default version [28]
- o openssl: simplify `HAVE_KEYLOG_CALLBACK` guard [212]
- o openssl: stop checking for `OPENSSL_NO_SHA*` macros [382]
- o openssl: stop checking for `OPENSSL_NO_TLSEXT` macro [383]
- o openssl: toggling CURLSSLOPT_NO_PARTIALCHAIN makes a different CA cache [313]
- o OS400/ccsidcurl: fix curl_easy_setopt_ccsid for non-converted blobs [94]
- o OS400/makefile.sh: fix shellcheck warning SC2038 [86]
- o os400sys: replace `strcpy()` with `memcpy()` [273]
- o osslq: code readability [5]
- o progress: make it one column narrower [352]
- o progress: narrower time display, multiple fixes [369]
- o progress: show fewer digits [78]
- o projects/README.md: Markdown fixes [148]
- o pytest fixes and improvements [159]
- o pytest: add tests using sshd [303]
- o pytest: disable two H3 earlydata tests for all platforms (was: macOS) [116]
- o pytest: do not ignore server issues [329]
- o pytest: enable OCSP test 17_08 for LibreSSL [364]
- o pytest: fix and improve reliability [251]
- o pytest: improve stragglers [252]
- o pytest: quiche flakiness [280]
- o pytest: skip H2 tests if feature missing from curl [46]
- o quiche: use client writer [255]
- o ratelimit blocking: fix busy loop [290]
- o ratelimit: redesign [209]
- o rtmp: fix double-free on URL parse errors [27]
- o rtmp: precaution for a potential integer truncation [54]
- o rtmp: stop redefining `setsockopt` system symbol on Windows [211]
- o runner.pm: run memanalyzer as a Perl module [260]
- o runtests: add options to set minimum number of tests, use them [302]
- o runtests: detect bad libssh differently for test 1459 [11]
- o runtests: drop Python 2 support remains [45]
- o runtests: enable torture testing with threaded resolver [176]
- o runtests: improve XML prolog check, enable `-w` permanently, fix two tests [231]
- o runtests: make memanalyzer a Perl module (for 1.1-2x speed-up per test run) [238]
- o rustls: fix a potential memory issue [81]
- o rustls: minor adjustment of sizeof() [38]
- o rustls: simplify init err path [219]
- o rustls: verify that verifier_builder is not NULL [220]
- o schannel: cap the maximum allowed size for loading cert [274]
- o schannel: fix memory leak of cert_store_path on four error paths [23]
- o schannel: replace atoi() with curlx_str_number() [119]
- o schannel: use Win8 `CERT_NAME_SEARCH_ALL_NAMES_FLAG` with old SDKs [321]
- o schannel_verify: fix a memory leak of cert_context [152]
- o scripts: fix shellcheck SC2046 warnings [90]
- o scripts: use end-of-options marker in `find -exec` commands [87]
- o setopt: disable CURLOPT_HAPROXY_CLIENT_IP on NULL [30]
- o setopt: when setting bad protocols, don't store them [9]
- o sftp: fix range downloads in both SSH backends [82]
- o slist: constify Curl_slist_append_nodup() string argument [195]
- o smb: fix a size check to be overflow safe [161]
- o socketpair: drop redundant `_WIN32` branch and include [367]
- o socks_sspi: use free() not FreeContextBuffer() [93]
- o source: misc typos [372]
- o speedcheck: do not trigger low speed cancel on transfers with CURL_READFUNC_PAUSE [113]
- o speedlimit: also reset on send unpausing [197]
- o src: drop redundant definition of `BIT()` [357]
- o src: fix formatting nits [246]
- o ssh: tracing and better pollset handling [230]
- o sspi: fix memory leaks on error paths in `Curl_create_sspi_identity()` [237]
- o sws: fix binding to unix socket on Windows [214]
- o synctime: tidy up, make it work on all platforms [269]
- o telnet: abort on bad suboption sequence [300]
- o telnet: replace atoi for BINARY handling with curlx_str_number [66]
- o TEST-SUITE.md: correct the man page's path [136]
- o test07_22: fix flakiness [95]
- o test1475: consistently use %CR in headers [234]
- o test1498: disable 'HTTP PUT from stdin' test on Windows [115]
- o test2045: replace HTML multi-line comment markup with `#` comments [36]
- o test318: tweak the name a little
- o test3207: enable memdebug for this test again [249]
- o test363: delete stray character (typo) from a section tag [52]
- o test568: fix codespell, catch it next time early in CI [299]
- o test568: remove what looks like an email and a URL [304]
- o test787: fix possible typo `&` -> `%` in curl option [241]
- o test96: fix to accept non-unity memdump content with MSVC [339]
- o tests/data: move `--libcurl` output to external data files [34]
- o tests/data: replace hard-coded test numbers with `%TESTNUMBER` [33]
- o tests/data: support using native newlines on disk, drop `.gitattributes` [91]
- o tests/server: do not fall back to original data file in `test2fopen()` [32]
- o tests/server: fix initialization on Windows Vista+ [216]
- o tests/server: replace `atoi()` and `atol()` with `curlx_str_number()` [110]
- o tests: add `%AMP` macro, use it in two tests [245]
- o tests: add a standard log line for alloc failures [319]
- o tests: allow 2500-2503 to use ~2MB malloc [31]
- o tests: drop redundant parenthesis from two macro expressions [376]
- o tests: fix formatting nits [225]
- o tests: rename CURLMcode variables to mresult
- o tftp: release filename if conn_get_remote_addr fails [42]
- o tftpd: fix/tidy up `open()` mode flags [57]
- o tidy-up: avoid `(())`, clang-format fixes and more [141]
- o tidy-up: move `CURL_UNCONST()` out from macro `curl_unicodefree()` [121]
- o tidy-up: URLs (cont.) and mdlinkcheck [285]
- o tidy-up: URLs [182]
- o TODO: remove a mandriva.com reference
- o tool: consider (some) curl_easy_setopt errors fatal [7]
- o tool: log when loading .curlrc in verbose mode [191]
- o tool_cfgable: free ssl-sessions at exit [123]
- o tool_doswin: clear pointer when thread takes ownership [198]
- o tool_doswin: increase allowable length of path sanitizer [289]
- o tool_doswin: remove the max length check [374]
- o tool_getparam: simplify the --rate parser [373]
- o tool_getparam: use memdup0() instead of malloc + copy [390]
- o tool_getparam: verify that a file exists for some options [134]
- o tool_help: add checks to avoid unsigned wrap around [14]
- o tool_ipfs: check return codes better [20]
- o tool_msgs: make voutf() use stack instead of heap [125]
- o tool_operate: exit on curl_share_setopt errors [108]
- o tool_operate: fix a case of ignoring return code in operate() [128]
- o tool_operate: fix case of ignoring return code in single_transfer [129]
- o tool_operate: remove redundant condition [19]
- o tool_operate: return error for OOM in append2query [217]
- o tool_operate: use curlx_str_number instead of atoi [68]
- o tool_paramhlp: refuse --proto remove all protocols [10]
- o tool_paramhlp: remove a malloc+free from proto2num() [378]
- o tool_paramhlp: simplify number parsing [375]
- o tool_progress: fix large time outputs and decimal size display [379]
- o tool_urlglob: acknowledge OOM in peek_ipv6 [175]
- o tool_urlglob: clean up used memory on errors better [44]
- o tool_urlglob: constify an argument [361]
- o tool_urlglob: fix propagating OOM error from `sanitize_file_name()` [342]
- o tool_urlglob: support globs as long as config line lengths [282]
- o tool_writeout: bail out proper on OOM [104]
- o url: fix return code for OOM in parse_proxy() [193]
- o url: if curl_url_get() fails due to OOM, error out properly [205]
- o url: if OOM in parse_proxy() return error [132]
- o url: return error at once when OOM in netrc handling [332]
- o urlapi: fix mem-leaks in curl_url_get error paths [22]
- o urlapi: handle OOM properly when setting URL [180]
- o urlapi: return OOM correctly from parse_hostname_login() [337]
- o verify-release: update to avoid shellcheck warning SC2034 [88]
- o vquic-tls/gnutls: call Curl_gtls_verifyserver unconditionally [96]
- o vquic: do not pass invalid mode flags to `open()` (Windows) [58]
- o vquic: do_sendmsg full init [171]
- o vquic: ignore 0-length UDP packets [336]
- o vquic: initialize new callback in nghttp3 1.14.0+ [317]
- o vtls: drop unused `use_alpn` from `ssl_connect_data` struct [355]
- o vtls: fix CURLOPT_CAPATH use [51]
- o vtls: handle possible malicious certs_num from peer [53]
- o vtls: pinned key check [98]
- o VULN-DISCLOSURE-POLICY.md: CRLF in data [349]
- o wcurl: import v2025.11.09 [29]
- o wcurl: import v2026.01.05 [315]
- o windows: assume `USE_WIN32_LARGE_FILES` [292]
- o windows: fix `CreateFile()` calls to support long filenames [356]
- o windows: use `_strdup()` instead of `strdup()` where missing [145]
- o wolfSSL: able to differentiate between IP and DNS in alt names [13]
- o wolfssl: avoid NULL dereference in OOM situation [77]
- o wolfssl: fix a potential memory leak of session [6]
- o wolfssl: fix cipher list, skip 5.8.4 regression [117]
- o wolfssl: fix possible assert with `!HAVE_NO_EX` wolfSSL builds [261]
- o wolfssl: proof use of wolfSSL_i2d_SSL_SESSION [314]
- o wolfssl: simplify wssl_send_earlydata [111]
- o ws: replace a cast by matching the format string [358]
- o x509asn1: drop unused `hostcheck.h`, `vtls_int.h` includes [340]
+ o build: detect and include `inttypes.h` again [13]
+ o config-plan9: set `HAVE_STDINT_H` again [17]
+ o docs: explicitly call out Slowloris as not a security flaw [6]
+ o http/3: add description for known server error codes [15]
+ o mprintf: drop old sprintf fallback [7]
+ o ngtcp2: stabilize recv [18]
+ o tool_dirhie: drop superfluous `F_OK` fallback (Windows) [8]
+ o tool_operate: remove 'else' for VMS [3]
+ o urldata.h: remove two forward-declared structs not used [4]
+ o urldata: switch to uint* types [1]
This release includes the following known bugs:
@@ -428,405 +42,18 @@ Planned upcoming removals include:
This release would not have looked like this without help, code, reports and
advice from friends like these:
- Aleksandr Sergeev, Aleksei Bavshin, Alexander Batischev, Andrew Kirillov,
- anonymous237 on hackerone, BANADDA, boingball, Brad King, bttrfl on github,
- Christian Schmitz, correctmost on github, Dan Fandrich, Daniel McCarney,
- Daniel Pouzzner, Daniel Santos, Daniel Stenberg, Denis Goleshchikhin,
- Deniz Parlak, dependabot[bot], Fabian Keil, Fd929c2CE5fA on github,
- ffath-vo on github, Fizn-Ahmd on github, Gabriel Marin,
- Georg Schulz-Allgaier, Gisle Vanem, Greg Hudson, Harry Sintonen,
- herdiyanitdev on hackerone, Hunt Darlener, Huseyin Tintas, Jeff King,
- Jiyong Yang, John Haugabook, Joshua Vandaële, Juliusz Sosinowicz, Kai Pastor,
- koujaz on github, Leonardo Taccari, letshack9707 on hackerone, Marc Aldorasi,
- Marcel Raad, Mathesh V, Max Faxälv, nait-furry, ncaklovic on github,
- Nick Korepanov, Omdahake on github, Patrick Monnerat, pelioro on hackerone,
- pojomi, Ray Satiro, renovate[bot], Robert W. Van Kirk, Samuel Henrique,
- Sergey Katsubo, st751228051 on github, Stanislav Fort, Stefan Eissing,
- Stuart Henderson, Sunny, Theo Buehler, Thomas Klausner, Tobias Zimmermann,
- trxvorr, Viktor Szakats, Wesley Moore, Wyatt O'Day, Xiaoke Wang,
- Yedaya Katsman, Yuhao Jiang, yushicheng7788 on github
- (72 contributors)
+ Daniel Stenberg, James Fuller, Stefan Eissing, Viktor Szakats
+ (4 contributors)
References to bug reports and discussions on issues:
- [1] = https://curl.se/bug/?i=19386
- [2] = https://curl.se/bug/?i=19366
- [3] = https://curl.se/bug/?i=19370
- [4] = https://curl.se/bug/?i=19371
- [5] = https://curl.se/bug/?i=19394
- [6] = https://curl.se/bug/?i=19555
- [7] = https://curl.se/bug/?i=19385
- [8] = https://curl.se/bug/?i=19393
- [9] = https://curl.se/bug/?i=19389
- [10] = https://curl.se/bug/?i=19388
- [11] = https://curl.se/bug/?i=19557
- [12] = https://curl.se/bug/?i=19426
- [13] = https://curl.se/bug/?i=19364
- [14] = https://curl.se/bug/?i=19377
- [15] = https://curl.se/bug/?i=19383
- [16] = https://curl.se/bug/?i=19380
- [17] = https://curl.se/bug/?i=19378
- [18] = https://curl.se/bug/?i=19365
- [19] = https://curl.se/bug/?i=19381
- [20] = https://curl.se/bug/?i=19382
- [21] = https://curl.se/bug/?i=19379
- [22] = https://curl.se/bug/?i=19440
- [23] = https://curl.se/bug/?i=19423
- [24] = https://curl.se/bug/?i=19502
- [25] = https://curl.se/bug/?i=19439
- [26] = https://curl.se/bug/?i=19375
- [27] = https://curl.se/bug/?i=19438
- [28] = https://curl.se/bug/?i=19354
- [29] = https://curl.se/bug/?i=19430
- [30] = https://curl.se/bug/?i=19434
- [31] = https://curl.se/bug/?i=19716
- [32] = https://curl.se/bug/?i=19429
- [33] = https://curl.se/bug/?i=19427
- [34] = https://curl.se/bug/?i=19799
- [35] = https://curl.se/bug/?i=19420
- [36] = https://curl.se/bug/?i=19498
- [37] = https://curl.se/bug/?i=19419
- [38] = https://hackerone.com/reports/3427460
- [39] = https://curl.se/bug/?i=19415
- [40] = https://curl.se/bug/?i=19411
- [41] = https://curl.se/bug/?i=19410
- [42] = https://curl.se/bug/?i=19409
- [43] = https://curl.se/bug/?i=19405
- [44] = https://curl.se/bug/?i=19614
- [45] = https://curl.se/bug/?i=19544
- [46] = https://curl.se/bug/?i=19412
- [47] = https://curl.se/bug/?i=19402
- [48] = https://curl.se/bug/?i=19403
- [49] = https://curl.se/bug/?i=19404
- [50] = https://curl.se/bug/?i=19406
- [51] = https://curl.se/bug/?i=19401
- [52] = https://curl.se/bug/?i=19490
- [53] = https://curl.se/bug/?i=19397
- [54] = https://curl.se/bug/?i=19399
- [55] = https://curl.se/bug/?i=19336
- [56] = https://curl.se/bug/?i=19396
- [57] = https://curl.se/bug/?i=19671
- [58] = https://curl.se/bug/?i=19670
- [59] = https://curl.se/bug/?i=19630
- [60] = https://curl.se/bug/?i=18330
- [61] = https://curl.se/bug/?i=19484
- [62] = https://curl.se/bug/?i=17931
- [63] = https://curl.se/bug/?i=19479
- [64] = https://curl.se/bug/?i=19479
- [65] = https://curl.se/bug/?i=19478
- [66] = https://curl.se/bug/?i=19477
- [67] = https://curl.se/bug/?i=19475
- [68] = https://curl.se/bug/?i=19480
- [69] = https://curl.se/bug/?i=17927
- [70] = https://curl.se/bug/?i=19464
- [71] = https://curl.se/bug/?i=19461
- [72] = https://curl.se/bug/?i=19791
- [73] = https://curl.se/bug/?i=19359
- [74] = https://curl.se/bug/?i=19465
- [75] = https://curl.se/bug/?i=19646
- [76] = https://curl.se/bug/?i=19463
- [77] = https://curl.se/bug/?i=19459
- [78] = https://curl.se/bug/?i=19431
- [79] = https://curl.se/bug/?i=19454
- [80] = https://curl.se/bug/?i=19452
- [81] = https://curl.se/bug/?i=19425
- [82] = https://curl.se/bug/?i=19460
- [83] = https://curl.se/bug/?i=19647
- [84] = https://curl.se/bug/?i=19645
- [85] = https://curl.se/bug/?i=19725
- [86] = https://curl.se/bug/?i=19451
- [87] = https://curl.se/bug/?i=19450
- [88] = https://curl.se/bug/?i=19449
- [89] = https://curl.se/bug/?i=19473
- [90] = https://curl.se/bug/?i=19432
- [91] = https://curl.se/bug/?i=19398
- [92] = https://curl.se/bug/?i=19446
- [93] = https://curl.se/bug/?i=19445
- [94] = https://curl.se/bug/?i=19444
- [95] = https://curl.se/bug/?i=19530
- [96] = https://curl.se/bug/?i=19531
- [97] = https://curl.se/bug/?i=19520
- [98] = https://curl.se/bug/?i=19529
- [99] = https://curl.se/bug/?i=19525
- [100] = https://curl.se/bug/?i=19523
- [101] = https://curl.se/bug/?i=19524
- [102] = https://curl.se/bug/?i=19518
- [103] = https://curl.se/bug/?i=19519
- [104] = https://curl.se/bug/?i=19667
- [105] = https://curl.se/bug/?i=19517
- [106] = https://curl.se/bug/?i=19144
- [107] = https://curl.se/bug/?i=19512
- [108] = https://curl.se/bug/?i=19513
- [109] = https://curl.se/bug/?i=19727
- [110] = https://curl.se/bug/?i=19510
- [111] = https://curl.se/bug/?i=19509
- [112] = https://curl.se/bug/?i=19495
- [113] = https://curl.se/bug/?i=19653
- [114] = https://curl.se/bug/?i=19605
- [115] = https://curl.se/bug/?i=19855
- [116] = https://curl.se/bug/?i=19724
- [117] = https://curl.se/bug/?i=19644
- [118] = https://curl.se/bug/?i=19493
- [119] = https://curl.se/bug/?i=19483
- [120] = https://curl.se/bug/?i=19506
- [121] = https://curl.se/bug/?i=19606
- [122] = https://curl.se/bug/?i=19658
- [123] = https://curl.se/bug/?i=19602
- [124] = https://curl.se/bug/?i=19597
- [125] = https://curl.se/bug/?i=19651
- [126] = https://curl.se/bug/?i=19596
- [127] = https://curl.se/bug/?i=19594
- [128] = https://curl.se/bug/?i=19650
- [129] = https://curl.se/bug/?i=19649
- [130] = https://curl.se/bug/?i=19593
- [131] = https://curl.se/bug/?i=19591
- [132] = https://curl.se/bug/?i=19590
- [133] = https://curl.se/bug/?i=19471
- [134] = https://curl.se/bug/?i=19583
- [135] = https://curl.se/bug/?i=19796
- [136] = https://curl.se/bug/?i=19586
- [137] = https://curl.se/bug/?i=19578
- [138] = https://curl.se/bug/?i=19580
- [139] = https://curl.se/bug/?i=19579
- [140] = https://curl.se/bug/?i=19175
- [141] = https://curl.se/bug/?i=19854
- [142] = https://curl.se/bug/?i=19572
- [143] = https://curl.se/bug/?i=19581
- [144] = https://curl.se/bug/?i=19571
- [145] = https://curl.se/bug/?i=19794
- [146] = https://curl.se/bug/?i=19543
- [147] = https://curl.se/bug/?i=19568
- [148] = https://curl.se/bug/?i=19569
- [149] = https://curl.se/bug/?i=19567
- [150] = https://curl.se/bug/?i=19561
- [151] = https://curl.se/bug/?i=19560
- [152] = https://curl.se/bug/?i=19556
- [153] = https://curl.se/bug/?i=19564
- [154] = https://curl.se/bug/?i=19566
- [155] = https://curl.se/bug/?i=19788
- [156] = https://curl.se/bug/?i=19541
- [157] = https://curl.se/bug/?i=19520
- [158] = https://curl.se/bug/?i=19618
- [159] = https://curl.se/bug/?i=19540
- [160] = https://curl.se/bug/?i=19535
- [161] = https://curl.se/bug/?i=19640
- [162] = https://curl.se/bug/?i=19636
- [163] = https://curl.se/bug/?i=19637
- [164] = https://curl.se/bug/?i=19589
- [165] = https://curl.se/bug/?i=19790
- [166] = https://curl.se/bug/?i=19615
- [167] = https://curl.se/bug/?i=19609
- [168] = https://curl.se/bug/?i=19612
- [169] = https://curl.se/bug/?i=19748
- [170] = https://curl.se/bug/?i=19333
- [171] = https://curl.se/bug/?i=19714
- [172] = https://curl.se/bug/?i=19717
- [173] = https://curl.se/bug/?i=19789
- [174] = https://curl.se/bug/?i=19849
- [175] = https://curl.se/bug/?i=19784
- [176] = https://curl.se/bug/?i=19786
- [177] = https://curl.se/bug/?i=19462
- [178] = https://curl.se/bug/?i=19703
- [179] = https://curl.se/bug/?i=19705
- [180] = https://curl.se/bug/?i=19704
- [181] = https://curl.se/bug/?i=19702
- [182] = https://curl.se/bug/?i=19879
- [183] = https://curl.se/bug/?i=19701
- [184] = https://curl.se/bug/?i=19785
- [185] = https://curl.se/bug/?i=19781
- [186] = https://curl.se/bug/?i=19782
- [187] = https://curl.se/bug/?i=19164
- [188] = https://curl.se/bug/?i=19877
- [189] = https://curl.se/bug/?i=19604
- [190] = https://curl.se/bug/?i=19269
- [191] = https://curl.se/bug/?i=19663
- [192] = https://curl.se/bug/?i=19780
- [193] = https://curl.se/bug/?i=19779
- [194] = https://curl.se/bug/?i=19681
- [195] = https://curl.se/bug/?i=19692
- [196] = https://curl.se/bug/?i=19692
- [197] = https://curl.se/bug/?i=19687
- [198] = https://curl.se/bug/?i=19689
- [199] = https://curl.se/bug/?i=19688
- [200] = https://curl.se/bug/?i=19774
- [201] = https://curl.se/bug/?i=19775
- [202] = https://curl.se/bug/?i=19669
- [203] = https://curl.se/bug/?i=19683
- [204] = https://curl.se/bug/?i=19643
- [205] = https://curl.se/bug/?i=19838
- [206] = https://curl.se/bug/?i=19840
- [207] = https://curl.se/bug/?i=19844
- [208] = https://curl.se/bug/?i=19665
- [209] = https://curl.se/bug/?i=19384
- [210] = https://curl.se/bug/?i=19769
- [211] = https://curl.se/bug/?i=19768
- [212] = https://curl.se/bug/?i=19843
- [213] = https://curl.se/bug/?i=19842
- [214] = https://curl.se/bug/?i=19812
- [215] = https://curl.se/bug/?i=19764
- [216] = https://curl.se/bug/?i=18009
- [217] = https://curl.se/bug/?i=19763
- [218] = https://curl.se/bug/?i=20090
- [219] = https://curl.se/bug/?i=19759
- [220] = https://curl.se/bug/?i=19756
- [221] = https://curl.se/bug/?i=19761
- [222] = https://curl.se/bug/?i=16973
- [223] = https://curl.se/bug/?i=16973
- [224] = https://curl.se/bug/?i=20031
- [225] = https://curl.se/bug/?i=19754
- [226] = https://curl.se/bug/?i=19751
- [227] = https://curl.se/bug/?i=20028
- [228] = https://curl.se/bug/?i=19836
- [229] = https://curl.se/bug/?i=19872
- [230] = https://curl.se/bug/?i=19745
- [231] = https://curl.se/bug/?i=19970
- [232] = https://curl.se/bug/?i=19746
- [233] = https://curl.se/bug/?i=19853
- [234] = https://curl.se/bug/?i=19870
- [235] = https://curl.se/bug/?i=19869
- [236] = https://curl.se/bug/?i=19830
- [237] = https://curl.se/bug/?i=19866
- [238] = https://curl.se/bug/?i=19786
- [239] = https://curl.se/bug/?i=19828
- [240] = https://curl.se/bug/?i=19829
- [241] = https://curl.se/bug/?i=19826
- [242] = https://curl.se/bug/?i=19734
- [243] = https://curl.se/bug/?i=19733
- [244] = https://curl.se/bug/?i=19732
- [245] = https://curl.se/bug/?i=19824
- [246] = https://curl.se/bug/?i=19823
- [247] = https://curl.se/bug/?i=19798
- [248] = https://curl.se/bug/?i=19811
- [249] = https://curl.se/bug/?i=19813
- [250] = https://curl.se/bug/?i=19933
- [251] = https://curl.se/bug/?i=19970
- [252] = https://curl.se/bug/?i=19809
- [253] = https://curl.se/bug/?i=19800
- [254] = https://curl.se/bug/?i=19808
- [255] = https://curl.se/bug/?i=19803
- [256] = https://curl.se/bug/?i=19864
- [257] = https://curl.se/bug/?i=19802
- [258] = https://curl.se/bug/?i=19864
- [259] = https://curl.se/bug/?i=19864
- [260] = https://curl.se/bug/?i=19863
- [261] = https://curl.se/bug/?i=19816
- [262] = https://curl.se/bug/?i=19862
- [263] = https://curl.se/bug/?i=19861
- [264] = https://curl.se/bug/?i=19860
- [265] = https://github.com/curl/curl/commit/ce06fe7771052549ff430c86173b2eaca91f8a9c#r172215567
- [266] = https://curl.se/bug/?i=19857
- [267] = https://curl.se/bug/?i=19858
- [268] = https://curl.se/bug/?i=19753
- [269] = https://curl.se/bug/?i=19965
- [270] = https://curl.se/bug/?i=20093
- [271] = https://curl.se/bug/?i=20092
- [272] = https://curl.se/bug/?i=20026
- [273] = https://curl.se/bug/?i=20089
- [274] = https://curl.se/bug/?i=19964
- [275] = https://curl.se/bug/?i=18189
- [276] = https://curl.se/bug/?i=19922
- [277] = https://curl.se/bug/?i=19949
- [278] = https://curl.se/bug/?i=19920
- [279] = https://curl.se/bug/?i=19918
- [280] = https://curl.se/bug/?i=19770
- [281] = https://curl.se/bug/?i=20083
- [282] = https://curl.se/bug/?i=19960
- [283] = https://curl.se/bug/?i=19915
- [284] = https://curl.se/bug/?i=20086
- [285] = https://curl.se/bug/?i=19911
- [286] = https://curl.se/bug/?i=19900
- [287] = https://curl.se/bug/?i=20160
- [288] = https://curl.se/bug/?i=19907
- [289] = https://curl.se/bug/?i=20044
- [290] = https://curl.se/bug/?i=20091
- [291] = https://curl.se/bug/?i=19902
- [292] = https://curl.se/bug/?i=19888
- [293] = https://curl.se/bug/?i=20110
- [294] = https://curl.se/bug/?i=19901
- [295] = https://curl.se/bug/?i=19899
- [296] = https://curl.se/bug/?i=20080
- [297] = https://curl.se/bug/?i=19894
- [298] = https://curl.se/bug/?i=19740
- [299] = https://curl.se/bug/?i=19945
- [300] = https://curl.se/bug/?i=20108
- [301] = https://curl.se/bug/?i=19896
- [302] = https://curl.se/bug/?i=19942
- [303] = https://curl.se/bug/?i=19934
- [304] = https://curl.se/bug/?i=19944
- [305] = https://curl.se/bug/?i=19891
- [306] = https://curl.se/bug/?i=20010
- [307] = https://curl.se/bug/?i=19875
- [308] = https://curl.se/bug/?i=19887
- [309] = https://curl.se/bug/?i=19886
- [310] = https://curl.se/bug/?i=20012
- [311] = https://curl.se/bug/?i=19938
- [312] = https://curl.se/bug/?i=20011
- [313] = https://curl.se/bug/?i=20009
- [314] = https://curl.se/bug/?i=20008
- [315] = https://curl.se/bug/?i=20194
- [316] = https://curl.se/bug/?i=19997
- [317] = https://curl.se/bug/?i=20077
- [318] = https://curl.se/bug/?i=20002
- [319] = https://curl.se/bug/?i=19995
- [320] = https://curl.se/bug/?i=20001
- [321] = https://curl.se/bug/?i=20000
- [322] = https://curl.se/bug/?i=19966
- [323] = https://curl.se/bug/?i=19999
- [324] = https://curl.se/bug/?i=19980
- [325] = https://curl.se/bug/?i=19957
- [326] = https://curl.se/bug/?i=20067
- [327] = https://curl.se/bug/?i=20074
- [328] = https://curl.se/bug/?i=20075
- [329] = https://curl.se/bug/?i=19996
- [330] = https://curl.se/bug/?i=19992
- [331] = https://curl.se/bug/?i=20072
- [332] = https://curl.se/bug/?i=20103
- [333] = https://curl.se/bug/?i=20101
- [334] = https://curl.se/bug/?i=19984
- [335] = https://curl.se/bug/?i=19986
- [336] = https://curl.se/bug/?i=19978
- [337] = https://curl.se/bug/?i=20100
- [338] = https://curl.se/bug/?i=20100
- [339] = https://curl.se/bug/?i=20064
- [340] = https://curl.se/bug/?i=20063
- [341] = https://curl.se/bug/?i=20100
- [342] = https://curl.se/bug/?i=20198
- [343] = https://curl.se/bug/?i=20099
- [344] = https://curl.se/bug/?i=20184
- [345] = https://curl.se/bug/?i=20095
- [349] = https://curl.se/bug/?i=20157
- [350] = https://curl.se/bug/?i=20052
- [351] = https://curl.se/bug/?i=19983
- [352] = https://curl.se/bug/?i=20122
- [354] = https://curl.se/bug/?i=20042
- [355] = https://curl.se/bug/?i=20154
- [356] = https://curl.se/bug/?i=19286
- [357] = https://curl.se/bug/?i=20152
- [358] = https://curl.se/bug/?i=20151
- [359] = https://curl.se/bug/?i=20147
- [360] = https://curl.se/bug/?i=20043
- [361] = https://curl.se/bug/?i=20045
- [363] = https://curl.se/bug/?i=20038
- [364] = https://curl.se/bug/?i=20149
- [365] = https://curl.se/bug/?i=20030
- [366] = https://curl.se/bug/?i=20148
- [367] = https://curl.se/bug/?i=20032
- [369] = https://curl.se/bug/?i=20122
- [371] = https://curl.se/bug/?i=20139
- [372] = https://curl.se/bug/?i=20138
- [373] = https://curl.se/bug/?i=20119
- [374] = https://curl.se/bug/?i=20143
- [375] = https://curl.se/bug/?i=20134
- [376] = https://curl.se/bug/?i=20136
- [378] = https://curl.se/bug/?i=20120
- [379] = https://curl.se/bug/?i=20177
- [380] = https://curl.se/bug/?i=20132
- [381] = https://curl.se/bug/?i=20168
- [382] = https://curl.se/bug/?i=20130
- [383] = https://curl.se/bug/?i=20129
- [384] = https://curl.se/bug/?i=20126
- [385] = https://curl.se/bug/?i=20128
- [386] = https://curl.se/bug/?i=20127
- [388] = https://curl.se/bug/?i=20066
- [390] = https://curl.se/bug/?i=20118
- [391] = https://curl.se/bug/?i=20102
+ [1] = https://curl.se/bug/?i=20209
+ [3] = https://curl.se/bug/?i=20221
+ [4] = https://curl.se/bug/?i=20206
+ [6] = https://curl.se/bug/?i=20219
+ [7] = https://curl.se/bug/?i=20218
+ [8] = https://curl.se/bug/?i=20214
+ [13] = https://curl.se/bug/?i=20208
+ [15] = https://curl.se/bug/?i=20202
+ [17] = https://curl.se/bug/?i=20201
+ [18] = https://curl.se/bug/?i=20220
include/curl/curlver.h+3 -3
@@ -32,13 +32,13 @@
/* This is the version number of the libcurl package from which this header
file origins: */
-#define LIBCURL_VERSION "8.18.0-DEV"
+#define LIBCURL_VERSION "8.18.1-DEV"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 8
#define LIBCURL_VERSION_MINOR 18
-#define LIBCURL_VERSION_PATCH 0
+#define LIBCURL_VERSION_PATCH 1
/* This is the numeric version of the libcurl version number, meant for easier
parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will
always follow this syntax:
@@ -58,7 +58,7 @@
CURL_VERSION_BITS() macro since curl's own configure script greps for it
and needs it to contain the full number.
*/
-#define LIBCURL_VERSION_NUM 0x081200
+#define LIBCURL_VERSION_NUM 0x081201
/*
* This is the date and time when the full source package was created. The