#include #include #include #include extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { if (size < 2) return 0; // Use first byte to select which parsing function to exercise uint8_t selector = data[0]; const char *payload = reinterpret_cast(data + 1); size_t payload_size = size - 1; std::string input(payload, payload_size); switch (selector % 6) { case 0: { // parse_query_text httplib::Params params; httplib::detail::parse_query_text(payload, payload_size, params); break; } case 1: { // decode_query_component httplib::decode_query_component(input, true); httplib::decode_query_component(input, false); break; } case 2: { // decode_path_component httplib::decode_path_component(input); break; } case 3: { // encode_query_component httplib::encode_query_component(input); break; } case 4: { // normalize_query_string httplib::detail::normalize_query_string(input); break; } case 5: { // is_valid_path httplib::detail::is_valid_path(input); break; } } return 0; }