summaryrefslogtreecommitdiff
path: root/plugins/profinet
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/profinet')
-rw-r--r--plugins/profinet/packet-dcerpc-pn-io.c7
-rw-r--r--plugins/profinet/packet-dcom-cba.c5
-rw-r--r--plugins/profinet/packet-pn-rt.c20
3 files changed, 16 insertions, 16 deletions
diff --git a/plugins/profinet/packet-dcerpc-pn-io.c b/plugins/profinet/packet-dcerpc-pn-io.c
index c4579c9709..aac79965b5 100644
--- a/plugins/profinet/packet-dcerpc-pn-io.c
+++ b/plugins/profinet/packet-dcerpc-pn-io.c
@@ -2642,7 +2642,7 @@ dissect_profidrive_value(tvbuff_t *tvb, gint offset, packet_info *pinfo,
return(offset);
}
-GList *pnio_ars;
+static GList *pnio_ars;
typedef struct pnio_ar_s {
/* generic */
@@ -9759,7 +9759,8 @@ static dcerpc_sub_dissector pn_io_dissectors[] = {
static void
-pnio_reinit( void) {
+pnio_cleanup(void) {
+ g_list_free(pnio_ars);
pnio_ars = NULL;
}
@@ -12251,7 +12252,7 @@ proto_register_pn_io (void)
new_register_dissector("pn_io", dissect_PNIO_heur, proto_pn_io);
heur_pn_subdissector_list = register_heur_dissector_list("pn_io");
- register_init_routine(pnio_reinit);
+ register_cleanup_routine(pnio_cleanup);
register_dissector_filter("PN-IO AR", pn_io_ar_conv_valid, pn_io_ar_conv_filter);
register_dissector_filter("PN-IO AR (with data)", pn_io_ar_conv_valid, pn_io_ar_conv_data_filter);
diff --git a/plugins/profinet/packet-dcom-cba.c b/plugins/profinet/packet-dcom-cba.c
index b89e9fcfac..244b102cb0 100644
--- a/plugins/profinet/packet-dcom-cba.c
+++ b/plugins/profinet/packet-dcom-cba.c
@@ -1366,7 +1366,8 @@ static dcerpc_sub_dissector ICBASystemProperties_dissectors[] = {
};
-static void cba_reinit( void) {
+static void cba_cleanup(void) {
+ g_list_free(cba_pdevs);
cba_pdevs = NULL;
}
@@ -1642,7 +1643,7 @@ proto_register_dcom_cba (void)
proto_ICBASystemProperties = proto_register_protocol ("ICBASystemProperties", "ICBASysProp", "cba_sysprop");
- register_init_routine(cba_reinit);
+ register_cleanup_routine(cba_cleanup);
}
diff --git a/plugins/profinet/packet-pn-rt.c b/plugins/profinet/packet-pn-rt.c
index 3c43197a6a..cfbfcd3ab2 100644
--- a/plugins/profinet/packet-pn-rt.c
+++ b/plugins/profinet/packet-pn-rt.c
@@ -342,21 +342,18 @@ static void
pnio_defragment_init(void)
{
guint32 i;
-
- if ( reasembled_frag_table != NULL ) {
- g_hash_table_destroy( reasembled_frag_table );
- reasembled_frag_table = NULL;
- }
-
for (i=0; i < 16; i++) /* init the reasemble help array */
start_frag_OR_ID[i] = 0;
-
reassembly_table_init(&pdu_reassembly_table,
&addresses_reassembly_table_functions);
- if (reasembled_frag_table == NULL)
- {
- reasembled_frag_table = g_hash_table_new(NULL, NULL);
- }
+ reasembled_frag_table = g_hash_table_new(NULL, NULL);
+}
+
+static void
+pnio_defragment_cleanup(void)
+{
+ g_hash_table_destroy(reasembled_frag_table);
+ reassembly_table_destroy(&pdu_reassembly_table);
}
/* possibly dissect a FRAG_PDU related PN-RT packet */
@@ -988,6 +985,7 @@ proto_register_pn_rt(void)
init_pn (proto_pn_rt);
register_init_routine(pnio_defragment_init);
+ register_cleanup_routine(pnio_defragment_cleanup);
}