From 6a6d7ea34f43515dfe3f52aa96b943c272c925a7 Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Thu, 22 Dec 2016 15:12:27 -0500 Subject: Convert range API to always use wmem memory. This is mostly to address memory leaks in range preferences (the biggest user of range functionality) on shutdown. Now range preferences must use epan scoped memory when referencing internal preference structures to keep consistency. Change-Id: Idc644f59b5b42fa1d46891542b53ff13ea754157 Reviewed-on: https://code.wireshark.org/review/19387 Petri-Dish: Michael Mann Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu Reviewed-by: Michael Mann --- epan/dissectors/packet-diameter.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'epan/dissectors/packet-diameter.c') diff --git a/epan/dissectors/packet-diameter.c b/epan/dissectors/packet-diameter.c index 6e8e909b43..de8efcbf44 100644 --- a/epan/dissectors/packet-diameter.c +++ b/epan/dissectors/packet-diameter.c @@ -2332,7 +2332,7 @@ proto_register_diameter(void) diameter_expr_result_vnd_table = register_dissector_table("diameter.vnd_exp_res", "DIAMETER Experimental-Result-Code", proto_diameter, FT_UINT32, BASE_DEC); /* Set default TCP ports */ - range_convert_str(&global_diameter_sctp_port_range, DEFAULT_DIAMETER_PORT_RANGE, MAX_SCTP_PORT); + range_convert_str(wmem_epan_scope(), &global_diameter_sctp_port_range, DEFAULT_DIAMETER_PORT_RANGE, MAX_SCTP_PORT); /* Register configuration options for ports */ diameter_module = prefs_register_protocol(proto_diameter, proto_reg_handoff_diameter); @@ -2420,11 +2420,11 @@ proto_reg_handoff_diameter(void) Initialized=TRUE; } else { dissector_delete_uint_range("sctp.port", diameter_sctp_port_range, diameter_sctp_handle); - g_free(diameter_sctp_port_range); + wmem_free(wmem_epan_scope(), diameter_sctp_port_range); } /* set port for future deletes */ - diameter_sctp_port_range = range_copy(global_diameter_sctp_port_range); + diameter_sctp_port_range = range_copy(wmem_epan_scope(), global_diameter_sctp_port_range); dissector_add_uint_range("sctp.port", diameter_sctp_port_range, diameter_sctp_handle); exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7); -- cgit v1.2.3