epan: Keep decode_as_list when changing profile

The decode_as_list is built at startup and contains all protocols
registered for "decode as". Do not clear this list on profile change,
only on exit.

Bug: 16635
Change-Id: I832a042327603ae0f01b10ab620fccc03d4fd3a3
Reviewed-on: https://code.wireshark.org/review/37579
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
This commit is contained in:
Stig Bjørlykke 2020-06-29 09:58:51 +02:00
parent 52d8c572fb
commit 3dc5f5c2d6
4 changed files with 12 additions and 2 deletions

View File

@ -246,6 +246,7 @@ libwireshark.so.0 libwireshark0 #MINVER#
decode_as_list@Base 1.12.0~rc1
decode_bits_in_field@Base 1.9.1
decode_build_reset_list@Base 2.3.0
decode_cleanup@Base 3.3.0
decode_clear_all@Base 2.3.0
decode_dcerpc_add_show_list@Base 1.12.0~rc1
decode_dcerpc_reset_all@Base 1.12.0~rc1

View File

@ -524,10 +524,14 @@ decode_clear_all(void)
g_slist_free(dissector_reset_list);
dissector_reset_list = NULL;
decode_dcerpc_reset_all();
}
void
decode_cleanup(void)
{
g_list_free(decode_as_list);
decode_as_list = NULL;
decode_dcerpc_reset_all();
}
/*

View File

@ -133,6 +133,10 @@ WS_DLL_PUBLIC int save_decode_as_entries(gchar** err);
*/
WS_DLL_PUBLIC void decode_clear_all(void);
/** Frees memory used by "decode as" routines. Called at program shutdown.
*/
WS_DLL_PUBLIC void decode_cleanup(void);
/** This routine creates one entry in the list of protocol dissector
* that need to be reset. It is called by the g_hash_table_foreach
* routine once for each changed entry in a dissector table.

View File

@ -341,6 +341,7 @@ epan_cleanup(void)
dfilter_cleanup();
decode_clear_all();
decode_cleanup();
#ifdef HAVE_LUA
/*