curl: Update to version 8.18.0

Message ID 20260120163311.3763307-5-adolf.belka@ipfire.org
State Staged
Commit 76f00fb74afc15d46bec75c265e2007f309be770
Headers
Series curl: Update to version 8.18.0 |

Commit Message

Adolf Belka 20 Jan 2026, 4:33 p.m. UTC
- Update from version 8.17.0 to 8.18.0
- No change to rootfile
- Changelog
    8.18.0
	Changes:
	    build: drop support for VS2008 (Windows)
	    build: drop Windows CE / CeGCC support
	    gnutls: drop support for GnuTLS < 3.6.5
	    gnutls: implement CURLOPT_CAINFO_BLOB
	    openssl: bump minimum OpenSSL version to 3.0.0
	Bugfixes:
	    _PROGRESS.md: add the E unit, mention kibibyte
	    alt-svc: more flexibility on same destination
	    altsvc: accept ma/persist per alternative entry
	    altsvc: make it one malloc instead of three per entry
	    AmigaOS: increase minimum stack size for tool_main
	    apple sectrust: fix ancient evaluation
	    apple-sectrust: always ask when `native_ca_store` is in use
	    asyn-ares: handle Curl_dnscache_mk_entry() OOM error
	    asyn-ares: remove hostname free on OOM
	    asyn-thrdd: fix Curl_async_getaddrinfo() on systems without getaddrinfo
	    asyn-thrdd: release rrname if ares_init_options fails
	    auth: always treat Curl_auth_ntlm_get() returning NULL as OOM
	    autotools: add nettle library detection via pkg-config (for GnuTLS)
	    autotools: drop autoconf <2.59 compatibility code (zz60-xc-ovr)
	    autotools: fix LargeFile feature display on Windows (after prev patch)
	    autotools: tidy-up `if` expressions
	    badwords: add fist -> first, fix fallouts
	    badwords: catch and fix threading-related words
	    badwords: fix issues found in scripts and other files
	    badwords: fix issues found in tests
	    build: add build-level `CURL_DISABLE_TYPECHECK` options
	    build: exclude clang prereleases from compiler warning options
	    build: replace `-pedantic` with `-Wpedantic` when supported
	    build: set `-Wno-format-signedness`
	    build: tidy-up MSVC CRT warning suppression macros
	    ccsidcurl: make curl_mime_data_ccsid() use the converted size
	    cf-h1-proxy: support folded headers in CONNECT responses
	    cf-https-connect: allocate ctx at first in cf_hc_create()
	    cf-socket: drop feature check for `IPV6_V6ONLY` on Windows
	    cf-socket: enable Win10 `TCP_KEEP*` options with old SDKs
	    cf-socket: limit use of `TCP_KEEP*` to Windows 10.0.16299+ at runtime
	    cf-socket: return OOM error if socket() fails due to OOM
	    cf-socket: trace ignored errors
	    cfilters: make conn_forget_socket a private libssh function
	    checksrc.pl: detect assign followed by more than one space
	    cmake: adjust defaults for target platforms not supporting shared libs
	    cmake: define dependencies as `IMPORTED` interface targets
	    cmake: delete unused file `CMake/CMakeConfigurableFile.in`
	    cmake: disable `CURL_CA_PATH` auto-detection if `USE_APPLE_SECTRUST=ON`
	    cmake: fix `ws2_32` reference in `curl-config.cmake`
	    cmake: honor `CURL_DISABLE_INSTALL` and `CURL_ENABLE_EXPORT_TARGET`
	    cmake: replace deprecated `OPENSSL_FOUND` with `OpenSSL_FOUND`
	    cmake: replace deprecated `PERL_FOUND` with `Perl_FOUND`
	    cmake: save and restore `CMAKE_MODULE_PATH` in `curl-config.cmake`
	    cmake: set found status to OFF when not found (for compression deps)
	    code: minor indent fixes before closing braces
	    CODE_STYLE.md: sync banned function list with checksrc.pl
	    compressed.md: might generate a huge amount of bytes
	    config-win32.h: delete obsolete, non-Windows comments
	    config-win32.h: drop unused/obsolete `CURL_HAS_OPENLDAP_LDAPSDK`
	    config2setopts: add space in cookie header with multiple -b
	    config2setopts: bail out if curl_url_get() returns OOM
	    config2setopts: exit if curl_url_set() fails on OOM
	    configure: delete unused variable
	    conncache: silence `-Wnull-dereference` on gcc 14 RISC-V 64
	    conncontrol: reuse handling
	    connect: reshuffle Curl_timeleft_ms to avoid 'redundant condition'
	    connection: attached transfer count
	    content_encoding: avoid strcpy
	    cookie. return proper error on OOM
	    cookie: allocate the main struct once cookie is fine
	    cookie: flush better
	    cookie: only keep and use the canonical cleaned up path
	    cookie: propagate errors better, cleanup the internal API
	    cookie: return error on OOM
	    cookie: when parsing a cookie header, delay all allocations until okay
	    cshutdn: acknowledge FD_SETSIZE for shutdown descriptors
	    curl: fix progress meter in parallel mode
	    curl_fopen: do not pass invalid mode flags to `open()` on Windows
	    curl_gssapi: make sure Curl_gss_log_error() has an initialized buffer
	    curl_ntlm_core: fix DES_* symbols for some wolfSSL builds
	    curl_quiche: refuse headers with CR, LF or null bytes
	    curl_sasl: if redirected, require permission to use bearer
	    curl_sasl: make Curl_sasl_decode_mech compare case insensitively
	    curl_setup.h: document more funcs flagged by `_CRT_SECURE_NO_WARNINGS`
	    curl_setup.h: drop stray `#undef stat` (Windows)
	    curl_setup.h: drop superfluous parenthesis from `Curl_safefree` macro
	    curl_threads: don't do another malloc if the first fails
	    curl_trc: delete unused DoH remains
	    CURLINFO: remove 'get' and 'get the' from each short desc
	    CURLINFO_SCHEME/PROTOCOL: they return the "scheme" for a "transfer"
	    CURLINFO_TLS_SSL_PTR.md: remove CURLINFO_TLS_SESSION text
	    CURLMOPT_SOCKETFUNCTION.md: fix the callback argument use
	    CURLOPT_ACCEPT_ENCODING.md: warn about the expansion
	    CURLOPT_FOLLOWLOCATION.md: s/Authentication:/Authorization:/
	    CURLOPT_HAPROXY_CLIENT_IP.md: emphasize reused connection use
	    CURLOPT_READFUNCTION.md: clarify the size of the buffer
	    CURLOPT_SSH_KEYFUNCTION.md: fix minor indent mistake in example
	    curlx/fopen: replace open CRT functions their with `_s` counterparts
		(Windows)
	    curlx/multibyte: stop setting macros for non-Windows
	    curlx/strerr: use `strerror_s()` on Windows
	    curlx: add `curlx_rename()`, fix to support long filenames on Windows
	    curlx: curlx_strcopy() instead of strcpy()
	    curlx: limit use of system allocators to the minimum possible
	    curlx: replace `mbstowcs`/`wcstombs` with `_s` counterparts (Windows)
	    curlx: replace `sprintf` with `snprintf`
	    curlx: use curl alloc in `curlx_win32_stat()` (Windows)
	    curlx: use curlx allocators in non-memdebug builds (Windows)
	    DEPRECATE: add CMake <3.18 deprecation for April 2026
	    digest: fix OWS and escaped quote handling
	    digest_sspi: fix a memory leak on error path
	    digest_sspi: properly free sspi identity
	    DISTROS.md: add OpenBSD
	    DISTROS: fix a Mageia URL
	    DISTROS: remove broken URLs for buildroot
	    doc: some returned in-memory data may not be altered
	    Dockerfile: update debian:bookworm-slim digest to e899040
	    docs/libcurl: fix C formatting nits
	    docs: add a note about --compressed to note about binary output
	    docs: clarify how to do unix domain sockets with SOCKS proxy
	    docs: fix checksrc `EQUALSPACE` warnings
	    docs: fix time_posttransfer output unit as seconds
	    docs: mention umask need when curl creates files
	    docs: remove dead URLs
	    docs: rename CURLcode variables to 'result'
	    docs: spell it Rustls with a capital R
	    docs: switch more URLs to https://
	    docs: use .example URLs for proxies
	    docs: use mresult as variable name for CURLMcode
	    escape: add a length check in curl_easy_escape
	    example: fix formatting nits
	    examples/crawler: fix variable
	    examples/multi-uv: fix invalid req->data access
	    examples/threaded-ssl: delete in favor of `examples/threaded`
	    examples/threaded: fix race condition
	    examples: fix minor typo
	    examples: make functions/data static where missing
	    examples: tidy-up headers and includes
	    examples: use 64-bit `fstat` on Windows
	    FAQ/TODO/KNOWN_BUGS: convert to markdown
	    FAQ: fix hackerone URL
	    file: do not pass invalid mode flags to `open()` on upload (Windows)
	    formdata: validate callback is non-NULL before use
	    ftp: make EPRT connections non-blocking
	    ftp: refactor a piece of code by merging the repeated part
	    ftp: remove #ifdef for define that is always defined
	    ftp: return better on OOM in two places
	    ftp: return from ftp_state_use_port immediately on OOM
	    getenv: drop internal 1-to-1 wrapper
	    getinfo: improve perf in debug mode
	    gnutls: add PROFILE_MEDIUM as default
	    gnutls: report accurate error when TLS-SRP is not built-in
	    gtls: add return checks and optimize the code
	    gtls: Call keylog_close in cleanup
	    gtls: skip session resumption when verifystatus is set
	    h2/h3: handle methods with spaces
	    headers: add length argument to Curl_headers_push()
	    hostcheck: fail wildcard match if host starts with a dot
	    hostip.h: drop redundant `setjmp.h` include
	    hostip: don't store negative lookup on OOM
	    hostip: make more functions return CURLcode
	    hostip: only store negative response for CURLE_COULDNT_RESOLVE_HOST
	    hsts: propagate and error out correctly on OOM
	    hsts: use one malloc instead of two per entry
	    http: acknowledge OOM errors from Curl_input_ntlm
	    http: avoid two strdup()s and do minor simplifications
	    http: error on OOM when creating range header
	    http: fix OOM exit in Curl_http_follow
	    http: handle oom error from Curl_input_digest()
	    http: replace atoi use in Curl_http_follow with curlx_str_number
	    http: return OOM errors from hsts properly
	    http: the :authority header should never contain user+password
	    http: unfold response headers earlier
	    idn: avoid allocations and wcslen on Windows
	    idn: clarify null-termination on Windows
	    idn: fix memory leak in `win32_ascii_to_idn()`
	    idn: use curlx allocators on Windows
	    imap: check buffer length before accessing it
	    imap: make sure Curl_pgrsSetDownloadSize() does not overflow
	    inet_ntop: avoid the strlen()
	    INSTALL-CMAKE.md: document static option defaults more
	    krb5: fix detecting channel binding feature
	    krb5_sspi: unify a part of error handling
	    ldap: call ldap_init() before setting the options
	    ldap: drop PP logic for old, unsupported, Windows SDKs
	    ldap: improve detection of Apple LDAP
	    ldap: provide version for "legacy" ldap as well
	    lib/sendf.h: forward declare two structs
	    lib: cleanup for some typos about spaces and code style
	    lib: create unitprotos.h in the builddir, not srcdir
	    lib: drop unused or duplicate `curlx/timeval.h` includes
	    lib: drop unused protocol headers
	    lib: eliminate size_t casts
	    lib: error for OOM when extracting URL query
	    lib: fix formatting nits (part 2)
	    lib: fix formatting nits (part 3)
	    lib: fix formatting nits
	    lib: fix gssapi.h include on IBMi
	    lib: name the main CURLMcode variable 'mresult'
	    lib: refactor the type of funcs which have useless return and checks
	    lib: replace `_tcsncpy`/`wcsncpy`/`wcscpy` with `_s` counterparts (Windows)
	    lib: timer stats improvements
	    lib: use `SOCKET_WRITABLE()`/`SOCKET_READABLE()` where possible
	    libssh2: add paths to error messages for quote commands
	    libssh2: cleanup ssh_force_knownhost_key_type
	    libssh2: consider strdup() failures OOM and return correctly
	    libssh2: replace atoi() in ssh_force_knownhost_key_type
	    libssh: fix state machine loop to progress as it should
	    libssh: properly free sftp_attributes
	    libssh: require private key or user-agent for public key auth
	    libssh: set both knownhosts options to the same file
	    libtests: replace `atoi()` with `curlx_str_number()`
	    limit-rate: add example using --limit-rate and --max-time together
	    localtime: detect thread-safe alternatives and use them
	    m4/sectrust: fix test(1) operator
	    manage: expand the 'libcurl support required' message
	    mbedTLS: cleanup insecure/deprecated code
	    mbedtls: fix potential use of uninitialized `nread`
	    mbedtls: sync format across log messages
	    mbedtls_threadlock: avoid calloc, use array
	    mdlinkcheck: ignore IP numbers, allow '@' in raw URLs
	    mdlinkcheck: only look for markdown links in markdown files
	    memdebug: add mutex for thread safety
	    memdebug: fix realloc logging
	    mk-ca-bundle.md: the file format docs URL is permaredirected
	    mk-ca-bundle.pl: default to SHA256 fingerprints with `-t` option
	    mk-ca-bundle.pl: use `open()` with argument list to replace backticks
	    mqtt: reject overly big messages
	    mqtt: return error when a too large packet is decoded
	    multi: make max_total_* members size_t
	    multi: remove MSTATE_TUNNELING
	    multi: simplify admin handle processing
	    multibyte: limit `curlx_convert_*wchar*()` functions to Unicode builds
	    ngtcp2+openssl: fix leak of session
	    ngtcp2: remove the unused Curl_conn_is_ngtcp2 function
	    ngtcp2: retune window sizes
	    noproxy: fix build on systems without IPv6
	    noproxy: fix ipv6 handling
	    noproxy: replace atoi with curlx_str_number
	    openssl: exit properly on OOM when getting certchain
	    openssl: fix a potential memory leak of bio_out
	    openssl: fix a potential memory leak of params.cert
	    openssl: fix building against no-dsa openssl
	    openssl: fix building against no-ocsp openssl with Apple SecTrust
	    openssl: no verify failf message unless strict
	    openssl: release ssl_session if sess_reuse_cb fails
	    openssl: remove code handling default version
	    openssl: simplify `HAVE_KEYLOG_CALLBACK` guard
	    openssl: stop checking for `OPENSSL_NO_SHA*` macros
	    openssl: stop checking for `OPENSSL_NO_TLSEXT` macro
	    openssl: toggling CURLSSLOPT_NO_PARTIALCHAIN makes a different CA cache
	    OS400/ccsidcurl: fix curl_easy_setopt_ccsid for non-converted blobs
	    OS400/makefile.sh: fix shellcheck warning SC2038
	    os400sys: replace `strcpy()` with `memcpy()`
	    osslq: code readability
	    progress: make it one column narrower
	    progress: narrower time display, multiple fixes
	    progress: show fewer digits
	    projects/README.md: Markdown fixes
	    pytest fixes and improvements
	    pytest: add tests using sshd
	    pytest: disable two H3 earlydata tests for all platforms (was: macOS)
	    pytest: do not ignore server issues
	    pytest: enable OCSP test 17_08 for LibreSSL
	    pytest: fix and improve reliability
	    pytest: improve stragglers
	    pytest: quiche flakiness
	    pytest: skip H2 tests if feature missing from curl
	    quiche: use client writer
	    ratelimit blocking: fix busy loop
	    ratelimit: redesign
	    rtmp: fix double-free on URL parse errors
	    rtmp: precaution for a potential integer truncation
	    rtmp: stop redefining `setsockopt` system symbol on Windows
	    runner.pm: run memanalyzer as a Perl module
	    runtests: add options to set minimum number of tests, use them
	    runtests: detect bad libssh differently for test 1459
	    runtests: drop Python 2 support remains
	    runtests: enable torture testing with threaded resolver
	    runtests: improve XML prolog check, enable `-w` permanently, fix two tests
	    runtests: make memanalyzer a Perl module (for 1.1-2x speed-up per test run)
	    rustls: fix a potential memory issue
	    rustls: minor adjustment of sizeof()
	    rustls: simplify init err path
	    rustls: verify that verifier_builder is not NULL
	    schannel: cap the maximum allowed size for loading cert
	    schannel: fix memory leak of cert_store_path on four error paths
	    schannel: replace atoi() with curlx_str_number()
	    schannel: use Win8 `CERT_NAME_SEARCH_ALL_NAMES_FLAG` with old SDKs
	    schannel_verify: fix a memory leak of cert_context
	    scripts: fix shellcheck SC2046 warnings
	    scripts: use end-of-options marker in `find -exec` commands
	    setopt: disable CURLOPT_HAPROXY_CLIENT_IP on NULL
	    setopt: when setting bad protocols, don't store them
	    sftp: fix range downloads in both SSH backends
	    slist: constify Curl_slist_append_nodup() string argument
	    smb: fix a size check to be overflow safe
	    socketpair: drop redundant `_WIN32` branch and include
	    socks_sspi: use free() not FreeContextBuffer()
	    source: misc typos
	    speedcheck: do not trigger low speed cancel on transfers with
		CURL_READFUNC_PAUSE
	    speedlimit: also reset on send unpausing
	    src: drop redundant definition of `BIT()`
	    src: fix formatting nits
	    ssh: tracing and better pollset handling
	    sspi: fix memory leaks on error paths in `Curl_create_sspi_identity()`
	    sws: fix binding to unix socket on Windows
	    synctime: tidy up, make it work on all platforms
	    telnet: abort on bad suboption sequence
	    telnet: replace atoi for BINARY handling with curlx_str_number
	    TEST-SUITE.md: correct the man page's path
	    test07_22: fix flakiness
	    test1475: consistently use %CR in headers
	    test1498: disable 'HTTP PUT from stdin' test on Windows
	    test2045: replace HTML multi-line comment markup with `#` comments
	    test318: tweak the name a little
	    test3207: enable memdebug for this test again
	    test363: delete stray character (typo) from a section tag
	    test568: fix codespell, catch it next time early in CI
	    test568: remove what looks like an email and a URL
	    test787: fix possible typo `&` -> `%` in curl option
	    test96: fix to accept non-unity memdump content with MSVC
	    tests/data: move `--libcurl` output to external data files
	    tests/data: replace hard-coded test numbers with `%TESTNUMBER`
	    tests/data: support using native newlines on disk, drop `.gitattributes`
	    tests/server: do not fall back to original data file in `test2fopen()`
	    tests/server: fix initialization on Windows Vista+
	    tests/server: replace `atoi()` and `atol()` with `curlx_str_number()`
	    tests: add `%AMP` macro, use it in two tests
	    tests: add a standard log line for alloc failures
	    tests: allow 2500-2503 to use ~2MB malloc
	    tests: drop redundant parenthesis from two macro expressions
	    tests: fix formatting nits
	    tests: rename CURLMcode variables to mresult
	    tftp: release filename if conn_get_remote_addr fails
	    tftpd: fix/tidy up `open()` mode flags
	    tidy-up: avoid `(())`, clang-format fixes and more
	    tidy-up: move `CURL_UNCONST()` out from macro `curl_unicodefree()`
	    tidy-up: URLs (cont.) and mdlinkcheck
	    tidy-up: URLs
	    TODO: remove a mandriva.com reference
	    tool: consider (some) curl_easy_setopt errors fatal
	    tool: log when loading .curlrc in verbose mode
	    tool_cfgable: free ssl-sessions at exit
	    tool_doswin: clear pointer when thread takes ownership
	    tool_doswin: increase allowable length of path sanitizer
	    tool_doswin: remove the max length check
	    tool_getparam: simplify the --rate parser
	    tool_getparam: use memdup0() instead of malloc + copy
	    tool_getparam: verify that a file exists for some options
	    tool_help: add checks to avoid unsigned wrap around
	    tool_ipfs: check return codes better
	    tool_msgs: make voutf() use stack instead of heap
	    tool_operate: exit on curl_share_setopt errors
	    tool_operate: fix a case of ignoring return code in operate()
	    tool_operate: fix case of ignoring return code in single_transfer
	    tool_operate: remove redundant condition
	    tool_operate: return error for OOM in append2query
	    tool_operate: use curlx_str_number instead of atoi
	    tool_paramhlp: refuse --proto remove all protocols
	    tool_paramhlp: remove a malloc+free from proto2num()
	    tool_paramhlp: simplify number parsing
	    tool_progress: fix large time outputs and decimal size display
	    tool_urlglob: acknowledge OOM in peek_ipv6
	    tool_urlglob: clean up used memory on errors better
	    tool_urlglob: constify an argument
	    tool_urlglob: fix propagating OOM error from `sanitize_file_name()`
	    tool_urlglob: support globs as long as config line lengths
	    tool_writeout: bail out proper on OOM
	    url: fix return code for OOM in parse_proxy()
	    url: if curl_url_get() fails due to OOM, error out properly
	    url: if OOM in parse_proxy() return error
	    url: return error at once when OOM in netrc handling
	    urlapi: fix mem-leaks in curl_url_get error paths
	    urlapi: handle OOM properly when setting URL
	    urlapi: return OOM correctly from parse_hostname_login()
	    verify-release: update to avoid shellcheck warning SC2034
	    vquic-tls/gnutls: call Curl_gtls_verifyserver unconditionally
	    vquic: do not pass invalid mode flags to `open()` (Windows)
	    vquic: do_sendmsg full init
	    vquic: ignore 0-length UDP packets
	    vquic: initialize new callback in nghttp3 1.14.0+
	    vtls: drop unused `use_alpn` from `ssl_connect_data` struct
	    vtls: fix CURLOPT_CAPATH use
	    vtls: handle possible malicious certs_num from peer
	    vtls: pinned key check
	    VULN-DISCLOSURE-POLICY.md: CRLF in data
	    wcurl: import v2025.11.09
	    wcurl: import v2026.01.05
	    windows: assume `USE_WIN32_LARGE_FILES`
	    windows: fix `CreateFile()` calls to support long filenames
	    windows: use `_strdup()` instead of `strdup()` where missing
	    wolfSSL: able to differentiate between IP and DNS in alt names
	    wolfssl: avoid NULL dereference in OOM situation
	    wolfssl: fix a potential memory leak of session
	    wolfssl: fix cipher list, skip 5.8.4 regression
	    wolfssl: fix possible assert with `!HAVE_NO_EX` wolfSSL builds
	    wolfssl: proof use of wolfSSL_i2d_SSL_SESSION
	    wolfssl: simplify wssl_send_earlydata
	    ws: replace a cast by matching the format string
	    x509asn1: drop unused `hostcheck.h`, `vtls_int.h` includes

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 lfs/curl | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Patch

diff --git a/lfs/curl b/lfs/curl
index 33f46881a..eda7cfec1 100644
--- a/lfs/curl
+++ b/lfs/curl
@@ -1,7 +1,7 @@ 
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2025  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2026  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 8.17.0
+VER        = 8.18.0
 
 THISAPP    = curl-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = a7a804afe058f323b40177bcb4ffc523decde92da3da0a051f2dc1b566131250a96afe1ebf2bebc071993c893bddeef883ef33ddc0a9bee86d4e54402a546fba
+$(DL_FILE)_BLAKE2 = 16e1539616c1800dfa08a5bd3e38ff75d2906a4a574b1541509c69200aebe680b0a5efdf1b1e0c89f3cccb6001bfe1c1459b9fd815053c964e1a1434be1e2e0e
 
 install : $(TARGET)