From: Steve Chew (stechew) Date: Sat, 4 Apr 2020 18:35:27 +0000 (+0000) Subject: Merge pull request #2131 in SNORT/snort3 from ~SBAIGAL/snort3:safe_erase_plug_map... X-Git-Tag: 3.0.1-2~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82bcc598b9223ea29a89d4a44adb08d354fa9ea7;p=thirdparty%2Fsnort3.git Merge pull request #2131 in SNORT/snort3 from ~SBAIGAL/snort3:safe_erase_plug_map to master Squashed commit of the following: commit 16a5ac013e9100ebdf301bfb77d739fab41c9be0 Author: Steven Baigal (sbaigal) Date: Fri Apr 3 21:06:48 2020 -0400 plugin_manager: make erase from plug_map safer --- diff --git a/src/managers/plugin_manager.cc b/src/managers/plugin_manager.cc index 172d65d00..67c6494eb 100644 --- a/src/managers/plugin_manager.cc +++ b/src/managers/plugin_manager.cc @@ -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);