Remove balsa_fuzz_test.[c|h] and dependency in http_validation_policy.h balsa_frame_fuzz_test was removed from OSS in cl/859598858 but these util files were not removed. Keeping them around makes it hard to introduce a new, hidden HttpValidationPolicy option cleanly so let's just remove them all. Protected by oss only change. PiperOrigin-RevId: 918649591
diff --git a/build/source_list.bzl b/build/source_list.bzl index b8ca2e7..601aea1 100644 --- a/build/source_list.bzl +++ b/build/source_list.bzl
@@ -785,12 +785,6 @@ "quic/tools/simple_ticket_crypter.cc", "quic/tools/web_transport_only_backend.cc", ] -quiche_fuzz_support_hdrs = [ - "balsa/balsa_fuzz_util.h", -] -quiche_fuzz_support_srcs = [ - "balsa/balsa_fuzz_util.cc", -] quiche_test_support_hdrs = [ "common/platform/api/quiche_expect_bug.h", "common/platform/api/quiche_fuzztest.h",
diff --git a/build/source_list.gni b/build/source_list.gni index 0135e7b..1182613 100644 --- a/build/source_list.gni +++ b/build/source_list.gni
@@ -785,12 +785,6 @@ "src/quiche/quic/tools/simple_ticket_crypter.cc", "src/quiche/quic/tools/web_transport_only_backend.cc", ] -quiche_fuzz_support_hdrs = [ - "src/quiche/balsa/balsa_fuzz_util.h", -] -quiche_fuzz_support_srcs = [ - "src/quiche/balsa/balsa_fuzz_util.cc", -] quiche_test_support_hdrs = [ "src/quiche/common/platform/api/quiche_expect_bug.h", "src/quiche/common/platform/api/quiche_fuzztest.h",
diff --git a/build/source_list.json b/build/source_list.json index 009d4b2..c686b3b 100644 --- a/build/source_list.json +++ b/build/source_list.json
@@ -784,12 +784,6 @@ "quiche/quic/tools/simple_ticket_crypter.cc", "quiche/quic/tools/web_transport_only_backend.cc" ], - "quiche_fuzz_support_hdrs": [ - "quiche/balsa/balsa_fuzz_util.h" - ], - "quiche_fuzz_support_srcs": [ - "quiche/balsa/balsa_fuzz_util.cc" - ], "quiche_test_support_hdrs": [ "quiche/common/platform/api/quiche_expect_bug.h", "quiche/common/platform/api/quiche_fuzztest.h",
diff --git a/quiche/balsa/balsa_fuzz_util.cc b/quiche/balsa/balsa_fuzz_util.cc deleted file mode 100644 index f28a23f..0000000 --- a/quiche/balsa/balsa_fuzz_util.cc +++ /dev/null
@@ -1,49 +0,0 @@ -// Copyright 2025 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/balsa/balsa_fuzz_util.h" - -#include <optional> -#include <tuple> -#include <type_traits> - -#include "quiche/balsa/http_validation_policy.h" -#include "quiche/common/platform/api/quiche_fuzztest.h" - -namespace quiche { - -fuzztest::Domain<HttpValidationPolicy> ArbitraryHttpValidationPolicy() { - return fuzztest::StructOf<HttpValidationPolicy>( - fuzztest::Arbitrary<bool>(), fuzztest::Arbitrary<bool>(), - fuzztest::Arbitrary<bool>(), fuzztest::Arbitrary<bool>(), - fuzztest::Arbitrary<bool>(), fuzztest::Arbitrary<bool>(), - fuzztest::Arbitrary<bool>(), fuzztest::Arbitrary<bool>(), - fuzztest::Arbitrary<bool>(), fuzztest::Arbitrary<bool>(), - fuzztest::Arbitrary<bool>(), ArbitraryFirstLineValidationOption(), - fuzztest::Arbitrary<bool>(), fuzztest::Arbitrary<bool>(), - fuzztest::Arbitrary<bool>(), ArbitraryFirstLineValidationOption(), - fuzztest::Arbitrary<bool>(), fuzztest::Arbitrary<bool>(), - fuzztest::Arbitrary<bool>(), fuzztest::Arbitrary<bool>(), - fuzztest::Arbitrary<bool>()); -} - -fuzztest::Domain<HttpValidationPolicy::FirstLineValidationOption> -ArbitraryFirstLineValidationOption() { - using EnumType = HttpValidationPolicy::FirstLineValidationOption; - using UnderlyingType = - std::underlying_type_t<HttpValidationPolicy::FirstLineValidationOption>; - return fuzztest::ReversibleMap( - [](UnderlyingType x) -> EnumType { - return static_cast<HttpValidationPolicy::FirstLineValidationOption>(x); - }, - [](EnumType x) -> std::optional<std::tuple<UnderlyingType>> { - return {static_cast<UnderlyingType>(x)}; - }, - fuzztest::InRange<UnderlyingType>( - static_cast<UnderlyingType>( - HttpValidationPolicy::FirstLineValidationOption::kMinValue), - static_cast<UnderlyingType>( - HttpValidationPolicy::FirstLineValidationOption::kMaxValue))); -} - -} // namespace quiche
diff --git a/quiche/balsa/balsa_fuzz_util.h b/quiche/balsa/balsa_fuzz_util.h deleted file mode 100644 index 2ff51ee..0000000 --- a/quiche/balsa/balsa_fuzz_util.h +++ /dev/null
@@ -1,19 +0,0 @@ -// Copyright 2025 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. - -#ifndef QUICHE_BALSA_BALSA_FUZZ_UTIL_H_ -#define QUICHE_BALSA_BALSA_FUZZ_UTIL_H_ - -#include "quiche/balsa/http_validation_policy.h" -#include "quiche/common/platform/api/quiche_fuzztest.h" - -namespace quiche { - -fuzztest::Domain<HttpValidationPolicy> ArbitraryHttpValidationPolicy(); -fuzztest::Domain<HttpValidationPolicy::FirstLineValidationOption> -ArbitraryFirstLineValidationOption(); - -} // namespace quiche - -#endif // QUICHE_BALSA_BALSA_FUZZ_UTIL_H_
diff --git a/quiche/balsa/http_validation_policy.h b/quiche/balsa/http_validation_policy.h index b1651a3..87baab4 100644 --- a/quiche/balsa/http_validation_policy.h +++ b/quiche/balsa/http_validation_policy.h
@@ -127,69 +127,6 @@ // Status codes outside the range [100, 599] are invalid, per RFC 9110, // Section 15 https://www.rfc-editor.org/rfc/rfc9110#section-15 bool disallow_invalid_response_codes = false; - - template <typename Sink> - friend void AbslStringify(Sink& sink, FirstLineValidationOption option) { - switch (option) { - case FirstLineValidationOption::NONE: - sink.Append("NONE"); - return; - case FirstLineValidationOption::SANITIZE: - sink.Append("SANITIZE"); - return; - case FirstLineValidationOption::REJECT: - sink.Append("REJECT"); - return; - } - sink.Append("UNKNOWN"); - } - - template <typename Sink> - friend void AbslStringify(Sink& sink, const HttpValidationPolicy& policy) { - absl::Format(&sink, - "{disallow_header_continuation_lines=%v, " - "require_header_colon=%v, " - "disallow_multiple_content_length=%v, " - "disallow_transfer_encoding_with_content_length=%v, " - "validate_transfer_encoding=%v, " - "require_content_length_if_body_required=%v, " - "disallow_double_quote_in_header_name=%v, " - "disallow_invalid_header_characters_in_response=%v, " - "disallow_lone_cr_in_request_headers=%v, " - "disallow_lone_cr_in_chunk_extension=%v, " - "disallow_invalid_target_uris=%v, " - "sanitize_cr_tab_in_first_line=%v, " - "disallow_obs_text_in_field_names=%v, " - "disallow_lone_lf_in_chunk_extension=%v, " - "require_chunked_body_end_with_crlf_crlf=%v, " - "sanitize_firstline_spaces=%v, " - "sanitize_obs_fold_in_header_values=%v, " - "disallow_stray_data_after_chunk=%v, " - "disallow_invalid_request_methods=%v, " - "require_semicolon_delimited_chunk_extension=%v, " - "disallow_invalid_response_codes=%v}", - policy.disallow_header_continuation_lines, - policy.require_header_colon, - policy.disallow_multiple_content_length, - policy.disallow_transfer_encoding_with_content_length, - policy.validate_transfer_encoding, - policy.require_content_length_if_body_required, - policy.disallow_double_quote_in_header_name, - policy.disallow_invalid_header_characters_in_response, - policy.disallow_lone_cr_in_request_headers, - policy.disallow_lone_cr_in_chunk_extension, - policy.disallow_invalid_target_uris, - policy.sanitize_cr_tab_in_first_line, - policy.disallow_obs_text_in_field_names, - policy.disallow_lone_lf_in_chunk_extension, - policy.require_chunked_body_end_with_crlf_crlf, - policy.sanitize_firstline_spaces, - policy.sanitize_obs_fold_in_header_values, - policy.disallow_stray_data_after_chunk, - policy.disallow_invalid_request_methods, - policy.require_semicolon_delimited_chunk_extension, - policy.disallow_invalid_response_codes); - } }; static constexpr HttpValidationPolicy kMostStrictHttpValidationPolicy = {