Commit ff0dbb975 for llama.cpp
commit ff0dbb975e93a9a2899efa34bdd32d1c5cfbc183
Author: Adrien Gallouët <angt@huggingface.co>
Date: Mon Sep 21 22:50:20 2026 +0200
vendor : update cpp-httplib to 0.57.1 (#29239)
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
diff --git a/scripts/sync_vendor.py b/scripts/sync_vendor.py
index 7d5ab77dd..b320884bb 100755
--- a/scripts/sync_vendor.py
+++ b/scripts/sync_vendor.py
@@ -5,7 +5,7 @@ import os
import sys
import subprocess
-HTTPLIB_VERSION = "refs/tags/v0.57.0"
+HTTPLIB_VERSION = "refs/tags/v0.57.1"
# used by examples/gguf-hash, these repos have no release tag, so we pin a commit
XXHASH_COMMIT = "9f465f1ea932d6ad9a26cd77496311ffa544cd68"
diff --git a/vendor/cpp-httplib/httplib.cpp b/vendor/cpp-httplib/httplib.cpp
index e6d1db0f0..df79b3c7d 100644
--- a/vendor/cpp-httplib/httplib.cpp
+++ b/vendor/cpp-httplib/httplib.cpp
@@ -3854,11 +3854,13 @@ bool read_content(Stream &strm, T &x, size_t payload_max_length, int &status,
ssize_t write_request_line(Stream &strm, const std::string &method,
const std::string &path) {
- // A request target must not carry CR/LF (or other control octets); otherwise
- // a value smuggled into it splits the request line and injects headers or a
- // whole request. The same field-value check already guards header values in
- // check_and_write_headers and the request target in
- // perform_websocket_handshake; apply it here too.
+ // Neither the method nor the request target may carry CR/LF (or other
+ // control octets); otherwise a value smuggled into either splits the request
+ // line and injects headers or a whole request. The method must be a token
+ // (RFC 9110 Section 9.1), which also rejects an empty method and embedded
+ // spaces. The target gets the same field-value check that already guards
+ // header values in check_and_write_headers.
+ if (!fields::is_token(method)) { return -1; }
if (!fields::is_field_value(path)) { return -1; }
std::string s = method;
@@ -11105,9 +11107,10 @@ bool ClientImpl::write_request(Stream &strm, Request &req,
// Write request line and headers
if (detail::write_request_line(bstrm, req.method, path_with_query) < 0) {
- // A rejected target (e.g. CR/LF smuggled in via a decoded redirect
- // Location under set_path_encode(false)) must fail the request cleanly
- // instead of emitting a request-line-less, header-injecting request.
+ // A rejected method (not a token, e.g. carrying CR/LF) or target (e.g.
+ // CR/LF smuggled in via a decoded redirect Location under
+ // set_path_encode(false)) must fail the request cleanly instead of
+ // emitting a request-line-less, header-injecting request.
error = Error::Write;
output_error_log(error, &req);
return false;
diff --git a/vendor/cpp-httplib/httplib.h b/vendor/cpp-httplib/httplib.h
index 2c4382560..ba603ed25 100644
--- a/vendor/cpp-httplib/httplib.h
+++ b/vendor/cpp-httplib/httplib.h
@@ -8,8 +8,8 @@
#ifndef CPPHTTPLIB_HTTPLIB_H
#define CPPHTTPLIB_HTTPLIB_H
-#define CPPHTTPLIB_VERSION "0.57.0"
-#define CPPHTTPLIB_VERSION_NUM "0x003900"
+#define CPPHTTPLIB_VERSION "0.57.1"
+#define CPPHTTPLIB_VERSION_NUM "0x003901"
#ifdef _WIN32
#if defined(_WIN32_WINNT) && _WIN32_WINNT < 0x0A00