]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2200 in SNORT/snort3 from ~SATHIRKA/snort3:appid_core_fix to...
authorShravan Rangarajuvenkata (shrarang) <shrarang@cisco.com>
Fri, 8 May 2020 22:42:41 +0000 (22:42 +0000)
committerShravan Rangarajuvenkata (shrarang) <shrarang@cisco.com>
Fri, 8 May 2020 22:42:41 +0000 (22:42 +0000)
Squashed commit of the following:

commit 08c9f1bf6bc7847d7ee85f7785af0e03deb77ecf
Author: Sreeja Athirkandathil Narayanan <sathirka@cisco.com>
Date:   Tue May 5 14:32:29 2020 -0400

    appid: Get inspector for the current snort config during reload

src/network_inspectors/appid/appid_detector.cc
src/network_inspectors/appid/appid_module.cc
src/network_inspectors/appid/detector_plugins/detector_pattern.cc
src/network_inspectors/appid/host_port_app_cache.cc

index 5a815bc11001fe482b0fee44d86b1bcc575e52dc..ad4483a9bdba7a8c13178ae2586cdd08c0d3d0ae 100644 (file)
@@ -49,7 +49,8 @@ int AppIdDetector::initialize()
     if (!appid_registry.empty())
     {
         // FIXIT-M: RELOAD - to support ODP reload, store ODP context in AppIdDetector
-        AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME, true);
+        AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME);
+        assert(inspector);
         AppIdContext& ctxt = inspector->get_ctxt();
         for (auto& id : appid_registry)
             register_appid(id.appId, id.additionalInfo, ctxt.get_odp_ctxt());
index 0035a99eae16c0c85a4ec44c16bf013040c71f55..15a5006827de0c742d537e48f3115dfd59ca1569 100644 (file)
@@ -137,7 +137,8 @@ private:
 bool ACThirdPartyAppIdContextSwap::execute(Analyzer&, void**)
 {
     assert(tp_appid_thread_ctxt);
-    AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME, true);
+    AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME);
+    assert(inspector);
     ThirdPartyAppIdContext* tp_appid_ctxt = inspector->get_ctxt().get_tp_appid_ctxt();
     assert(tp_appid_thread_ctxt != tp_appid_ctxt);
     LogMessage("== swapping third-party configuration\n");
@@ -206,7 +207,12 @@ static int reload_third_party(lua_State*)
     }
     Swapper::set_reload_in_progress(true);
     LogMessage(".. reloading third-party\n");
-    AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME, true);
+    AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME);
+    if (!inspector)
+    {
+        LogMessage("== reload third-party failed - appid not enabled\n");
+        return 0;
+    }
     AppIdContext& ctxt = inspector->get_ctxt();
     ThirdPartyAppIdContext* old_ctxt = ctxt.get_tp_appid_ctxt();
     if (!old_ctxt)
index 962a4a435051ed0c99884a1f8b2e0193dd9d5a8f..1d0f09b6abc9863d589ea9a002fd5f9fa7f0ce2b 100644 (file)
@@ -118,7 +118,8 @@ static void read_patterns(PortPatternNode* portPatternList, PatternService** ser
         ps->pattern = pattern;
 
         // FIXIT-M: Tp support ODP reload, store ODP context in PatternService
-        AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME, true);
+        AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME);
+        assert(inspector);
         AppIdContext& ctxt = inspector->get_ctxt();
 
         ctxt.get_odp_ctxt().get_app_info_mgr().set_app_info_active(ps->id);
index 67e601aec683aad1c9b20c818e9aae7e572ad528..0e875be8b33f4afa6430f45f0741a77d9f16df02 100644 (file)
@@ -58,7 +58,8 @@ bool HostPortCache::add(const SfIp* ip, uint16_t port, IpProtocol proto, unsigne
     HostPortVal hv;
 
     hk.ip = *ip;
-    AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME, true);
+    AppIdInspector* inspector = (AppIdInspector*) InspectorManager::get_inspector(MOD_NAME);
+    assert(inspector);
     AppIdContext& ctxt = inspector->get_ctxt();
     hk.port = (ctxt.get_odp_ctxt().allow_port_wildcard_host_cache)? 0 : port;
     hk.proto = proto;