]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2131 in SNORT/snort3 from ~SBAIGAL/snort3:safe_erase_plug_map...
authorSteve Chew (stechew) <stechew@cisco.com>
Sat, 4 Apr 2020 18:35:27 +0000 (18:35 +0000)
committerSteve Chew (stechew) <stechew@cisco.com>
Sat, 4 Apr 2020 18:35:27 +0000 (18:35 +0000)
Squashed commit of the following:

commit 16a5ac013e9100ebdf301bfb77d739fab41c9be0
Author: Steven Baigal (sbaigal) <sbaigal@cisco.com>
Date:   Fri Apr 3 21:06:48 2020 -0400

    plugin_manager: make erase from plug_map safer

src/managers/plugin_manager.cc

index 172d65d004c9f15a26fb026b8b1fdfb488c338a2..67c6494ebb850dbed7df67bdc8f06a12e6d5026b 100644 (file)
@@ -418,9 +418,13 @@ void PluginManager::reload_so_plugins(const char* paths, SnortConfig* sc)
     if ( paths )
     {
         // once plugin_path is provided for reload, old so_rules will be dropped
-        for( auto i = sc->plugins->plug_map.begin(); i != sc->plugins->plug_map.end(); ++i )
+        for( auto i = sc->plugins->plug_map.begin(); i != sc->plugins->plug_map.end(); )
+        {
             if ( plugin_is_reloadable(i->second.api) )
-                sc->plugins->plug_map.erase(i);
+                i = sc->plugins->plug_map.erase(i);
+            else
+                ++i;
+        }
         ::load_plugins(paths, sc);
     }
     load_so_plugins(sc, true);