From 718d7d92b993d8fdf6a74d82af8572b96787a909 Mon Sep 17 00:00:00 2001 From: yhirose Date: Mon, 16 Feb 2026 06:21:40 -0500 Subject: [PATCH] Fix problems in Unit tests --- test/test.cc | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/test/test.cc b/test/test.cc index 0ba60fdc..257b78eb 100644 --- a/test/test.cc +++ b/test/test.cc @@ -9153,8 +9153,19 @@ TEST(ClientVulnerabilityTest, ZipBombWithoutContentLength) { auto cli = ::accept(srv, reinterpret_cast(&cli_addr), &cli_len); if (cli != INVALID_SOCKET) { + // Read the full HTTP request (until \r\n\r\n) char buf[4096]; - ::recv(cli, buf, sizeof(buf), 0); + size_t total = 0; + while (total < sizeof(buf)) { + auto n = ::recv(cli, buf + total, sizeof(buf) - total, 0); + if (n <= 0) break; + total += static_cast(n); + // Check for end of headers + if (total >= 4) { + std::string req(buf, total); + if (req.find("\r\n\r\n") != std::string::npos) break; + } + } // Malicious response: gzip-compressed body, no Content-Length std::string response_header = "HTTP/1.1 200 OK\r\n" @@ -11633,7 +11644,7 @@ TEST(TaskQueueTest, IncreaseAtomicIntegerWithQueueLimit) { unsigned int queued_count{0}; std::atomic_uint count{0}; std::unique_ptr task_queue{ - new ThreadPool{/*num_threads=*/1, qlimit}}; + new ThreadPool{/*num_threads=*/1, /*max_threads=*/1, qlimit}}; for (unsigned int i = 0; i < number_of_tasks; ++i) { if (task_queue->enqueue( @@ -11654,7 +11665,7 @@ TEST(TaskQueueTest, IncreaseAtomicIntegerWithQueueLimit) { TEST(TaskQueueTest, MaxQueuedRequests) { static constexpr unsigned int qlimit{3}; - std::unique_ptr task_queue{new ThreadPool{1, qlimit}}; + std::unique_ptr task_queue{new ThreadPool{1, 1, qlimit}}; std::condition_variable sem_cv; std::mutex sem_mtx; int credits = 0;