aboutsummaryrefslogtreecommitdiffstats
path: root/wsutil/plugins.c
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2017-02-20 14:05:15 +0100
committerMichael Mann <mmann78@netscape.net>2017-02-26 18:00:23 +0000
commit2de30dd18d86ddd7dd0f5aab636f36d1f4a37cc1 (patch)
tree205adfabcafcfb0237bbab0359703241b3b67974 /wsutil/plugins.c
parentdcfc288130e0576249f3ba7f8db7ad1681ff70f5 (diff)
wsutil: fix bugs in plugins_cleanup().
If plugin_list was NULL, plugin_types didn't get cleaned. Add test and set of open_info_arr. Change-Id: I7669e3ba86039fb2b26ff2da64f51896053c5e68 Reviewed-on: https://code.wireshark.org/review/20195 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'wsutil/plugins.c')
-rw-r--r--wsutil/plugins.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/wsutil/plugins.c b/wsutil/plugins.c
index 73d79f4b8e..d916c9cf77 100644
--- a/wsutil/plugins.c
+++ b/wsutil/plugins.c
@@ -438,21 +438,20 @@ plugins_cleanup(void)
plugin* prev;
plugin* cur;
- if (!plugin_list)
- return;
+ if (plugin_list) {
+ prev = plugin_list;
+ cur = plugin_list->next;
- prev = plugin_list;
- cur = plugin_list->next;
+ do {
+ g_free(prev->name);
+ g_free(prev);
+ prev = cur;
+ cur = cur->next;
+ } while(cur);
- do {
g_free(prev->name);
g_free(prev);
- prev = cur;
- cur = cur->next;
- } while(cur);
-
- g_free(prev->name);
- g_free(prev);
+ }
g_slist_foreach(plugin_types, free_plugin_type, NULL);
g_slist_free(plugin_types);