summaryrefslogtreecommitdiff
path: root/epan
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2017-01-20 16:04:44 +0100
committerMichael Mann <mmann78@netscape.net>2017-01-20 18:31:29 +0000
commit712d2aef72cc290c56c687e13fa4702f269bfca9 (patch)
tree2a09b12456678da5c29c219a8d5f705501ac2d33 /epan
parent81cbd4c5d1ccf720d938c46ae45c537ac8df35e6 (diff)
downloadwireshark-712d2aef72cc290c56c687e13fa4702f269bfca9.tar.gz
ber: add shutdown routine.
Change-Id: Idc494f6be0f2fd2187f21bccb870d24655ce1da5 Reviewed-on: https://code.wireshark.org/review/19647 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-ber.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c
index e0de3c6078..816ae26368 100644
--- a/epan/dissectors/packet-ber.c
+++ b/epan/dissectors/packet-ber.c
@@ -4277,6 +4277,12 @@ oid_has_dissector(const char *oid) {
return(dissector_get_string_handle(ber_oid_dissector_table, oid) != NULL);
}
+static void
+ber_shutdown(void)
+{
+ g_hash_table_destroy(syntax_table);
+}
+
void
proto_register_ber(void)
{
@@ -4569,12 +4575,13 @@ proto_register_ber(void)
ber_oid_dissector_table = register_dissector_table("ber.oid", "BER OID Dissectors", proto_ber, FT_STRING, BASE_NONE);
ber_syntax_dissector_table = register_dissector_table("ber.syntax", "BER syntax", proto_ber, FT_STRING, BASE_NONE);
- syntax_table = g_hash_table_new(g_str_hash, g_str_equal); /* oid to syntax */
+ syntax_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); /* oid to syntax */
register_ber_syntax_dissector("ASN.1", proto_ber, dissect_ber_syntax);
register_init_routine(ber_defragment_init);
register_cleanup_routine(ber_defragment_cleanup);
+ register_shutdown_routine(ber_shutdown);
register_decode_as(&ber_da);
}