diff --git a/debian/libwireshark0.symbols b/debian/libwireshark0.symbols index b78b24d8f4d..02cedc68a50 100644 --- a/debian/libwireshark0.symbols +++ b/debian/libwireshark0.symbols @@ -700,6 +700,7 @@ libwireshark.so.0 libwireshark0 #MINVER# ftype_can_slice@Base 1.9.1 ftype_name@Base 1.9.1 ftype_pretty_name@Base 1.9.1 + funnel_cleanup@Base 2.9.1 funnel_get_funnel_ops@Base 1.9.1 funnel_register_all_menus@Base 1.9.1 funnel_register_menu@Base 1.9.1 diff --git a/epan/epan.c b/epan/epan.c index d54c49adccf..013e679c425 100644 --- a/epan/epan.c +++ b/epan/epan.c @@ -338,6 +338,7 @@ epan_cleanup(void) export_pdu_cleanup(); cleanup_enabled_and_disabled_lists(); stats_tree_cleanup(); + funnel_cleanup(); dtd_location(NULL); #ifdef HAVE_LUA wslua_cleanup(); diff --git a/epan/funnel.c b/epan/funnel.c index dd96db79cdc..a021106612b 100644 --- a/epan/funnel.c +++ b/epan/funnel.c @@ -62,7 +62,7 @@ static void funnel_remove_menu (funnel_menu_t ** menu_list, funnel_menu_t *menu) if (p) { m = p->next; } else { - m = *menu_list ? (*menu_list)->next : NULL; + m = *menu_list; } } else { p = m; @@ -139,6 +139,11 @@ void funnel_reload_menus(funnel_deregistration_cb_t d_cb, funnel_clear_menu(&added_menus); } +void funnel_cleanup(void) +{ + funnel_clear_menu(®istered_menus); +} + /* * Editor modelines - http://www.wireshark.org/tools/modelines.html * diff --git a/epan/funnel.h b/epan/funnel.h index 30ad70aa54b..ab522c3ff39 100644 --- a/epan/funnel.h +++ b/epan/funnel.h @@ -111,6 +111,7 @@ typedef void (*funnel_deregistration_cb_t)(funnel_menu_callback callback); WS_DLL_PUBLIC void funnel_register_all_menus(funnel_registration_cb_t r_cb); WS_DLL_PUBLIC void funnel_reload_menus(funnel_deregistration_cb_t d_cb, funnel_registration_cb_t r_cb); +WS_DLL_PUBLIC void funnel_cleanup(void); extern void initialize_funnel_ops(void);