1 #include <stddef.h> 2 #include <stdint.h> 3 4 #include <fuzzer/FuzzedDataProvider.h> 5 6 #include <memory> 7 #include <string> 8 9 #include "net/server/web_socket_encoder.h" 10 LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)11extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { 12 FuzzedDataProvider fuzzed_data_provider(data, size); 13 auto server = net::WebSocketEncoder::CreateServer(); 14 int bytes_consumed; 15 std::string decoded; 16 17 while (fuzzed_data_provider.remaining_bytes() > 0) { 18 size_t chunk_size = fuzzed_data_provider.ConsumeIntegralInRange(1, 125); 19 std::string chunk = fuzzed_data_provider.ConsumeBytesAsString(chunk_size); 20 server->DecodeFrame(chunk, &bytes_consumed, &decoded); 21 } 22 return 0; 23 }