From 347f2a8a4baddf9cf566e182f372f64d5035e559 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 7 Jun 2024 11:03:49 -0700 Subject: [PATCH] [chaotic-good] Fix fuzzer found crash in server transport code (#36852) Closes #36852 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36852 from ctiller:f-st 5ffc88a71f2ef8ec8ab6bc8ebe1bb09330e1cffc PiperOrigin-RevId: 641300922 --- .../chaotic_good/server/chaotic_good_server.cc | 11 ++++------- ...zed-server_fuzzer_chaotic_good-5907858541051904 | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/clusterfuzz-testcase-minimized-server_fuzzer_chaotic_good-5907858541051904 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 31f51a837cf..dd606c98bba 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 @@ -443,13 +443,10 @@ void ChaoticGoodServerListener::ActiveConnection::HandshakingState:: Timestamp ChaoticGoodServerListener::ActiveConnection::HandshakingState:: GetConnectionDeadline() { - if (connection_->args().Contains(GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS)) { - return Timestamp::Now() + - connection_->args() - .GetDurationFromIntMillis(GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS) - .value(); - } - return Timestamp::Now() + kConnectionDeadline; + return Timestamp::Now() + + connection_->args() + .GetDurationFromIntMillis(GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS) + .value_or(kConnectionDeadline); } void ChaoticGoodServerListener::Orphan() { diff --git a/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/clusterfuzz-testcase-minimized-server_fuzzer_chaotic_good-5907858541051904 b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/clusterfuzz-testcase-minimized-server_fuzzer_chaotic_good-5907858541051904 new file mode 100644 index 00000000000..a418ed45cec --- /dev/null +++ b/test/core/end2end/fuzzers/server_fuzzer_chaotic_good_corpus/clusterfuzz-testcase-minimized-server_fuzzer_chaotic_good-5907858541051904 @@ -0,0 +1,14 @@ +network_input { + input_segments { + segments { + header { + } + } + } +} +channel_args { + args { + key: "grpc.server_handshake_timeout_ms" + str: "65537" + } +}