Remove btree_scheduler_fuzzer Its implementation is incorrect (it uses exit(), and that apparently does not work for LLVM fuzzers), and its ability to find actual bugs is really limited. PiperOrigin-RevId: 524901874
diff --git a/build/source_list.bzl b/build/source_list.bzl index 6501eb8..3ddc596 100644 --- a/build/source_list.bzl +++ b/build/source_list.bzl
@@ -1308,7 +1308,6 @@ ] fuzzers_srcs = [ - "common/btree_scheduler_fuzzer.cc", "common/structured_headers_fuzzer.cc", "quic/core/crypto/certificate_view_der_fuzzer.cc", "quic/core/crypto/certificate_view_pem_fuzzer.cc",
diff --git a/build/source_list.gni b/build/source_list.gni index 7d493d2..3950cd3 100644 --- a/build/source_list.gni +++ b/build/source_list.gni
@@ -1308,7 +1308,6 @@ ] fuzzers_srcs = [ - "src/quiche/common/btree_scheduler_fuzzer.cc", "src/quiche/common/structured_headers_fuzzer.cc", "src/quiche/quic/core/crypto/certificate_view_der_fuzzer.cc", "src/quiche/quic/core/crypto/certificate_view_pem_fuzzer.cc",
diff --git a/build/source_list.json b/build/source_list.json index 1bd8736..3e8c573 100644 --- a/build/source_list.json +++ b/build/source_list.json
@@ -1307,7 +1307,6 @@ ], "fuzzers_srcs": [ - "quiche/common/btree_scheduler_fuzzer.cc", "quiche/common/structured_headers_fuzzer.cc", "quiche/quic/core/crypto/certificate_view_der_fuzzer.cc", "quiche/quic/core/crypto/certificate_view_pem_fuzzer.cc",
diff --git a/quiche/common/btree_scheduler_fuzzer.cc b/quiche/common/btree_scheduler_fuzzer.cc deleted file mode 100644 index eb71645..0000000 --- a/quiche/common/btree_scheduler_fuzzer.cc +++ /dev/null
@@ -1,46 +0,0 @@ -// Copyright 2023 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "quiche/common/btree_scheduler.h" -#include "quiche/common/quiche_data_reader.h" - -namespace { -uint8_t ReadUint8(quiche::QuicheDataReader& reader) { - uint8_t result; - if (!reader.ReadUInt8(&result)) { - exit(0); - } - return result; -} -} // namespace - -// Simple fuzzer that attempts to drive the scheduler into an invalid state that -// would cause a QUICHE_BUG or a crash. -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data_ptr, size_t size) { - quiche::BTreeScheduler<uint8_t, uint8_t> scheduler; - quiche::QuicheDataReader reader(reinterpret_cast<const char*>(data_ptr), - size); - while (!reader.IsDoneReading()) { - switch (ReadUint8(reader)) { - case 0: - (void)scheduler.Register(ReadUint8(reader), ReadUint8(reader)); - break; - case 1: - (void)scheduler.Unregister(ReadUint8(reader)); - break; - case 2: - (void)scheduler.UpdatePriority(ReadUint8(reader), ReadUint8(reader)); - break; - case 3: - (void)scheduler.Schedule(ReadUint8(reader)); - break; - case 4: - (void)scheduler.PopFront(); - break; - default: - return 0; - } - } - return 0; -}