From: Ron Dempster (rdempste) Date: Tue, 29 Aug 2023 12:08:51 +0000 (+0000) Subject: Pull request #3974: search_engines: allow a snort config to be passed to find_all X-Git-Tag: 3.1.70.0~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e200ada2415faadadc8df91a71ead8354ee38f8a;p=thirdparty%2Fsnort3.git Pull request #3974: search_engines: allow a snort config to be passed to find_all Merge in SNORT/snort3 from ~RDEMPSTE/snort3:wild_card to master Squashed commit of the following: commit ee1aa0de6b0ebe3449eb870b9581299074cea966 Author: Ron Dempster (rdempste) Date: Thu Aug 24 15:58:32 2023 -0400 search_engines: allow a snort config to be passed to find_all --- diff --git a/src/network_inspectors/appid/client_plugins/test/eve_ca_patterns_test.cc b/src/network_inspectors/appid/client_plugins/test/eve_ca_patterns_test.cc index 74973c962..03f2509c2 100644 --- a/src/network_inspectors/appid/client_plugins/test/eve_ca_patterns_test.cc +++ b/src/network_inspectors/appid/client_plugins/test/eve_ca_patterns_test.cc @@ -35,7 +35,7 @@ EveCaPattern eve_ca(APPID_UT_ID, "firefox", 90); namespace snort { -int SearchTool::find_all(const char* pattern, unsigned, MpseMatch, bool, void* data) +int SearchTool::find_all(const char* pattern, unsigned, MpseMatch, bool, void* data, const SnortConfig*) { if (strcmp(pattern, "firefox") == 0) eve_ca_pattern_match(&eve_ca, nullptr, 0, data, nullptr); diff --git a/src/network_inspectors/appid/detector_plugins/test/detector_sip_test.cc b/src/network_inspectors/appid/detector_plugins/test/detector_sip_test.cc index ef1208e3a..e70bdff0e 100644 --- a/src/network_inspectors/appid/detector_plugins/test/detector_sip_test.cc +++ b/src/network_inspectors/appid/detector_plugins/test/detector_sip_test.cc @@ -70,7 +70,7 @@ SearchTool::SearchTool(bool) mpsegrp = &mpse_group; } void SearchTool::reload() { } // LCOV_EXCL_LINE -int SearchTool::find_all(const char*, unsigned, MpseMatch, bool, void*) +int SearchTool::find_all(const char*, unsigned, MpseMatch, bool, void*, const SnortConfig*) { // Seg-fault will be observed if this is called without initializing pattern matchers assert(mpsegrp); diff --git a/src/network_inspectors/appid/detector_plugins/test/http_url_patterns_test.cc b/src/network_inspectors/appid/detector_plugins/test/http_url_patterns_test.cc index 700873df7..5929a5bed 100644 --- a/src/network_inspectors/appid/detector_plugins/test/http_url_patterns_test.cc +++ b/src/network_inspectors/appid/detector_plugins/test/http_url_patterns_test.cc @@ -65,7 +65,7 @@ void SearchTool::reload() { } static bool test_find_all_done = false; static bool test_find_all_enabled = false; static MatchedPatterns* mock_mp = nullptr; -int SearchTool::find_all(const char*, unsigned, MpseMatch, bool, void* mp_arg) +int SearchTool::find_all(const char*, unsigned, MpseMatch, bool, void* mp_arg, const SnortConfig*) { test_find_all_done = true; if (test_find_all_enabled) diff --git a/src/network_inspectors/appid/service_plugins/test/alpn_patterns_tests.cc b/src/network_inspectors/appid/service_plugins/test/alpn_patterns_tests.cc index f16dd0662..3b5ec9050 100644 --- a/src/network_inspectors/appid/service_plugins/test/alpn_patterns_tests.cc +++ b/src/network_inspectors/appid/service_plugins/test/alpn_patterns_tests.cc @@ -35,7 +35,7 @@ AlpnPattern alpn_pattern(APPID_UT_ID, "h3"); namespace snort { -int SearchTool::find_all(const char* pattern, unsigned, MpseMatch, bool, void* data) +int SearchTool::find_all(const char* pattern, unsigned, MpseMatch, bool, void* data, const SnortConfig*) { if (strcmp(pattern, "h3") == 0) alpn_pattern_match(&alpn_pattern, nullptr, 0, data, nullptr); diff --git a/src/network_inspectors/rna/test/ua_fp_stubs.cc b/src/network_inspectors/rna/test/ua_fp_stubs.cc index 732479fd0..1f8fccd8c 100644 --- a/src/network_inspectors/rna/test/ua_fp_stubs.cc +++ b/src/network_inspectors/rna/test/ua_fp_stubs.cc @@ -38,7 +38,7 @@ int SearchTool::find(const char*, unsigned, MpseMatch, int&, bool, void*) int SearchTool::find(const char*, unsigned, MpseMatch, bool, void*) { return 0; } -int SearchTool::find_all(const char*, unsigned, MpseMatch, bool, void*) +int SearchTool::find_all(const char*, unsigned, MpseMatch, bool, void*, const SnortConfig*) { return 0; } } diff --git a/src/search_engines/search_tool.cc b/src/search_engines/search_tool.cc index 613b8ae70..f8aebd0aa 100644 --- a/src/search_engines/search_tool.cc +++ b/src/search_engines/search_tool.cc @@ -134,10 +134,11 @@ int SearchTool::find( } int SearchTool::find_all( - const char* str, unsigned len, MpseMatch mf, bool confine, void* user_data) + const char* str, unsigned len, MpseMatch mf, bool confine, void* user_data, const SnortConfig* sc) { int num = 0; - const SnortConfig* sc = SnortConfig::get_conf(); + if (!sc) + sc = SnortConfig::get_conf(); const FastPatternConfig* fp = sc->fast_pattern_config; if ( confine && max_len > 0 ) diff --git a/src/search_engines/search_tool.h b/src/search_engines/search_tool.h index 1fb6a7dce..6e0427f00 100644 --- a/src/search_engines/search_tool.h +++ b/src/search_engines/search_tool.h @@ -57,7 +57,7 @@ public: bool confine = false, void* user_data = nullptr); int find_all(const char* s, unsigned s_len, MpseMatch, - bool confine = false, void* user_data = nullptr); + bool confine = false, void* user_data = nullptr, const SnortConfig* = nullptr); private: class MpseGroup* mpsegrp;