From 3214f860846f5babc4e2bbbaa115484e525a72ac Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 4 May 2026 21:59:31 +0200 Subject: [PATCH] fix: prevent segfault on OPTIONS preflight requests Using http::empty_body with prepare_payload() causes Boost.Beast to use chunked transfer encoding for keep-alive connections, but the empty_body serializer cannot produce valid chunked buffers. Switch to http::string_body with an empty body, which correctly sets Content-Length: 0 instead. Tested on: Linux 7.0.0-14-generic (Ubuntu), AMD Ryzen AI 9 HX 370 w/ Radeon 890M Closes #379 --- src/server/server.cpp | 3 ++- src/server/server.hpp | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/server.cpp b/src/server/server.cpp index 85ac84f8..f1ab4c63 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -254,7 +254,8 @@ void HttpSession::handle_request(bool cors) { header_print("✈️ ", "Handling Preflight (OPTIONS) request"); // reponse empty body for OPTIONS - auto options_res = std::make_shared>(); + auto options_res = std::make_shared>(); + options_res->body() = ""; options_res->version(req_.version()); options_res->result(http::status::ok); options_res->keep_alive(req_.keep_alive()); diff --git a/src/server/server.hpp b/src/server/server.hpp index b64a7aa6..94a69905 100644 --- a/src/server/server.hpp +++ b/src/server/server.hpp @@ -11,7 +11,6 @@ #include #include #include -#include #include #include #include