summaryrefslogtreecommitdiff
path: root/libs/cpp-httplib/test/fuzzing/server_fuzzer.cc
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@mailbox.org>2026-01-09 15:28:38 +0100
committerAldrik Ramaekers <aldrik@mailbox.org>2026-01-09 15:28:38 +0100
commit210404a73706993d197c1290d5a411394e176fbe (patch)
tree93c3ea9fc4691ca42f26dd92c6e14627af0b47af /libs/cpp-httplib/test/fuzzing/server_fuzzer.cc
parenta65e876f3277a7d7fca6e5129ac3e200dae2d0dc (diff)
remove unused lib files
Diffstat (limited to 'libs/cpp-httplib/test/fuzzing/server_fuzzer.cc')
-rw-r--r--libs/cpp-httplib/test/fuzzing/server_fuzzer.cc100
1 files changed, 0 insertions, 100 deletions
diff --git a/libs/cpp-httplib/test/fuzzing/server_fuzzer.cc b/libs/cpp-httplib/test/fuzzing/server_fuzzer.cc
deleted file mode 100644
index a0f7c0e..0000000
--- a/libs/cpp-httplib/test/fuzzing/server_fuzzer.cc
+++ /dev/null
@@ -1,100 +0,0 @@
-#include <cstdint>
-
-#include <httplib.h>
-
-class FuzzedStream : public httplib::Stream {
-public:
- FuzzedStream(const uint8_t *data, size_t size)
- : data_(data), size_(size), read_pos_(0) {}
-
- ssize_t read(char *ptr, size_t size) override {
- if (size + read_pos_ > size_) { size = size_ - read_pos_; }
- memcpy(ptr, data_ + read_pos_, size);
- read_pos_ += size;
- return static_cast<ssize_t>(size);
- }
-
- ssize_t write(const char *ptr, size_t size) override {
- response_.append(ptr, size);
- return static_cast<int>(size);
- }
-
- ssize_t write(const char *ptr) { return write(ptr, strlen(ptr)); }
-
- ssize_t write(const std::string &s) { return write(s.data(), s.size()); }
-
- bool is_readable() const override { return true; }
-
- bool wait_readable() const override { return true; }
-
- bool wait_writable() const override { return true; }
-
- void get_remote_ip_and_port(std::string &ip, int &port) const override {
- ip = "127.0.0.1";
- port = 8080;
- }
-
- void get_local_ip_and_port(std::string &ip, int &port) const override {
- ip = "127.0.0.1";
- port = 8080;
- }
-
- socket_t socket() const override { return 0; }
-
- time_t duration() const override { return 0; };
-
-private:
- const uint8_t *data_;
- size_t size_;
- size_t read_pos_;
- std::string response_;
-};
-
-class FuzzableServer : public httplib::Server {
-public:
- void ProcessFuzzedRequest(FuzzedStream &stream) {
- bool connection_close = false;
- process_request(stream,
- /*remote_addr=*/"",
- /*remote_port =*/0,
- /*local_addr=*/"",
- /*local_port =*/0,
- /*last_connection=*/false, connection_close, nullptr);
- }
-};
-
-static FuzzableServer g_server;
-
-extern "C" int LLVMFuzzerInitialize(int * /*argc*/, char *** /*argv*/) {
- g_server.Get(R"(.*)",
- [&](const httplib::Request & /*req*/, httplib::Response &res) {
- res.set_content("response content", "text/plain");
- });
- g_server.Post(R"(.*)",
- [&](const httplib::Request & /*req*/, httplib::Response &res) {
- res.set_content("response content", "text/plain");
- });
- g_server.Put(R"(.*)",
- [&](const httplib::Request & /*req*/, httplib::Response &res) {
- res.set_content("response content", "text/plain");
- });
- g_server.Patch(R"(.*)",
- [&](const httplib::Request & /*req*/, httplib::Response &res) {
- res.set_content("response content", "text/plain");
- });
- g_server.Delete(
- R"(.*)", [&](const httplib::Request & /*req*/, httplib::Response &res) {
- res.set_content("response content", "text/plain");
- });
- g_server.Options(
- R"(.*)", [&](const httplib::Request & /*req*/, httplib::Response &res) {
- res.set_content("response content", "text/plain");
- });
- return 0;
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
- FuzzedStream stream{data, size};
- g_server.ProcessFuzzedRequest(stream);
- return 0;
-}