// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include #include #include #include #include "net/third_party/quiche/src/quiche/quic/core/crypto/transport_parameters.h" // Entry point for LibFuzzer. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { FuzzedDataProvider data_provider(data, size); auto perspective = data_provider.ConsumeBool() ? quic::Perspective::IS_CLIENT : quic::Perspective::IS_SERVER; quic::TransportParameters transport_parameters; std::vector remaining_bytes = data_provider.ConsumeRemainingBytes(); quic::ParsedQuicVersion version = quic::AllSupportedVersionsWithTls().front(); CHECK(version.UsesTls()); std::string error_details; quic::ParseTransportParameters(version, perspective, remaining_bytes.data(), remaining_bytes.size(), &transport_parameters, &error_details); return 0; }