From 18338291e5dc82729bd2db02b904642651fcf5be Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Sun, 21 Jan 2024 17:32:07 +0000 Subject: [PATCH] x --- .../server/chaotic_good_server.cc | 93 +++++++++++-------- test/core/end2end/fuzzers/BUILD | 40 ++++++-- test/core/end2end/fuzzers/server_fuzzer.cc | 39 +++++--- test/core/end2end/fuzzers/server_fuzzer.h | 34 +++++++ .../fuzzers/server_fuzzer_chaotic_good.cc | 33 +++++++ .../0d935c3f36dacec03424c94df1abb0c620eb43fc | 5 + .../112d7775db5f5a752656a0a6247aadbef3419946 | 4 + .../2e47637f02f17049d62d8ab39ccc76c357361751 | 6 ++ .../2e7f50a50c066bad5205820ca70b5e06edbd6251 | 6 ++ .../63183371a4703b1d50738759d24b6e4e9bc4a8a5 | 2 + .../78def83352dae155ccfb6911755df930ec448d34 | 4 + .../7dcd04438cf570ee85613752fa82fde0f6e27d48 | 2 + .../8058271eb5ffed8fff7a50befc56b425518e42b5 | 2 + .../832a708b602494e209027f25e45dc2ab9946b1c1 | 6 ++ .../b184a899e1be9f324b0f2c2ec87e9719745ff2c0 | 6 ++ .../bf15b8e03b2fdf07739ac5a02f20fe7763f6652e | 5 + .../cb4d4bb3651d49274363e32c0fd49893598efc2e | 3 + ...h-37ee262ad3d3c94d4984ceab893527b62a76b8a0 | 5 + ...h-389fb72510e4ae5efc13b96633da23db10831deb | 20 ++++ ...h-3a2038d846f69d4be1bd5cbf0ec7864b7aa3e3db | 17 ++++ ...h-411add0df93f4fb59fbd16d1157552910d7534ac | 12 +++ ...h-4708c969d581643a3dce5e90db59a214fa387e7b | 10 ++ ...h-490c27d5994e4a9f12780652d21052489add16ef | 14 +++ ...h-6b3d50b5d9e0dce2c250933b7d124e75558480e4 | 17 ++++ ...h-8f2a8efbd591bddcf19a1daa5c0231fdc8ad31ce | 13 +++ ...h-9503132635a1b666a17e1a5cc460d02d44ba1722 | 8 ++ ...h-96da1815a45dffe533b9c49ce0802caba7990cb6 | 5 + ...h-97c27b69d3f53f442778d6f8b54c3d6eeeedfe5b | 13 +++ ...h-adec385a8091220a7ad6f29b06af1abf4adf8222 | 7 ++ ...h-bcaa4c143d75f0d13ccc39848ce3e0b7763574b6 | 16 ++++ ...h-c7ee9adac4e4e59269e6156d33b773c70bb999ff | 5 + ...h-d45aa4d5864d2b0fb477c62e8934863225c689cc | 10 ++ ...h-d6e88b7c2c76062614175fcf5ed49a8707521c73 | 8 ++ ...h-dd2b30811e8fbb98317592cb776128651d21df37 | 14 +++ ...h-dfb6d257affc96916aacff29d0903d90c28600fa | 7 ++ ...h-f3dc83113ea4f43e64f727a37329710d24de13d1 | 11 +++ ...h-f58f6bd63c48cab9a9ac01a27002fa0b57d8c6fd | 14 +++ ...h-feadabfcfa2ff0e25487ed1734492ba09d5443e4 | 11 +++ .../d1e68bd6df3dbd06b1601548d3010a9588b446f5 | 2 + .../e8e95ee5b19d31634258383e91e156f6d121c0ae | 4 + .../server_fuzzer_chaotic_good_corpus/empty | 1 + .../fa1183de2ea3019dafe50f468197a27403c74d56 | 6 ++ .../end2end/fuzzers/server_fuzzer_chttp2.cc | 29 ++++++ .../5098656614121472 | 0 .../5250991764078592 | 0 .../5367317597847552 | 0 .../cancel-request.bin | 0 .../cancel-timeout-request.bin | 0 .../timeout-request.bin | 0 49 files changed, 508 insertions(+), 61 deletions(-) create mode 100644 test/core/end2end/fuzzers/server_fuzzer.h create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good.cc create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/0d935c3f36dacec03424c94df1abb0c620eb43fc create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/112d7775db5f5a752656a0a6247aadbef3419946 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/2e47637f02f17049d62d8ab39ccc76c357361751 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/2e7f50a50c066bad5205820ca70b5e06edbd6251 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/63183371a4703b1d50738759d24b6e4e9bc4a8a5 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/78def83352dae155ccfb6911755df930ec448d34 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/7dcd04438cf570ee85613752fa82fde0f6e27d48 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/8058271eb5ffed8fff7a50befc56b425518e42b5 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/832a708b602494e209027f25e45dc2ab9946b1c1 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/b184a899e1be9f324b0f2c2ec87e9719745ff2c0 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/bf15b8e03b2fdf07739ac5a02f20fe7763f6652e create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/cb4d4bb3651d49274363e32c0fd49893598efc2e create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-37ee262ad3d3c94d4984ceab893527b62a76b8a0 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-389fb72510e4ae5efc13b96633da23db10831deb create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-3a2038d846f69d4be1bd5cbf0ec7864b7aa3e3db create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-411add0df93f4fb59fbd16d1157552910d7534ac create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-4708c969d581643a3dce5e90db59a214fa387e7b create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-490c27d5994e4a9f12780652d21052489add16ef create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-6b3d50b5d9e0dce2c250933b7d124e75558480e4 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-8f2a8efbd591bddcf19a1daa5c0231fdc8ad31ce create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-9503132635a1b666a17e1a5cc460d02d44ba1722 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-96da1815a45dffe533b9c49ce0802caba7990cb6 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-97c27b69d3f53f442778d6f8b54c3d6eeeedfe5b create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-adec385a8091220a7ad6f29b06af1abf4adf8222 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-bcaa4c143d75f0d13ccc39848ce3e0b7763574b6 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-c7ee9adac4e4e59269e6156d33b773c70bb999ff create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-d45aa4d5864d2b0fb477c62e8934863225c689cc create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-d6e88b7c2c76062614175fcf5ed49a8707521c73 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-dd2b30811e8fbb98317592cb776128651d21df37 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-dfb6d257affc96916aacff29d0903d90c28600fa create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-f3dc83113ea4f43e64f727a37329710d24de13d1 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-f58f6bd63c48cab9a9ac01a27002fa0b57d8c6fd create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-feadabfcfa2ff0e25487ed1734492ba09d5443e4 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/d1e68bd6df3dbd06b1601548d3010a9588b446f5 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/e8e95ee5b19d31634258383e91e156f6d121c0ae create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/empty create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/fa1183de2ea3019dafe50f468197a27403c74d56 create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chttp2.cc rename test/core/end2end/fuzzers/{server_fuzzer_corpus => server_fuzzer_chttp2_corpus}/5098656614121472 (100%) rename test/core/end2end/fuzzers/{server_fuzzer_corpus => server_fuzzer_chttp2_corpus}/5250991764078592 (100%) rename test/core/end2end/fuzzers/{server_fuzzer_corpus => server_fuzzer_chttp2_corpus}/5367317597847552 (100%) rename test/core/end2end/fuzzers/{server_fuzzer_corpus => server_fuzzer_chttp2_corpus}/cancel-request.bin (100%) rename test/core/end2end/fuzzers/{server_fuzzer_corpus => server_fuzzer_chttp2_corpus}/cancel-timeout-request.bin (100%) rename test/core/end2end/fuzzers/{server_fuzzer_corpus => server_fuzzer_chttp2_corpus}/timeout-request.bin (100%) diff --git a/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc b/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc index 14d82071e925b..3f88e0574d0f9 100644 --- a/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc +++ b/src/core/ext/transport/chaotic_good/server/chaotic_good_server.cc @@ -92,6 +92,7 @@ absl::StatusOr ChaoticGoodServerListener::Bind(const char* addr) { EventEngine::Listener::AcceptCallback accept_cb = [self = Ref()](std::unique_ptr ep, MemoryAllocator) { + ExecCtx exec_ctx; MutexLock lock(&self->mu_); self->connection_list_.insert(self->connection_list_.end(), MakeOrphanable(self)); @@ -202,47 +203,57 @@ auto ChaoticGoodServerListener::ActiveConnection::HandshakingState:: // Parse frame header auto frame_header = FrameHeader::Parse(reinterpret_cast( GRPC_SLICE_START_PTR(slice.c_slice()))); - GPR_ASSERT(frame_header.ok()); - return TrySeq( - self->connection_->endpoint_->Read(frame_header->GetFrameLength()), - [frame_header = *frame_header, - self](SliceBuffer buffer) -> absl::StatusOr { - // Read Setting frame. - SettingsFrame frame; - // Deserialize frame from read buffer. - BufferPair buffer_pair{std::move(buffer), SliceBuffer()}; - auto status = frame.Deserialize( - &self->connection_->hpack_parser_, frame_header, - absl::BitGenRef(self->connection_->bitgen_), - GetContext(), std::move(buffer_pair), FrameLimits{}); - if (!status.ok()) return status; - if (frame.headers == nullptr) { - return absl::UnavailableError("no settings headers"); - } - auto settings_metadata = - SettingsMetadata::FromMetadataBatch(*frame.headers); - if (!settings_metadata.ok()) { - return settings_metadata.status(); - } - const bool is_control_endpoint = - settings_metadata->connection_type == - SettingsMetadata::ConnectionType::kControl; - if (!is_control_endpoint) { - if (!settings_metadata->connection_id.has_value()) { - return absl::UnavailableError( - "no connection id in data endpoint settings frame"); - } - if (!settings_metadata->alignment.has_value()) { - return absl::UnavailableError( - "no alignment in data endpoint settings frame"); - } - // Get connection-id and data-alignment for data endpoint. - self->connection_->connection_id_ = - *settings_metadata->connection_id; - self->connection_->data_alignment_ = - *settings_metadata->alignment; - } - return is_control_endpoint; + return If( + frame_header.ok(), + [self, &frame_header]() { + return TrySeq( + self->connection_->endpoint_->Read( + frame_header->GetFrameLength()), + [frame_header = std::move(*frame_header), + self](SliceBuffer buffer) -> absl::StatusOr { + // Read Setting frame. + SettingsFrame frame; + // Deserialize frame from read buffer. + BufferPair buffer_pair{std::move(buffer), SliceBuffer()}; + auto status = frame.Deserialize( + &self->connection_->hpack_parser_, frame_header, + absl::BitGenRef(self->connection_->bitgen_), + GetContext(), std::move(buffer_pair), + FrameLimits{}); + if (!status.ok()) return status; + if (frame.headers == nullptr) { + return absl::UnavailableError("no settings headers"); + } + auto settings_metadata = + SettingsMetadata::FromMetadataBatch(*frame.headers); + if (!settings_metadata.ok()) { + return settings_metadata.status(); + } + const bool is_control_endpoint = + settings_metadata->connection_type == + SettingsMetadata::ConnectionType::kControl; + if (!is_control_endpoint) { + if (!settings_metadata->connection_id.has_value()) { + return absl::UnavailableError( + "no connection id in data endpoint settings frame"); + } + if (!settings_metadata->alignment.has_value()) { + return absl::UnavailableError( + "no alignment in data endpoint settings frame"); + } + // Get connection-id and data-alignment for data endpoint. + self->connection_->connection_id_ = + *settings_metadata->connection_id; + self->connection_->data_alignment_ = + *settings_metadata->alignment; + } + return is_control_endpoint; + }); + }, + [&frame_header]() { + return [r = frame_header.status()]() -> absl::StatusOr { + return r; + }; }); }); } diff --git a/test/core/end2end/fuzzers/BUILD b/test/core/end2end/fuzzers/BUILD index c4a031aad3ce6..daca49bcf9c13 100644 --- a/test/core/end2end/fuzzers/BUILD +++ b/test/core/end2end/fuzzers/BUILD @@ -121,15 +121,10 @@ grpc_proto_fuzzer( ], ) -grpc_proto_fuzzer( +grpc_cc_library( name = "server_fuzzer", srcs = ["server_fuzzer.cc"], - corpus = "server_fuzzer_corpus", - language = "C++", - proto = None, - tags = ["no_windows"], - uses_event_engine = False, - uses_polling = False, + hdrs = ["server_fuzzer.h"], deps = [ "fuzzer_input_proto", "fuzzing_common", @@ -137,8 +132,39 @@ grpc_proto_fuzzer( "//:gpr", "//:grpc", "//src/core:channel_args", + "//test/core/event_engine/fuzzing_event_engine", "//test/core/util:fuzz_config_vars", "//test/core/util:grpc_test_util", "//test/core/util:grpc_test_util_base", ], ) + +grpc_proto_fuzzer( + name = "server_fuzzer_chttp2", + srcs = ["server_fuzzer_chttp2.cc"], + corpus = "server_fuzzer_chttp2_corpus", + language = "C++", + proto = None, + tags = ["no_windows"], + uses_event_engine = False, + uses_polling = False, + deps = [ + ":server_fuzzer", + "//:grpc", + ], +) + +grpc_proto_fuzzer( + name = "server_fuzzer_chaotic_good", + srcs = ["server_fuzzer_chaotic_good.cc"], + corpus = "server_fuzzer_chaotic_good_corpus", + language = "C++", + proto = None, + tags = ["no_windows"], + uses_event_engine = False, + uses_polling = False, + deps = [ + ":server_fuzzer", + "//src/core:chaotic_good_server", + ], +) diff --git a/test/core/end2end/fuzzers/server_fuzzer.cc b/test/core/end2end/fuzzers/server_fuzzer.cc index d77bb9f4cbc82..fed922177c17b 100644 --- a/test/core/end2end/fuzzers/server_fuzzer.cc +++ b/test/core/end2end/fuzzers/server_fuzzer.cc @@ -21,10 +21,10 @@ #include #include +#include "src/core/lib/config/core_configuration.h" #include "src/core/lib/experiments/config.h" #include "src/core/lib/gprpp/env.h" #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/libfuzzer/libfuzzer_macro.h" #include "test/core/end2end/fuzzers/api_fuzzer.pb.h" #include "test/core/end2end/fuzzers/fuzzer_input.pb.h" #include "test/core/end2end/fuzzers/fuzzing_common.h" @@ -41,15 +41,24 @@ namespace testing { class ServerFuzzer final : public BasicFuzzer { public: - explicit ServerFuzzer(const fuzzer_input::Msg& msg) + explicit ServerFuzzer( + const fuzzer_input::Msg& msg, + absl::FunctionRef + server_setup) : BasicFuzzer(msg.event_engine_actions()) { ExecCtx exec_ctx; grpc_server_register_completion_queue(server_, cq(), nullptr); // TODO(ctiller): add more registered methods (one for POST, one for PUT) grpc_server_register_method(server_, "/reg", nullptr, {}, 0); - auto* creds = grpc_insecure_server_credentials_create(); - grpc_server_add_http2_port(server_, "0.0.0.0:1234", creds); - grpc_server_credentials_release(creds); + server_setup( + server_, 1234, + CoreConfiguration::Get() + .channel_args_preconditioning() + .PreconditionChannelArgs( + CreateChannelArgsFromFuzzingConfiguration( + msg.channel_args(), FuzzingEnvironment{resource_quota()}) + .ToC() + .get())); grpc_server_start(server_); for (const auto& input : msg.network_input()) { UpdateMinimumRunTime(ScheduleConnection( @@ -81,19 +90,23 @@ class ServerFuzzer final : public BasicFuzzer { }; } // namespace testing -} // namespace grpc_core -DEFINE_PROTO_FUZZER(const fuzzer_input::Msg& msg) { - if (squelch && !grpc_core::GetEnv("GRPC_TRACE_FUZZER").has_value()) { +void RunServerFuzzer( + const fuzzer_input::Msg& msg, + absl::FunctionRef + server_setup) { + if (squelch && !GetEnv("GRPC_TRACE_FUZZER").has_value()) { gpr_set_log_function(dont_log); } static const int once = []() { - grpc_core::ForceEnableExperiment("event_engine_client", true); - grpc_core::ForceEnableExperiment("event_engine_listener", true); + ForceEnableExperiment("event_engine_client", true); + ForceEnableExperiment("event_engine_listener", true); return 42; }(); GPR_ASSERT(once == 42); - grpc_core::ApplyFuzzConfigVars(msg.config_vars()); - grpc_core::TestOnlyReloadExperimentsFromConfigVariables(); - grpc_core::testing::ServerFuzzer(msg).Run(msg.api_actions()); + ApplyFuzzConfigVars(msg.config_vars()); + TestOnlyReloadExperimentsFromConfigVariables(); + testing::ServerFuzzer(msg, server_setup).Run(msg.api_actions()); } + +} // namespace grpc_core diff --git a/test/core/end2end/fuzzers/server_fuzzer.h b/test/core/end2end/fuzzers/server_fuzzer.h new file mode 100644 index 0000000000000..b43bf687bceda --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer.h @@ -0,0 +1,34 @@ +// Copyright 2024 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef GRPC_TEST_CORE_END2END_FUZZERS_SERVER_FUZZER_H +#define GRPC_TEST_CORE_END2END_FUZZERS_SERVER_FUZZER_H + +#include "absl/functional/function_ref.h" + +#include + +#include "src/core/lib/channel/channel_args.h" +#include "test/core/end2end/fuzzers/fuzzer_input.pb.h" + +namespace grpc_core { + +void RunServerFuzzer( + const fuzzer_input::Msg& msg, + absl::FunctionRef + server_setup); + +} // namespace grpc_core + +#endif diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good.cc b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good.cc new file mode 100644 index 0000000000000..ae30e6f67f464 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good.cc @@ -0,0 +1,33 @@ +// Copyright 2024 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +#include "src/core/ext/transport/chaotic_good/server/chaotic_good_server.h" +#include "src/libfuzzer/libfuzzer_macro.h" +#include "test/core/end2end/fuzzers/server_fuzzer.h" + +DEFINE_PROTO_FUZZER(const fuzzer_input::Msg& msg) { + grpc_core::RunServerFuzzer( + msg, [](grpc_server* server, int port_num, + const grpc_core::ChannelArgs& channel_args) { + grpc_core::ExecCtx exec_ctx; + auto* listener = new grpc_core::chaotic_good::ChaoticGoodServerListener( + grpc_core::Server::FromC(server), channel_args); + auto port = + listener->Bind(absl::StrCat("ipv4:0.0.0.0:", port_num).c_str()); + GPR_ASSERT(port.ok()); + GPR_ASSERT(port.value() == port_num); + }); +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/0d935c3f36dacec03424c94df1abb0c620eb43fc b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/0d935c3f36dacec03424c94df1abb0c620eb43fc new file mode 100644 index 0000000000000..8c3bf7467b95b --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/0d935c3f36dacec03424c94df1abb0c620eb43fc @@ -0,0 +1,5 @@ +network_input { +} +config_vars { + trace: "" +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/112d7775db5f5a752656a0a6247aadbef3419946 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/112d7775db5f5a752656a0a6247aadbef3419946 new file mode 100644 index 0000000000000..2b0e16e38ae76 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/112d7775db5f5a752656a0a6247aadbef3419946 @@ -0,0 +1,4 @@ +config_vars { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/2e47637f02f17049d62d8ab39ccc76c357361751 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/2e47637f02f17049d62d8ab39ccc76c357361751 new file mode 100644 index 0000000000000..b0f946a360bcd --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/2e47637f02f17049d62d8ab39ccc76c357361751 @@ -0,0 +1,6 @@ +channel_args { + args { + resource_quota { + } + } +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/2e7f50a50c066bad5205820ca70b5e06edbd6251 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/2e7f50a50c066bad5205820ca70b5e06edbd6251 new file mode 100644 index 0000000000000..caa94a485b3b4 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/2e7f50a50c066bad5205820ca70b5e06edbd6251 @@ -0,0 +1,6 @@ +api_actions { +} +event_engine_actions { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/63183371a4703b1d50738759d24b6e4e9bc4a8a5 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/63183371a4703b1d50738759d24b6e4e9bc4a8a5 new file mode 100644 index 0000000000000..52e7b120fed6b --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/63183371a4703b1d50738759d24b6e4e9bc4a8a5 @@ -0,0 +1,2 @@ +api_actions { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/78def83352dae155ccfb6911755df930ec448d34 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/78def83352dae155ccfb6911755df930ec448d34 new file mode 100644 index 0000000000000..f58cb46a1d115 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/78def83352dae155ccfb6911755df930ec448d34 @@ -0,0 +1,4 @@ +api_actions { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/7dcd04438cf570ee85613752fa82fde0f6e27d48 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/7dcd04438cf570ee85613752fa82fde0f6e27d48 new file mode 100644 index 0000000000000..49e8cbe85cd68 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/7dcd04438cf570ee85613752fa82fde0f6e27d48 @@ -0,0 +1,2 @@ +config_vars { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/8058271eb5ffed8fff7a50befc56b425518e42b5 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/8058271eb5ffed8fff7a50befc56b425518e42b5 new file mode 100644 index 0000000000000..3f34145cb0678 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/8058271eb5ffed8fff7a50befc56b425518e42b5 @@ -0,0 +1,2 @@ +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/832a708b602494e209027f25e45dc2ab9946b1c1 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/832a708b602494e209027f25e45dc2ab9946b1c1 new file mode 100644 index 0000000000000..75d3352e6c0a1 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/832a708b602494e209027f25e45dc2ab9946b1c1 @@ -0,0 +1,6 @@ +api_actions { +} +api_actions { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/b184a899e1be9f324b0f2c2ec87e9719745ff2c0 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/b184a899e1be9f324b0f2c2ec87e9719745ff2c0 new file mode 100644 index 0000000000000..3bdc396065540 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/b184a899e1be9f324b0f2c2ec87e9719745ff2c0 @@ -0,0 +1,6 @@ +api_actions { + create_server { + } +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/bf15b8e03b2fdf07739ac5a02f20fe7763f6652e b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/bf15b8e03b2fdf07739ac5a02f20fe7763f6652e new file mode 100644 index 0000000000000..ba88f970ee952 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/bf15b8e03b2fdf07739ac5a02f20fe7763f6652e @@ -0,0 +1,5 @@ +config_vars { + experiments: 0 +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/cb4d4bb3651d49274363e32c0fd49893598efc2e b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/cb4d4bb3651d49274363e32c0fd49893598efc2e new file mode 100644 index 0000000000000..b80f53cf92da4 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/cb4d4bb3651d49274363e32c0fd49893598efc2e @@ -0,0 +1,3 @@ +config_vars { + trace: "" +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-37ee262ad3d3c94d4984ceab893527b62a76b8a0 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-37ee262ad3d3c94d4984ceab893527b62a76b8a0 new file mode 100644 index 0000000000000..18916f4900a4f --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-37ee262ad3d3c94d4984ceab893527b62a76b8a0 @@ -0,0 +1,5 @@ +network_input { + single_read_bytes: "\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357\357" +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-389fb72510e4ae5efc13b96633da23db10831deb b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-389fb72510e4ae5efc13b96633da23db10831deb new file mode 100644 index 0000000000000..e5bb49a6076b8 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-389fb72510e4ae5efc13b96633da23db10831deb @@ -0,0 +1,20 @@ +network_input { + input_segments { + segments { + header { + simple_header { + chaotic_good_alignment: "X" + } + } + } + } +} +config_vars { + stacktrace_minloglevel: "" + trace: "" +} +channel_args { + args { + i: 8 + } +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-3a2038d846f69d4be1bd5cbf0ec7864b7aa3e3db b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-3a2038d846f69d4be1bd5cbf0ec7864b7aa3e3db new file mode 100644 index 0000000000000..1c7989bd8cfe1 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-3a2038d846f69d4be1bd5cbf0ec7864b7aa3e3db @@ -0,0 +1,17 @@ +network_input { + input_segments { + segments { + header { + raw_bytes: "\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305\305" + } + } + } +} +api_actions { + close_channel { + } +} +api_actions { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-411add0df93f4fb59fbd16d1157552910d7534ac b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-411add0df93f4fb59fbd16d1157552910d7534ac new file mode 100644 index 0000000000000..a36f34d9d9bcf --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-411add0df93f4fb59fbd16d1157552910d7534ac @@ -0,0 +1,12 @@ +network_input { + input_segments { + segments { + client_prefix { + } + } + } +} +api_actions { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-4708c969d581643a3dce5e90db59a214fa387e7b b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-4708c969d581643a3dce5e90db59a214fa387e7b new file mode 100644 index 0000000000000..e6709414020c8 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-4708c969d581643a3dce5e90db59a214fa387e7b @@ -0,0 +1,10 @@ +network_input { + single_read_bytes: "\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213\213" + connect_delay_ms: 96 +} +api_actions { +} +event_engine_actions { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-490c27d5994e4a9f12780652d21052489add16ef b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-490c27d5994e4a9f12780652d21052489add16ef new file mode 100644 index 0000000000000..cc5d569ca3a80 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-490c27d5994e4a9f12780652d21052489add16ef @@ -0,0 +1,14 @@ +network_input { + input_segments { + segments { + goaway { + debug_data: "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + } + } + } +} +config_vars { + verbosity: "" +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-6b3d50b5d9e0dce2c250933b7d124e75558480e4 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-6b3d50b5d9e0dce2c250933b7d124e75558480e4 new file mode 100644 index 0000000000000..444940e5c43d8 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-6b3d50b5d9e0dce2c250933b7d124e75558480e4 @@ -0,0 +1,17 @@ +network_input { + input_segments { + segments { + chaotic_good { + headers_raw_bytes: "" + trailers_none { + } + } + } + } +} +config_vars { + stacktrace_minloglevel: "" + experiments: 0 +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-8f2a8efbd591bddcf19a1daa5c0231fdc8ad31ce b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-8f2a8efbd591bddcf19a1daa5c0231fdc8ad31ce new file mode 100644 index 0000000000000..004f0a3375e78 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-8f2a8efbd591bddcf19a1daa5c0231fdc8ad31ce @@ -0,0 +1,13 @@ +network_input { + single_read_bytes: ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" +} +api_actions { + request_call { + } +} +api_actions { + cancel_all_calls_if_shutdown { + } +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-9503132635a1b666a17e1a5cc460d02d44ba1722 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-9503132635a1b666a17e1a5cc460d02d44ba1722 new file mode 100644 index 0000000000000..6c555d6e98be4 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-9503132635a1b666a17e1a5cc460d02d44ba1722 @@ -0,0 +1,8 @@ +network_input { + single_read_bytes: "\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177" +} +config_vars { + experiments: 0 +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-96da1815a45dffe533b9c49ce0802caba7990cb6 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-96da1815a45dffe533b9c49ce0802caba7990cb6 new file mode 100644 index 0000000000000..8fb46205b0ea7 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-96da1815a45dffe533b9c49ce0802caba7990cb6 @@ -0,0 +1,5 @@ +network_input { + single_read_bytes: "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-97c27b69d3f53f442778d6f8b54c3d6eeeedfe5b b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-97c27b69d3f53f442778d6f8b54c3d6eeeedfe5b new file mode 100644 index 0000000000000..203d77ca73003 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-97c27b69d3f53f442778d6f8b54c3d6eeeedfe5b @@ -0,0 +1,13 @@ +network_input { + input_segments { + segments { + client_prefix { + } + } + } +} +config_vars { + experiments: 0 +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-adec385a8091220a7ad6f29b06af1abf4adf8222 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-adec385a8091220a7ad6f29b06af1abf4adf8222 new file mode 100644 index 0000000000000..b07b9d736b186 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-adec385a8091220a7ad6f29b06af1abf4adf8222 @@ -0,0 +1,7 @@ +network_input { + single_read_bytes: "GGGGGGGGGGGGGGGGGGGGGGGGGGG" +} +api_actions { +} +config_vars { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-bcaa4c143d75f0d13ccc39848ce3e0b7763574b6 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-bcaa4c143d75f0d13ccc39848ce3e0b7763574b6 new file mode 100644 index 0000000000000..30381edf10ffb --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-bcaa4c143d75f0d13ccc39848ce3e0b7763574b6 @@ -0,0 +1,16 @@ +network_input { + input_segments { + segments { + rst_stream { + error_code: 1694498816 + } + } + segments { + rst_stream { + error_code: 1694498816 + } + } + } +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-c7ee9adac4e4e59269e6156d33b773c70bb999ff b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-c7ee9adac4e4e59269e6156d33b773c70bb999ff new file mode 100644 index 0000000000000..d7e551805c62f --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-c7ee9adac4e4e59269e6156d33b773c70bb999ff @@ -0,0 +1,5 @@ +network_input { + single_read_bytes: "\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207\207" +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-d45aa4d5864d2b0fb477c62e8934863225c689cc b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-d45aa4d5864d2b0fb477c62e8934863225c689cc new file mode 100644 index 0000000000000..0474ae9ea2006 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-d45aa4d5864d2b0fb477c62e8934863225c689cc @@ -0,0 +1,10 @@ +network_input { + single_read_bytes: "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" +} +network_input { +} +config_vars { + experiments: 0 +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-d6e88b7c2c76062614175fcf5ed49a8707521c73 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-d6e88b7c2c76062614175fcf5ed49a8707521c73 new file mode 100644 index 0000000000000..020bd9d09dc32 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-d6e88b7c2c76062614175fcf5ed49a8707521c73 @@ -0,0 +1,8 @@ +network_input { +} +api_actions { +} +event_engine_actions { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-dd2b30811e8fbb98317592cb776128651d21df37 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-dd2b30811e8fbb98317592cb776128651d21df37 new file mode 100644 index 0000000000000..45dc5103fbdbf --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-dd2b30811e8fbb98317592cb776128651d21df37 @@ -0,0 +1,14 @@ +network_input { + input_segments { + segments { + client_prefix { + } + } + } +} +event_engine_actions { +} +config_vars { + stacktrace_minloglevel: "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS" + trace: "" +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-dfb6d257affc96916aacff29d0903d90c28600fa b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-dfb6d257affc96916aacff29d0903d90c28600fa new file mode 100644 index 0000000000000..0bb7106a88186 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-dfb6d257affc96916aacff29d0903d90c28600fa @@ -0,0 +1,7 @@ +network_input { +} +network_input { + single_read_bytes: "\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035\035" +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-f3dc83113ea4f43e64f727a37329710d24de13d1 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-f3dc83113ea4f43e64f727a37329710d24de13d1 new file mode 100644 index 0000000000000..ccae2d331a68a --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-f3dc83113ea4f43e64f727a37329710d24de13d1 @@ -0,0 +1,11 @@ +network_input { + input_segments { + segments { + client_prefix { + } + } + } +} +network_input { + connect_delay_ms: 32000 +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-f58f6bd63c48cab9a9ac01a27002fa0b57d8c6fd b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-f58f6bd63c48cab9a9ac01a27002fa0b57d8c6fd new file mode 100644 index 0000000000000..79d6510136f9b --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-f58f6bd63c48cab9a9ac01a27002fa0b57d8c6fd @@ -0,0 +1,14 @@ +network_input { + input_segments { + segments { + client_prefix { + } + } + } +} +api_actions { +} +api_actions { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-feadabfcfa2ff0e25487ed1734492ba09d5443e4 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-feadabfcfa2ff0e25487ed1734492ba09d5443e4 new file mode 100644 index 0000000000000..b387c1bca2d41 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/crash-feadabfcfa2ff0e25487ed1734492ba09d5443e4 @@ -0,0 +1,11 @@ +network_input { + single_read_bytes: "222222222222222222222222222222222222222222222222222222222222222222222" +} +api_actions { + create_server { + channel_args { + } + } +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/d1e68bd6df3dbd06b1601548d3010a9588b446f5 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/d1e68bd6df3dbd06b1601548d3010a9588b446f5 new file mode 100644 index 0000000000000..39f6d927b6ed0 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/d1e68bd6df3dbd06b1601548d3010a9588b446f5 @@ -0,0 +1,2 @@ +event_engine_actions { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/e8e95ee5b19d31634258383e91e156f6d121c0ae b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/e8e95ee5b19d31634258383e91e156f6d121c0ae new file mode 100644 index 0000000000000..4dd9db9a0c9c8 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/e8e95ee5b19d31634258383e91e156f6d121c0ae @@ -0,0 +1,4 @@ +network_input { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/empty b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/empty new file mode 100644 index 0000000000000..8b137891791fe --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/empty @@ -0,0 +1 @@ + diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/fa1183de2ea3019dafe50f468197a27403c74d56 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/fa1183de2ea3019dafe50f468197a27403c74d56 new file mode 100644 index 0000000000000..801f65024efb0 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/fa1183de2ea3019dafe50f468197a27403c74d56 @@ -0,0 +1,6 @@ +network_input { +} +network_input { +} +channel_args { +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_chttp2.cc b/test/core/end2end/fuzzers/server_fuzzer_chttp2.cc new file mode 100644 index 0000000000000..2c4c3f30c95f3 --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chttp2.cc @@ -0,0 +1,29 @@ +// Copyright 2024 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +#include "src/libfuzzer/libfuzzer_macro.h" +#include "test/core/end2end/fuzzers/server_fuzzer.h" + +DEFINE_PROTO_FUZZER(const fuzzer_input::Msg& msg) { + grpc_core::RunServerFuzzer( + msg, [](grpc_server* server, int port_num, + const grpc_core::ChannelArgs& channel_args) { + auto* creds = grpc_insecure_server_credentials_create(); + grpc_server_add_http2_port( + server, absl::StrCat("0.0.0.0:", port_num).c_str(), creds); + grpc_server_credentials_release(creds); + }); +} diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5098656614121472 b/test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/5098656614121472 similarity index 100% rename from test/core/end2end/fuzzers/server_fuzzer_corpus/5098656614121472 rename to test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/5098656614121472 diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5250991764078592 b/test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/5250991764078592 similarity index 100% rename from test/core/end2end/fuzzers/server_fuzzer_corpus/5250991764078592 rename to test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/5250991764078592 diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/5367317597847552 b/test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/5367317597847552 similarity index 100% rename from test/core/end2end/fuzzers/server_fuzzer_corpus/5367317597847552 rename to test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/5367317597847552 diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/cancel-request.bin b/test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/cancel-request.bin similarity index 100% rename from test/core/end2end/fuzzers/server_fuzzer_corpus/cancel-request.bin rename to test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/cancel-request.bin diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/cancel-timeout-request.bin b/test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/cancel-timeout-request.bin similarity index 100% rename from test/core/end2end/fuzzers/server_fuzzer_corpus/cancel-timeout-request.bin rename to test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/cancel-timeout-request.bin diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/timeout-request.bin b/test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/timeout-request.bin similarity index 100% rename from test/core/end2end/fuzzers/server_fuzzer_corpus/timeout-request.bin rename to test/core/end2end/fuzzers/server_fuzzer_chttp2_corpus/timeout-request.bin