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(),