web_socket_encoder_fuzzer.cc 679 B

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