From 258820a3f94f5e87e3bb77990c623d204d088a71 Mon Sep 17 00:00:00 2001 From: Yanjun Xiang Date: Wed, 10 May 2023 02:18:49 +0000 Subject: [PATCH] Envoy ext_proc filter fuzzer run crashed when test cases contains regex config. Signed-off-by: Yanjun Xiang --- ...h-2f5c31257230464b4b6015ecee3f6f090547fb0a | 43 +++++++++++++++++++ .../unit_test_fuzz/ext_proc_unit_test_fuzz.cc | 5 +++ 2 files changed, 48 insertions(+) create mode 100644 test/extensions/filters/http/ext_proc/unit_test_fuzz/ext_proc_corpus/crash-2f5c31257230464b4b6015ecee3f6f090547fb0a diff --git a/test/extensions/filters/http/ext_proc/unit_test_fuzz/ext_proc_corpus/crash-2f5c31257230464b4b6015ecee3f6f090547fb0a b/test/extensions/filters/http/ext_proc/unit_test_fuzz/ext_proc_corpus/crash-2f5c31257230464b4b6015ecee3f6f090547fb0a new file mode 100644 index 000000000000..8cb2340a494d --- /dev/null +++ b/test/extensions/filters/http/ext_proc/unit_test_fuzz/ext_proc_corpus/crash-2f5c31257230464b4b6015ecee3f6f090547fb0a @@ -0,0 +1,43 @@ +config { + grpc_service { + envoy_grpc { + cluster_name: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + } + response_attributes: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + response_attributes: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + mutation_rules { + allow_expression { + regex: "!" + } + } + max_message_timeout { + } +} +request { +} +response { + request_body { + } + dynamic_metadata { + fields { + key: "" + value { + list_value { + values { + bool_value: false + } + } + } + } + fields { + key: "" + value { + string_value: "" + } + } + } + mode_override { + request_trailer_mode: SEND + } +} diff --git a/test/extensions/filters/http/ext_proc/unit_test_fuzz/ext_proc_unit_test_fuzz.cc b/test/extensions/filters/http/ext_proc/unit_test_fuzz/ext_proc_unit_test_fuzz.cc index 2c565386cd91..89d6c55c9069 100644 --- a/test/extensions/filters/http/ext_proc/unit_test_fuzz/ext_proc_unit_test_fuzz.cc +++ b/test/extensions/filters/http/ext_proc/unit_test_fuzz/ext_proc_unit_test_fuzz.cc @@ -51,6 +51,11 @@ DEFINE_PROTO_FUZZER( input.config(); ExternalProcessing::FilterConfigSharedPtr config; + // Create regex engine which is used by regex matcher code. + Regex::EnginePtr regex_engine = std::make_shared(); + Regex::EngineSingleton::clear(); + Regex::EngineSingleton::initialize(regex_engine.get()); + try { config = std::make_shared( proto_config, std::chrono::milliseconds(200), 200, *stats_store.rootScope(),