diff options
author | Dario Lombardo <lomato@gmail.com> | 2017-02-20 14:05:15 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-02-26 18:00:23 +0000 |
commit | 2de30dd18d86ddd7dd0f5aab636f36d1f4a37cc1 (patch) | |
tree | 205adfabcafcfb0237bbab0359703241b3b67974 /wsutil/plugins.c | |
parent | dcfc288130e0576249f3ba7f8db7ad1681ff70f5 (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.c | 21 |
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); |