aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/addr_resolv.c5
-rw-r--r--epan/decode_as.c2
-rw-r--r--epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c6
-rw-r--r--epan/dissectors/asn1/camel/packet-camel-template.c6
-rw-r--r--epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c6
-rw-r--r--epan/dissectors/asn1/inap/packet-inap-template.c6
-rw-r--r--epan/dissectors/asn1/pcap/packet-pcap-template.c6
-rw-r--r--epan/dissectors/asn1/tcap/packet-tcap-template.c6
-rw-r--r--epan/dissectors/packet-ansi_map.c6
-rw-r--r--epan/dissectors/packet-camel.c6
-rw-r--r--epan/dissectors/packet-diameter.c6
-rw-r--r--epan/dissectors/packet-gopher.c1
-rw-r--r--epan/dissectors/packet-gsm_map.c6
-rw-r--r--epan/dissectors/packet-h264.c4
-rw-r--r--epan/dissectors/packet-http.c15
-rw-r--r--epan/dissectors/packet-igmp.c4
-rw-r--r--epan/dissectors/packet-inap.c6
-rw-r--r--epan/dissectors/packet-iscsi.c2
-rw-r--r--epan/dissectors/packet-iser.c2
-rw-r--r--epan/dissectors/packet-kafka.c1
-rw-r--r--epan/dissectors/packet-netflow.c12
-rw-r--r--epan/dissectors/packet-nvme-rdma.c2
-rw-r--r--epan/dissectors/packet-opa-fe.c7
-rw-r--r--epan/dissectors/packet-opa-mad.c10
-rw-r--r--epan/dissectors/packet-pcap.c6
-rw-r--r--epan/dissectors/packet-sccp.c13
-rw-r--r--epan/dissectors/packet-sgsap.c6
-rw-r--r--epan/dissectors/packet-tcap.c6
-rw-r--r--epan/dissectors/packet-tds.c1
-rw-r--r--epan/dissectors/packet-tftp.c1
-rw-r--r--epan/dissectors/packet-tpkt.c9
-rw-r--r--epan/dissectors/packet-uaudp.c1
-rw-r--r--epan/dissectors/packet-vnc.c1
-rw-r--r--epan/dissectors/packet-vp8.c4
-rw-r--r--epan/dissectors/packet-xml.c6
-rw-r--r--epan/packet.c5
-rw-r--r--epan/packet_range.c6
-rw-r--r--epan/prefs.c26
-rw-r--r--epan/prefs.h2
-rw-r--r--epan/range.c43
-rw-r--r--epan/range.h18
-rw-r--r--epan/uat.c3
-rw-r--r--epan/uat.h2
-rw-r--r--epan/wslua/wslua_dissector.c18
-rw-r--r--epan/wslua/wslua_pref.c2
-rw-r--r--plugins/stats_tree/pinfo_stats_tree.c4
-rw-r--r--plugins/transum/packet-transum.c17
-rw-r--r--ui/gtk/decode_as_dlg.c4
-rw-r--r--ui/gtk/prefs_dlg.c11
-rw-r--r--ui/preference_utils.c18
-rw-r--r--ui/qt/decode_as_dialog.cpp4
-rw-r--r--ui/qt/module_preferences_scroll_area.cpp4
-rw-r--r--ui/qt/preference_editor_frame.cpp14
-rw-r--r--ui/qt/preferences_dialog.cpp8
54 files changed, 189 insertions, 207 deletions
diff --git a/epan/addr_resolv.c b/epan/addr_resolv.c
index dede4efbfc..35df8fc9c8 100644
--- a/epan/addr_resolv.c
+++ b/epan/addr_resolv.c
@@ -526,15 +526,16 @@ parse_service_line (char *line)
return;
}
- if (CVT_NO_ERROR != range_convert_str(&port_rng, port, max_port)) {
+ if (CVT_NO_ERROR != range_convert_str(NULL, &port_rng, port, max_port)) {
/* some assertion here? */
+ wmem_free (NULL, port_rng);
return;
}
cb_service = service;
cb_proto = proto;
range_foreach(port_rng, add_serv_port_cb);
- g_free (port_rng);
+ wmem_free (NULL, port_rng);
cb_proto = PT_NONE;
} /* parse_service_line */
diff --git a/epan/decode_as.c b/epan/decode_as.c
index cf0e74170f..bf93115eea 100644
--- a/epan/decode_as.c
+++ b/epan/decode_as.c
@@ -220,7 +220,7 @@ read_set_decode_as_entries(gchar *key, const gchar *value,
module->prefs_changed = TRUE;
break;
case PREF_DECODE_AS_RANGE:
- range_add_value(pref_value->varp.range, (guint)long_value);
+ range_add_value(wmem_epan_scope(), pref_value->varp.range, (guint)long_value);
module->prefs_changed = TRUE;
break;
default:
diff --git a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
index 54ef076af1..09947f8c31 100644
--- a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
+++ b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
@@ -4567,10 +4567,10 @@ proto_reg_handoff_ansi_map(void)
else
{
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
}
@@ -5485,7 +5485,7 @@ void proto_register_ansi_map(void) {
ansi_map_tap = register_tap("ansi_map");
- range_convert_str(&global_ssn_range, "5-14", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "5-14", MAX_SSN);
ansi_map_module = prefs_register_protocol(proto_ansi_map, proto_reg_handoff_ansi_map);
diff --git a/epan/dissectors/asn1/camel/packet-camel-template.c b/epan/dissectors/asn1/camel/packet-camel-template.c
index f12a63c4b4..78df8f9bc3 100644
--- a/epan/dissectors/asn1/camel/packet-camel-template.c
+++ b/epan/dissectors/asn1/camel/packet-camel-template.c
@@ -1327,10 +1327,10 @@ void proto_reg_handoff_camel(void) {
#include "packet-camel-dis-tab.c"
} else {
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
@@ -1572,7 +1572,7 @@ void proto_register_camel(void) {
/* Register our configuration options, particularly our SSNs */
/* Set default SSNs */
- range_convert_str(&global_ssn_range, "146", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "146", MAX_SSN);
camel_module = prefs_register_protocol(proto_camel, proto_reg_handoff_camel);
diff --git a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
index bff2990d4e..ce83d1c861 100644
--- a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
+++ b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
@@ -2749,10 +2749,10 @@ void proto_reg_handoff_gsm_map(void) {
}
else {
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
}
@@ -3153,7 +3153,7 @@ void proto_register_gsm_map(void) {
* Register our configuration options, particularly our ssn:s
* Set default SSNs
*/
- range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "6-9", MAX_SSN);
gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
diff --git a/epan/dissectors/asn1/inap/packet-inap-template.c b/epan/dissectors/asn1/inap/packet-inap-template.c
index 626013fae2..16b7e543f5 100644
--- a/epan/dissectors/asn1/inap/packet-inap-template.c
+++ b/epan/dissectors/asn1/inap/packet-inap-template.c
@@ -185,10 +185,10 @@ void proto_reg_handoff_inap(void) {
}
else {
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
@@ -244,7 +244,7 @@ void proto_register_inap(void) {
register_ber_oid_dissector("0.4.0.1.1.1.0.0", dissect_inap, proto_inap, "cs1-ssp-to-scp");
/* Set default SSNs */
- range_convert_str(&global_ssn_range, "106,241", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "106,241", MAX_SSN);
inap_module = prefs_register_protocol(proto_inap, proto_reg_handoff_inap);
diff --git a/epan/dissectors/asn1/pcap/packet-pcap-template.c b/epan/dissectors/asn1/pcap/packet-pcap-template.c
index 7748a984dd..a3531de7ae 100644
--- a/epan/dissectors/asn1/pcap/packet-pcap-template.c
+++ b/epan/dissectors/asn1/pcap/packet-pcap-template.c
@@ -154,9 +154,9 @@ proto_reg_handoff_pcap(void)
#include "packet-pcap-dis-tab.c"
} else {
dissector_delete_uint_range("sccp.ssn", ssn_range, pcap_handle);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
dissector_add_uint_range("sccp.ssn", ssn_range, pcap_handle);
}
@@ -202,7 +202,7 @@ void proto_register_pcap(void) {
/* Preferences */
/* Set default SSNs */
- range_convert_str(&global_ssn_range, "", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "", MAX_SSN);
prefs_register_range_preference(pcap_module, "ssn", "SCCP SSNs",
"SCCP (and SUA) SSNs to decode as PCAP",
diff --git a/epan/dissectors/asn1/tcap/packet-tcap-template.c b/epan/dissectors/asn1/tcap/packet-tcap-template.c
index e64e57de8e..b67f0f43ab 100644
--- a/epan/dissectors/asn1/tcap/packet-tcap-template.c
+++ b/epan/dissectors/asn1/tcap/packet-tcap-template.c
@@ -2101,7 +2101,7 @@ proto_register_tcap(void)
#endif
/* Set default SSNs */
- range_convert_str(&global_ssn_range, "", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "", MAX_SSN);
prefs_register_range_preference(tcap_module, "ssn", "SCCP SSNs",
"SCCP (and SUA) SSNs to decode as TCAP",
@@ -2154,7 +2154,7 @@ static void range_add_callback(guint32 ssn)
static void init_tcap(void)
{
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
tcapsrt_init_routine();
}
@@ -2162,7 +2162,7 @@ static void init_tcap(void)
static void cleanup_tcap(void)
{
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
static int
diff --git a/epan/dissectors/packet-ansi_map.c b/epan/dissectors/packet-ansi_map.c
index 78002f3501..7903182ddc 100644
--- a/epan/dissectors/packet-ansi_map.c
+++ b/epan/dissectors/packet-ansi_map.c
@@ -16216,10 +16216,10 @@ proto_reg_handoff_ansi_map(void)
else
{
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
}
@@ -19555,7 +19555,7 @@ void proto_register_ansi_map(void) {
ansi_map_tap = register_tap("ansi_map");
- range_convert_str(&global_ssn_range, "5-14", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "5-14", MAX_SSN);
ansi_map_module = prefs_register_protocol(proto_ansi_map, proto_reg_handoff_ansi_map);
diff --git a/epan/dissectors/packet-camel.c b/epan/dissectors/packet-camel.c
index c8644c82b8..c955bd3fb5 100644
--- a/epan/dissectors/packet-camel.c
+++ b/epan/dissectors/packet-camel.c
@@ -8296,10 +8296,10 @@ void proto_reg_handoff_camel(void) {
#line 1328 "./asn1/camel/packet-camel-template.c"
} else {
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
@@ -10691,7 +10691,7 @@ void proto_register_camel(void) {
/* Register our configuration options, particularly our SSNs */
/* Set default SSNs */
- range_convert_str(&global_ssn_range, "146", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "146", MAX_SSN);
camel_module = prefs_register_protocol(proto_camel, proto_reg_handoff_camel);
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);
diff --git a/epan/dissectors/packet-gopher.c b/epan/dissectors/packet-gopher.c
index 79003540f1..43e632ad55 100644
--- a/epan/dissectors/packet-gopher.c
+++ b/epan/dissectors/packet-gopher.c
@@ -203,7 +203,6 @@ dissect_gopher(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
static void
gopher_prefs_apply(void) {
- g_free(gopher_tcp_range);
gopher_tcp_range = prefs_get_range_value("gopher", "tcp.port");
}
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c
index 9f70cd7525..83714dc321 100644
--- a/epan/dissectors/packet-gsm_map.c
+++ b/epan/dissectors/packet-gsm_map.c
@@ -23088,10 +23088,10 @@ void proto_reg_handoff_gsm_map(void) {
}
else {
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
}
@@ -31230,7 +31230,7 @@ void proto_register_gsm_map(void) {
* Register our configuration options, particularly our ssn:s
* Set default SSNs
*/
- range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "6-9", MAX_SSN);
gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
diff --git a/epan/dissectors/packet-h264.c b/epan/dissectors/packet-h264.c
index 1eb3de874f..133c817a7e 100644
--- a/epan/dissectors/packet-h264.c
+++ b/epan/dissectors/packet-h264.c
@@ -3730,10 +3730,10 @@ proto_reg_handoff_h264(void)
h264_prefs_initialized = TRUE;
} else {
range_foreach(dynamic_payload_type_range, range_delete_h264_rtp_pt_callback);
- g_free(dynamic_payload_type_range);
+ wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
}
- dynamic_payload_type_range = range_copy(temp_dynamic_payload_type_range);
+ dynamic_payload_type_range = range_copy(wmem_epan_scope(), temp_dynamic_payload_type_range);
range_foreach(dynamic_payload_type_range, range_add_h264_rtp_pt_callback);
}
diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c
index 4deb3f83f2..64d1133c0e 100644
--- a/epan/dissectors/packet-http.c
+++ b/epan/dissectors/packet-http.c
@@ -3295,17 +3295,16 @@ range_add_http_ssl_callback(guint32 port) {
}
static void reinit_http(void) {
- g_free(http_tcp_range);
http_tcp_range = prefs_get_range_value("http", "tcp.port");
dissector_delete_uint_range("sctp.port", http_sctp_range, http_sctp_handle);
- g_free(http_sctp_range);
- http_sctp_range = range_copy(global_http_sctp_range);
+ wmem_free(wmem_epan_scope(), http_sctp_range);
+ http_sctp_range = range_copy(wmem_epan_scope(), global_http_sctp_range);
dissector_add_uint_range("sctp.port", http_sctp_range, http_sctp_handle);
range_foreach(http_ssl_range, range_delete_http_ssl_callback);
- g_free(http_ssl_range);
- http_ssl_range = range_copy(global_http_ssl_range);
+ wmem_free(wmem_epan_scope(), http_ssl_range);
+ http_ssl_range = range_copy(wmem_epan_scope(), global_http_ssl_range);
range_foreach(http_ssl_range, range_add_http_ssl_callback);
}
@@ -3652,14 +3651,12 @@ proto_register_http(void)
#endif
prefs_register_obsolete_preference(http_module, "tcp_alternate_port");
- range_convert_str(&global_http_sctp_range, SCTP_DEFAULT_RANGE, 65535);
- http_sctp_range = range_empty();
+ range_convert_str(wmem_epan_scope(), &global_http_sctp_range, SCTP_DEFAULT_RANGE, 65535);
prefs_register_range_preference(http_module, "sctp.port", "SCTP Ports",
"SCTP Ports range",
&global_http_sctp_range, 65535);
- range_convert_str(&global_http_ssl_range, SSL_DEFAULT_RANGE, 65535);
- http_ssl_range = range_empty();
+ range_convert_str(wmem_epan_scope(), &global_http_ssl_range, SSL_DEFAULT_RANGE, 65535);
prefs_register_range_preference(http_module, "ssl.port", "SSL/TLS Ports",
"SSL/TLS Ports range",
&global_http_ssl_range, 65535);
diff --git a/epan/dissectors/packet-igmp.c b/epan/dissectors/packet-igmp.c
index 51ca96bdeb..1db84fd413 100644
--- a/epan/dissectors/packet-igmp.c
+++ b/epan/dissectors/packet-igmp.c
@@ -1119,10 +1119,10 @@ proto_reg_handoff_igmp(void)
dissector_add_uint("ip.proto", IP_PROTO_IGMP, igmp_handle);
/* IGMP v0 */
- range_convert_str(&igmpv0_range, "0-15", 15);
+ range_convert_str(NULL, &igmpv0_range, "0-15", 15);
igmpv0_handle = create_dissector_handle(dissect_igmp_v0, proto_igmp);
dissector_add_uint_range("igmp.type", igmpv0_range, igmpv0_handle);
- g_free(igmpv0_range);
+ wmem_free(NULL, igmpv0_range);
/* IGMP v1 */
igmpv1_handle = create_dissector_handle(dissect_igmp_v1, proto_igmp);
diff --git a/epan/dissectors/packet-inap.c b/epan/dissectors/packet-inap.c
index 7bee59f799..2e619c0697 100644
--- a/epan/dissectors/packet-inap.c
+++ b/epan/dissectors/packet-inap.c
@@ -9422,10 +9422,10 @@ void proto_reg_handoff_inap(void) {
}
else {
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
@@ -11967,7 +11967,7 @@ void proto_register_inap(void) {
register_ber_oid_dissector("0.4.0.1.1.1.0.0", dissect_inap, proto_inap, "cs1-ssp-to-scp");
/* Set default SSNs */
- range_convert_str(&global_ssn_range, "106,241", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "106,241", MAX_SSN);
inap_module = prefs_register_protocol(proto_inap, proto_reg_handoff_inap);
diff --git a/epan/dissectors/packet-iscsi.c b/epan/dissectors/packet-iscsi.c
index f5d44d6f53..9d9dcacba3 100644
--- a/epan/dissectors/packet-iscsi.c
+++ b/epan/dissectors/packet-iscsi.c
@@ -3131,7 +3131,7 @@ proto_register_iscsi(void)
10,
&bogus_pdu_data_length_threshold);
- range_convert_str(&global_iscsi_port_range, TCP_PORT_ISCSI_RANGE, MAX_TCP_PORT);
+ range_convert_str(wmem_epan_scope(), &global_iscsi_port_range, TCP_PORT_ISCSI_RANGE, MAX_TCP_PORT);
prefs_register_range_preference(iscsi_module,
"target_ports",
"Target Ports Range",
diff --git a/epan/dissectors/packet-iser.c b/epan/dissectors/packet-iser.c
index f5edbebb7d..9e0f4bb239 100644
--- a/epan/dissectors/packet-iser.c
+++ b/epan/dissectors/packet-iser.c
@@ -348,7 +348,7 @@ proto_register_iser(void)
prefs_register_obsolete_preference(iser_module, "addr_b_id");
prefs_register_obsolete_preference(iser_module, "addr_b_qp");
- range_convert_str(&gPORT_RANGE, TCP_PORT_ISER_RANGE, MAX_TCP_PORT);
+ range_convert_str(wmem_epan_scope(), &gPORT_RANGE, TCP_PORT_ISER_RANGE, MAX_TCP_PORT);
prefs_register_range_preference(iser_module,
"target_ports",
"Target Ports Range",
diff --git a/epan/dissectors/packet-kafka.c b/epan/dissectors/packet-kafka.c
index e85a208e7e..4b2e163895 100644
--- a/epan/dissectors/packet-kafka.c
+++ b/epan/dissectors/packet-kafka.c
@@ -3400,7 +3400,6 @@ dissect_kafka_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
static void
apply_kafka_prefs(void) {
- g_free(current_kafka_tcp_range);
current_kafka_tcp_range = prefs_get_range_value("kafka", "tcp.port");
}
diff --git a/epan/dissectors/packet-netflow.c b/epan/dissectors/packet-netflow.c
index 6754882c05..bee1d70cc7 100644
--- a/epan/dissectors/packet-netflow.c
+++ b/epan/dissectors/packet-netflow.c
@@ -12011,8 +12011,8 @@ proto_register_netflow(void)
netflow_module = prefs_register_protocol(proto_netflow, proto_reg_handoff_netflow);
/* Set default Netflow port(s) */
- range_convert_str(&global_netflow_ports, NETFLOW_UDP_PORTS, MAX_UDP_PORT);
- range_convert_str(&global_ipfix_ports, IPFIX_UDP_PORTS, MAX_UDP_PORT);
+ range_convert_str(wmem_epan_scope(), &global_netflow_ports, NETFLOW_UDP_PORTS, MAX_UDP_PORT);
+ range_convert_str(wmem_epan_scope(), &global_ipfix_ports, IPFIX_UDP_PORTS, MAX_UDP_PORT);
prefs_register_obsolete_preference(netflow_module, "udp.port");
@@ -12075,13 +12075,13 @@ proto_reg_handoff_netflow(void)
dissector_add_uint_range_with_preference("tcp.port", IPFIX_UDP_PORTS, netflow_handle);
} else {
dissector_delete_uint_range("udp.port", netflow_ports, netflow_handle);
- g_free(netflow_ports);
+ wmem_free(wmem_epan_scope(), netflow_ports);
range_foreach(ipfix_ports, ipfix_delete_callback);
- g_free(ipfix_ports);
+ wmem_free(wmem_epan_scope(), ipfix_ports);
}
- netflow_ports = range_copy(global_netflow_ports);
- ipfix_ports = range_copy(global_ipfix_ports);
+ netflow_ports = range_copy(wmem_epan_scope(), global_netflow_ports);
+ ipfix_ports = range_copy(wmem_epan_scope(), global_ipfix_ports);
dissector_add_uint_range("udp.port", netflow_ports, netflow_handle);
range_foreach(ipfix_ports, ipfix_add_callback);
diff --git a/epan/dissectors/packet-nvme-rdma.c b/epan/dissectors/packet-nvme-rdma.c
index 5ac99c17c5..d4dbba290c 100644
--- a/epan/dissectors/packet-nvme-rdma.c
+++ b/epan/dissectors/packet-nvme-rdma.c
@@ -1028,7 +1028,7 @@ proto_register_nvme_rdma(void)
//nvme_rdma_module = prefs_register_protocol(proto_nvme_rdma, proto_reg_handoff_nvme_rdma);
nvme_rdma_module = prefs_register_protocol(proto_nvme_rdma, NULL);
- range_convert_str(&gPORT_RANGE, NVME_RDMA_TCP_PORT_RANGE, MAX_TCP_PORT);
+ range_convert_str(wmem_epan_scope(), &gPORT_RANGE, NVME_RDMA_TCP_PORT_RANGE, MAX_TCP_PORT);
prefs_register_range_preference(nvme_rdma_module,
"subsystem_ports",
"Subsystem Ports Range",
diff --git a/epan/dissectors/packet-opa-fe.c b/epan/dissectors/packet-opa-fe.c
index 11ca863f81..b391a8cb44 100644
--- a/epan/dissectors/packet-opa-fe.c
+++ b/epan/dissectors/packet-opa-fe.c
@@ -135,8 +135,7 @@ void proto_register_opa_fe(void)
proto_register_subtree_array(ett, array_length(ett));
opa_fe_module = prefs_register_protocol(proto_opa_fe, proto_reg_handoff_opa_fe);
- range_convert_str(&global_fe_ssl_range, OPA_FE_SSL_RANGE, 65535);
- fe_ssl_range = range_empty();
+ range_convert_str(wmem_epan_scope(), &global_fe_ssl_range, OPA_FE_SSL_RANGE, 65535);
prefs_register_range_preference(opa_fe_module, "ssl.port", "SSL/TLS Ports",
"SSL/TLS Ports range",
&global_fe_ssl_range, 65535);
@@ -154,8 +153,8 @@ void proto_reg_handoff_opa_fe(void)
}
range_foreach(fe_ssl_range, range_delete_fe_ssl_callback);
- g_free(fe_ssl_range);
- fe_ssl_range = range_copy(global_fe_ssl_range);
+ wmem_free(wmem_epan_scope(), fe_ssl_range);
+ fe_ssl_range = range_copy(wmem_epan_scope(), global_fe_ssl_range);
range_foreach(fe_ssl_range, range_add_fe_ssl_callback);
}
diff --git a/epan/dissectors/packet-opa-mad.c b/epan/dissectors/packet-opa-mad.c
index 93d8aa256e..af76c6b653 100644
--- a/epan/dissectors/packet-opa-mad.c
+++ b/epan/dissectors/packet-opa-mad.c
@@ -13493,11 +13493,11 @@ void proto_register_opa_mad(void)
expert_opa_mad = expert_register_protocol(proto_opa_mad);
expert_register_field_array(expert_opa_mad, ei, array_length(ei));
- range_convert_str(&global_mad_vendor_class, OPA_VENDOR_RANGE_STR, 0xFF);
- range_convert_str(&global_mad_vendor_rmpp_class, OPA_VENDOR_RMPP_RANGE_STR, 0xFF);
- range_convert_str(&global_mad_application_class, OPA_APPLICATION_RANGE_STR, 0xFF);
- range_convert_str(&global_mad_reserved_class, OPA_RESERVED_RANGE_STR, 0xFF);
- range_convert_str(&global_mad_opa_class, OPA_MGMTCLASS_RANGE_STR, 0xFF);
+ range_convert_str(wmem_epan_scope(), &global_mad_vendor_class, OPA_VENDOR_RANGE_STR, 0xFF);
+ range_convert_str(wmem_epan_scope(), &global_mad_vendor_rmpp_class, OPA_VENDOR_RMPP_RANGE_STR, 0xFF);
+ range_convert_str(wmem_epan_scope(), &global_mad_application_class, OPA_APPLICATION_RANGE_STR, 0xFF);
+ range_convert_str(wmem_epan_scope(), &global_mad_reserved_class, OPA_RESERVED_RANGE_STR, 0xFF);
+ range_convert_str(wmem_epan_scope(), &global_mad_opa_class, OPA_MGMTCLASS_RANGE_STR, 0xFF);
opa_mad_module = prefs_register_protocol(proto_opa_mad, proto_reg_handoff_opa_mad);
prefs_register_bool_preference(opa_mad_module, "parse_mad_error",
diff --git a/epan/dissectors/packet-pcap.c b/epan/dissectors/packet-pcap.c
index 906d6d5d17..3fdabda8bc 100644
--- a/epan/dissectors/packet-pcap.c
+++ b/epan/dissectors/packet-pcap.c
@@ -13721,9 +13721,9 @@ proto_reg_handoff_pcap(void)
#line 155 "./asn1/pcap/packet-pcap-template.c"
} else {
dissector_delete_uint_range("sccp.ssn", ssn_range, pcap_handle);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
dissector_add_uint_range("sccp.ssn", ssn_range, pcap_handle);
}
@@ -18732,7 +18732,7 @@ void proto_register_pcap(void) {
/* Preferences */
/* Set default SSNs */
- range_convert_str(&global_ssn_range, "", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "", MAX_SSN);
prefs_register_range_preference(pcap_module, "ssn", "SCCP SSNs",
"SCCP (and SUA) SSNs to decode as PCAP",
diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c
index fe852b9f1a..4b148a729a 100644
--- a/epan/dissectors/packet-sccp.c
+++ b/epan/dissectors/packet-sccp.c
@@ -3452,17 +3452,20 @@ sccp_users_update_cb(void *r, char **err)
struct _sccp_ul *c;
range_t *empty;
- empty = range_empty();
+ empty = range_empty(NULL);
if (ranges_are_equal(u->called_pc, empty)) {
*err = g_strdup("Must specify a PC");
+ wmem_free(NULL, empty);
return FALSE;
}
if (ranges_are_equal(u->called_ssn, empty)) {
*err = g_strdup("Must specify an SSN");
+ wmem_free(NULL, empty);
return FALSE;
}
+ wmem_free(NULL, empty);
for (c=user_list; c->handlep; c++) {
if (c->id == u->user) {
u->uses_tcap = c->uses_tcap;
@@ -3488,9 +3491,9 @@ sccp_users_copy_cb(void *n, const void *o, size_t siz _U_)
un->handlep = u->handlep;
if (u->called_pc)
- un->called_pc = range_copy(u->called_pc);
+ un->called_pc = range_copy(NULL, u->called_pc);
if (u->called_ssn)
- un->called_ssn = range_copy(u->called_ssn);
+ un->called_ssn = range_copy(NULL, u->called_ssn);
return n;
}
@@ -3499,8 +3502,8 @@ static void
sccp_users_free_cb(void *r)
{
sccp_user_t *u = (sccp_user_t *)r;
- if (u->called_pc) g_free(u->called_pc);
- if (u->called_ssn) g_free(u->called_ssn);
+ if (u->called_pc) wmem_free(NULL, u->called_pc);
+ if (u->called_ssn) wmem_free(NULL, u->called_ssn);
}
diff --git a/epan/dissectors/packet-sgsap.c b/epan/dissectors/packet-sgsap.c
index 0b3e300869..a30786e49f 100644
--- a/epan/dissectors/packet-sgsap.c
+++ b/epan/dissectors/packet-sgsap.c
@@ -1713,7 +1713,7 @@ void proto_register_sgsap(void) {
sgsap_handle = register_dissector(PFNAME, dissect_sgsap, proto_sgsap);
/* Set default SCTP ports */
- range_convert_str(&global_sgsap_port_range, SGSAP_SCTP_PORT_RANGE, MAX_SCTP_PORT);
+ range_convert_str(wmem_epan_scope(), &global_sgsap_port_range, SGSAP_SCTP_PORT_RANGE, MAX_SCTP_PORT);
sgsap_module = prefs_register_protocol(proto_sgsap, proto_reg_handoff_sgsap);
@@ -1740,10 +1740,10 @@ proto_reg_handoff_sgsap(void)
Initialized=TRUE;
} else {
dissector_delete_uint_range("sctp.port", sgsap_port_range, sgsap_handle);
- g_free(sgsap_port_range);
+ wmem_free(wmem_epan_scope(), sgsap_port_range);
}
- sgsap_port_range = range_copy(global_sgsap_port_range);
+ sgsap_port_range = range_copy(wmem_epan_scope(), global_sgsap_port_range);
dissector_add_uint_range("sctp.port", sgsap_port_range, sgsap_handle);
}
diff --git a/epan/dissectors/packet-tcap.c b/epan/dissectors/packet-tcap.c
index fb7c30c72e..3662cff253 100644
--- a/epan/dissectors/packet-tcap.c
+++ b/epan/dissectors/packet-tcap.c
@@ -3686,7 +3686,7 @@ proto_register_tcap(void)
#endif
/* Set default SSNs */
- range_convert_str(&global_ssn_range, "", MAX_SSN);
+ range_convert_str(wmem_epan_scope(), &global_ssn_range, "", MAX_SSN);
prefs_register_range_preference(tcap_module, "ssn", "SCCP SSNs",
"SCCP (and SUA) SSNs to decode as TCAP",
@@ -3739,7 +3739,7 @@ static void range_add_callback(guint32 ssn)
static void init_tcap(void)
{
- ssn_range = range_copy(global_ssn_range);
+ ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
range_foreach(ssn_range, range_add_callback);
tcapsrt_init_routine();
}
@@ -3747,7 +3747,7 @@ static void init_tcap(void)
static void cleanup_tcap(void)
{
range_foreach(ssn_range, range_delete_callback);
- g_free(ssn_range);
+ wmem_free(wmem_epan_scope(), ssn_range);
}
static int
diff --git a/epan/dissectors/packet-tds.c b/epan/dissectors/packet-tds.c
index b7797243ce..fee8a0b07b 100644
--- a/epan/dissectors/packet-tds.c
+++ b/epan/dissectors/packet-tds.c
@@ -4216,7 +4216,6 @@ version_convert( gchar *result, guint32 hexver )
static void
apply_tds_prefs(void) {
- g_free(tds_tcp_ports);
tds_tcp_ports = prefs_get_range_value("tds", "tcp.port");
}
diff --git a/epan/dissectors/packet-tftp.c b/epan/dissectors/packet-tftp.c
index 113e3d7edf..a8d9022e59 100644
--- a/epan/dissectors/packet-tftp.c
+++ b/epan/dissectors/packet-tftp.c
@@ -693,7 +693,6 @@ dissect_tftp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
static void
apply_tftp_prefs(void) {
- g_free(global_tftp_port_range);
global_tftp_port_range = prefs_get_range_value("tftp", "udp.port");
}
diff --git a/epan/dissectors/packet-tpkt.c b/epan/dissectors/packet-tpkt.c
index bed73e91ce..937769c175 100644
--- a/epan/dissectors/packet-tpkt.c
+++ b/epan/dissectors/packet-tpkt.c
@@ -659,7 +659,7 @@ proto_register_tpkt(void)
"To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
&tpkt_desegment);
- range_convert_str(&tpkt_tcp_port_range, DEFAULT_TPKT_PORT_RANGE, MAX_TCP_PORT);
+ range_convert_str(wmem_epan_scope(), &tpkt_tcp_port_range, DEFAULT_TPKT_PORT_RANGE, MAX_TCP_PORT);
prefs_register_range_preference(tpkt_module, "tcp.ports", "TPKT TCP ports",
"TCP ports to be decoded as TPKT (default: "
@@ -670,12 +670,15 @@ proto_register_tpkt(void)
void
proto_reg_handoff_tpkt(void)
{
- static range_t *port_range;
+ static range_t *port_range = NULL;
osi_tp_handle = find_dissector("ositp");
dissector_add_uint_range_with_preference("tcp.port", TCP_PORT_TPKT_RANGE, tpkt_handle);
- port_range = range_copy(tpkt_tcp_port_range);
+ dissector_delete_uint_range("tcp.port", port_range, tpkt_handle);
+ wmem_free(wmem_epan_scope(), port_range);
+
+ port_range = range_copy(wmem_epan_scope(), tpkt_tcp_port_range);
dissector_add_uint_range("tcp.port", port_range, tpkt_handle);
/*
diff --git a/epan/dissectors/packet-uaudp.c b/epan/dissectors/packet-uaudp.c
index a1efca078f..af173dff66 100644
--- a/epan/dissectors/packet-uaudp.c
+++ b/epan/dissectors/packet-uaudp.c
@@ -358,7 +358,6 @@ static int dissect_uaudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
static void
apply_uaudp_prefs(void) {
- g_free(ua_udp_range);
ua_udp_range = prefs_get_range_value("uaudp", "udp.port");
if (*pref_sys_ip_s) {
diff --git a/epan/dissectors/packet-vnc.c b/epan/dissectors/packet-vnc.c
index 8bfd03e115..8570467bc0 100644
--- a/epan/dissectors/packet-vnc.c
+++ b/epan/dissectors/packet-vnc.c
@@ -3460,7 +3460,6 @@ vnc_get_depth(packet_info *pinfo)
/* Preference callbacks */
static void
apply_vnc_prefs(void) {
- g_free(vnc_tcp_range);
vnc_tcp_range = prefs_get_range_value("vnc", "tcp.port");
}
diff --git a/epan/dissectors/packet-vp8.c b/epan/dissectors/packet-vp8.c
index 44c4e87a90..45d19c3123 100644
--- a/epan/dissectors/packet-vp8.c
+++ b/epan/dissectors/packet-vp8.c
@@ -606,10 +606,10 @@ proto_reg_handoff_vp8(void)
vp8_prefs_initialized = TRUE;
} else {
range_foreach(dynamic_payload_type_range, range_delete_vp8_rtp_pt_callback);
- g_free(dynamic_payload_type_range);
+ wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
}
- dynamic_payload_type_range = range_copy(temp_dynamic_payload_type_range);
+ dynamic_payload_type_range = range_copy(wmem_epan_scope(), temp_dynamic_payload_type_range);
range_foreach(dynamic_payload_type_range, range_add_vp8_rtp_pt_callback);
}
diff --git a/epan/dissectors/packet-xml.c b/epan/dissectors/packet-xml.c
index a1876b91e4..bb7a5d7f46 100644
--- a/epan/dissectors/packet-xml.c
+++ b/epan/dissectors/packet-xml.c
@@ -83,8 +83,6 @@ static xml_ns_t *root_ns;
static gboolean pref_heuristic_unicode = FALSE;
-static range_t *xml_tcp_range = NULL;
-
#define XML_CDATA -1000
#define XML_SCOPED_NAME -1001
@@ -1461,10 +1459,6 @@ proto_register_xml(void)
xml_handle = register_dissector("xml", dissect_xml, xml_ns.hf_tag);
init_xml_parser();
-
- xml_tcp_range = range_empty();
-
-
}
static void
diff --git a/epan/packet.c b/epan/packet.c
index 56b64e62b8..174814ae72 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -1051,8 +1051,7 @@ void dissector_add_uint_range_with_preference(const char *abbrev, const char* ra
table value would default to 0.
Set up a preference value with that information
*/
- range = wmem_new(wmem_epan_scope(), range_t*);
- *range = range_empty();
+ range = wmem_new0(wmem_epan_scope(), range_t*);
/* If the dissector already has a preference module, use it */
module = prefs_find_module(proto_get_protocol_filter_name(proto_id));
@@ -1089,7 +1088,7 @@ void dissector_add_uint_range_with_preference(const char *abbrev, const char* ra
g_assert_not_reached();
}
- range_convert_str(range, range_str, max_value);
+ range_convert_str(wmem_epan_scope(), range, range_str, max_value);
prefs_register_decode_as_range_preference(module, abbrev, title, description, range, max_value);
}
diff --git a/epan/packet_range.c b/epan/packet_range.c
index c688967af3..a6797e3110 100644
--- a/epan/packet_range.c
+++ b/epan/packet_range.c
@@ -229,7 +229,7 @@ void packet_range_init(packet_range_t *range, capture_file *cf) {
memset(range, 0, sizeof(packet_range_t));
range->process = range_process_all;
- range->user_range = range_empty();
+ range->user_range = NULL;
range->cf = cf;
/* calculate all packet range counters */
@@ -343,11 +343,11 @@ void packet_range_convert_str(packet_range_t *range, const gchar *es)
convert_ret_t ret;
if (range->user_range != NULL)
- g_free(range->user_range);
+ wmem_free(NULL, range->user_range);
g_assert(range->cf != NULL);
- ret = range_convert_str(&new_range, es, range->cf->count);
+ ret = range_convert_str(NULL, &new_range, es, range->cf->count);
if (ret != CVT_NO_ERROR) {
/* range isn't valid */
range->user_range = NULL;
diff --git a/epan/prefs.c b/epan/prefs.c
index 9528d16bf8..aae35b9032 100644
--- a/epan/prefs.c
+++ b/epan/prefs.c
@@ -264,9 +264,9 @@ free_pref(gpointer data, gpointer user_data _U_)
break;
case PREF_RANGE:
case PREF_DECODE_AS_RANGE:
- g_free(*pref->varp.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
*pref->varp.range = NULL;
- g_free(pref->default_val.range);
+ wmem_free(wmem_epan_scope(), pref->default_val.range);
pref->default_val.range = NULL;
break;
case PREF_CUSTOM:
@@ -1180,9 +1180,9 @@ prefs_register_range_preference_common(module_t *module, const char *name,
* If the value is a null pointer, make it an empty range.
*/
if (*var == NULL)
- *var = range_empty();
+ *var = range_empty(wmem_epan_scope());
preference->varp.range = var;
- preference->default_val.range = range_copy(*var);
+ preference->default_val.range = range_copy(wmem_epan_scope(), *var);
preference->stashed_val.range = NULL;
}
@@ -1204,17 +1204,17 @@ prefs_set_range_value_work(pref_t *pref, const gchar *value,
{
range_t *newrange;
- if (range_convert_str_work(&newrange, value, pref->info.max_value,
+ if (range_convert_str_work(wmem_epan_scope(), &newrange, value, pref->info.max_value,
return_range_errors) != CVT_NO_ERROR) {
return FALSE; /* number was bad */
}
if (!ranges_are_equal(*pref->varp.range, newrange)) {
*changed = TRUE;
- g_free(*pref->varp.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
*pref->varp.range = newrange;
} else {
- g_free(newrange);
+ wmem_free(wmem_epan_scope(), newrange);
}
return TRUE;
}
@@ -3322,8 +3322,8 @@ reset_pref(pref_t *pref)
case PREF_RANGE:
case PREF_DECODE_AS_RANGE:
- g_free(*pref->varp.range);
- *pref->varp.range = range_copy(pref->default_val.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
+ *pref->varp.range = range_copy(wmem_epan_scope(), pref->default_val.range);
break;
case PREF_STATIC_TEXT:
@@ -3835,7 +3835,7 @@ range_t* prefs_get_range_value(const char *module_name, const char* pref_name)
pref_t *pref = prefs_find_preference(prefs_find_module(module_name), pref_name);
g_assert(pref != NULL);
- return range_copy(*pref->varp.range);
+ return *pref->varp.range;
}
/*
@@ -4942,13 +4942,13 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data _U_,
dissector_handle_t handle;
guint32 i, j;
- if (range_convert_str_work(&newrange, value, pref->info.max_value,
+ if (range_convert_str_work(wmem_epan_scope(), &newrange, value, pref->info.max_value,
return_range_errors) != CVT_NO_ERROR) {
return PREFS_SET_SYNTAX_ERR; /* number was bad */
}
if (!ranges_are_equal(*pref->varp.range, newrange)) {
- g_free(*pref->varp.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
*pref->varp.range = newrange;
containing_module->prefs_changed = TRUE;
@@ -4983,7 +4983,7 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data _U_,
}
}
} else {
- g_free(newrange);
+ wmem_free(wmem_epan_scope(), newrange);
}
break;
}
diff --git a/epan/prefs.h b/epan/prefs.h
index 93094c048c..d2b193a243 100644
--- a/epan/prefs.h
+++ b/epan/prefs.h
@@ -641,7 +641,7 @@ prefs_set_pref_e prefs_set_preference_obsolete(pref_t *pref);
WS_DLL_PUBLIC guint prefs_get_uint_value(const char *module_name, const char* pref_name);
/*
- * Get the current range_copy()ed range preference value (so it needs to be freed). This allows the
+ * Get the current range preference value (maintained by pref, so it doesn't need to be freed). This allows the
* preference structure to remain hidden from those that doesn't really need it.
*/
WS_DLL_PUBLIC range_t* prefs_get_range_value(const char *module_name, const char* pref_name);
diff --git a/epan/range.c b/epan/range.c
index 0bce5f9dea..5bcfc60c95 100644
--- a/epan/range.c
+++ b/epan/range.c
@@ -42,11 +42,11 @@
#define RANGE_HDR_SIZE (sizeof (range_t) - sizeof (range_admin_t))
/* Allocate an empty range. */
-range_t *range_empty(void)
+range_t *range_empty(wmem_allocator_t *scope)
{
range_t *range;
- range = (range_t *)g_malloc(RANGE_HDR_SIZE);
+ range = (range_t *)wmem_alloc(scope, RANGE_HDR_SIZE);
range->nranges = 0;
return range;
}
@@ -78,9 +78,9 @@ range_t *range_empty(void)
*/
convert_ret_t
-range_convert_str(range_t **rangep, const gchar *es, guint32 max_value)
+range_convert_str(wmem_allocator_t *scope, range_t **rangep, const gchar *es, guint32 max_value)
{
- return range_convert_str_work(rangep, es, max_value, TRUE);
+ return range_convert_str_work(scope, rangep, es, max_value, TRUE);
}
/* This version of range_convert_str() allows the caller to specify whether
@@ -89,7 +89,7 @@ range_convert_str(range_t **rangep, const gchar *es, guint32 max_value)
* XXX - both the function and the variable could probably use better names.
*/
convert_ret_t
-range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
+range_convert_str_work(wmem_allocator_t *scope, range_t **rangep, const gchar *es, guint32 max_value,
gboolean err_on_max)
{
@@ -106,7 +106,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
return CVT_SYNTAX_ERROR;
/* Allocate a range; this has room for one subrange. */
- range = (range_t *)g_malloc(RANGE_HDR_SIZE + sizeof (range_admin_t));
+ range = (range_t *)wmem_alloc(scope, RANGE_HDR_SIZE + sizeof (range_admin_t));
range->nranges = 0;
nranges = 1;
@@ -137,7 +137,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
nranges = 4;
else
nranges += 4;
- range = (range_t *)g_realloc(range, RANGE_HDR_SIZE +
+ range = (range_t *)wmem_realloc(scope, range, RANGE_HDR_SIZE +
nranges*sizeof (range_admin_t));
}
@@ -150,7 +150,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
val = strtoul(p, &endp, 0);
if (p == endp) {
/* That wasn't a valid number. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
if (errno == ERANGE || val > max_value) {
@@ -158,7 +158,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
* (e.g., except when reading from the preferences file).
*/
if (err_on_max) {
- g_free(range);
+ wmem_free(scope, range);
return CVT_NUMBER_TOO_BIG;
} else {
/* Silently use the range's maximum value */
@@ -173,7 +173,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
p++;
} else {
/* Neither empty nor a number. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
@@ -196,7 +196,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
val = strtoul(p, &endp, 0);
if (p == endp) {
/* That wasn't a valid number. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
if (errno == ERANGE || val > max_value) {
@@ -204,7 +204,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
* (e.g., except when reading from the preferences file).
*/
if (err_on_max) {
- g_free(range);
+ wmem_free(scope, range);
return CVT_NUMBER_TOO_BIG;
} else {
/* Silently use the range's maximum value */
@@ -219,7 +219,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
p++;
} else {
/* Neither empty nor a number. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
} else if (c == ',' || c == '\0') {
@@ -229,7 +229,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
range->ranges[range->nranges].high = range->ranges[range->nranges].low;
} else {
/* Invalid character. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
range->nranges++;
@@ -284,7 +284,7 @@ value_is_in_range(range_t *range, guint32 val)
* a range. This may extend an existing range or create a new one
*/
gboolean
-range_add_value(range_t **range, guint32 val)
+range_add_value(wmem_allocator_t *scope, range_t **range, guint32 val)
{
guint i;
@@ -308,7 +308,7 @@ range_add_value(range_t **range, guint32 val)
}
}
- (*range) = (range_t *)g_realloc((*range), RANGE_HDR_SIZE +
+ (*range) = (range_t *)wmem_realloc(scope, (*range), RANGE_HDR_SIZE +
((*range)->nranges+1)*sizeof (range_admin_t));
(*range)->nranges++;
(*range)->ranges[i].low = (*range)->ranges[i].high = val;
@@ -321,7 +321,7 @@ range_add_value(range_t **range, guint32 val)
* a range. This may delete an existing range
*/
gboolean
-range_remove_value(range_t **range, guint32 val)
+range_remove_value(wmem_allocator_t *scope, range_t **range, guint32 val)
{
guint i, j, new_j;
range_t *new_range;
@@ -336,7 +336,7 @@ range_remove_value(range_t **range, guint32 val)
if ((val == (*range)->ranges[i].low) && (val == (*range)->ranges[i].high))
{
/* Remove the range item entirely */
- new_range = (range_t*)g_malloc(RANGE_HDR_SIZE + ((*range)->nranges-1)*sizeof (range_admin_t));
+ new_range = (range_t*)wmem_alloc(scope, RANGE_HDR_SIZE + ((*range)->nranges-1)*sizeof (range_admin_t));
new_range->nranges = (*range)->nranges-1;
for (j=0, new_j = 0; j < (*range)->nranges; j++) {
@@ -349,7 +349,7 @@ range_remove_value(range_t **range, guint32 val)
new_j++;
}
- g_free(*range);
+ wmem_free(scope, *range);
*range = new_range;
return TRUE;
}
@@ -439,7 +439,7 @@ range_convert_range(wmem_allocator_t *scope, const range_t *range)
/* Create a copy of a range. */
range_t *
-range_copy(range_t *src)
+range_copy(wmem_allocator_t *scope, range_t *src)
{
range_t *dst;
size_t range_size;
@@ -448,8 +448,7 @@ range_copy(range_t *src)
return NULL;
range_size = RANGE_HDR_SIZE + src->nranges*sizeof (range_admin_t);
- dst = (range_t *)g_malloc(range_size);
- memcpy(dst, src, range_size);
+ dst = (range_t *)wmem_memdup(scope, src, range_size);
return dst;
}
diff --git a/epan/range.h b/epan/range.h
index b59119e3ae..c37586bd6e 100644
--- a/epan/range.h
+++ b/epan/range.h
@@ -64,7 +64,7 @@ typedef enum {
CVT_NUMBER_TOO_BIG
} convert_ret_t;
-WS_DLL_PUBLIC range_t *range_empty(void);
+WS_DLL_PUBLIC range_t *range_empty(wmem_allocator_t *scope);
/*** Converts a range string to a fast comparable array of ranges.
@@ -84,15 +84,16 @@ WS_DLL_PUBLIC range_t *range_empty(void);
* 20,30,40- 20, 30, and the range from 40 to the end
* 20-10,30-25 Range from 10 to 20, and from 25 to 30
* - All values
+ * @param scope memory scope for the range
* @param range the range
* @param es points to the string to be converted.
* @param max_value specifies the maximum value in a range.
* @return convert_ret_t
*/
-WS_DLL_PUBLIC convert_ret_t range_convert_str(range_t **range, const gchar *es,
+WS_DLL_PUBLIC convert_ret_t range_convert_str(wmem_allocator_t *scope, range_t **range, const gchar *es,
guint32 max_value);
-WS_DLL_PUBLIC convert_ret_t range_convert_str_work(range_t **range, const gchar *es,
+WS_DLL_PUBLIC convert_ret_t range_convert_str_work(wmem_allocator_t *scope, range_t **range, const gchar *es,
guint32 max_value, gboolean err_on_max);
/** This function returns TRUE if a given value is within one of the ranges
@@ -105,19 +106,21 @@ WS_DLL_PUBLIC gboolean value_is_in_range(range_t *range, guint32 val);
/** This function returns TRUE if val has successfully been added to
* a range. This may extend an existing range or create a new one
+ * @param scope memory scope of range (in case of reallocation)
* @param range to add value
* @param val value to add to range
* @return TRUE if the value is successsfully added to range
*/
-WS_DLL_PUBLIC gboolean range_add_value(range_t **range, guint32 val);
+WS_DLL_PUBLIC gboolean range_add_value(wmem_allocator_t *scope, range_t **range, guint32 val);
/** This function returns TRUE if val has successfully been removed from
* a range. This may remove an existing range.
+ * @param scope memory scope of range (in case of reallocation)
* @param range to remove value
* @param val value to remove within range
* @return TRUE if the value is successsfully removed to range
*/
-WS_DLL_PUBLIC gboolean range_remove_value(range_t **range, guint32 val);
+WS_DLL_PUBLIC gboolean range_remove_value(wmem_allocator_t *scope, range_t **range, guint32 val);
/** This function returns TRUE if the two given range_t's are equal.
* @param a first range
@@ -139,11 +142,12 @@ WS_DLL_PUBLIC void range_foreach(range_t *range, void (*callback)(guint32 val));
WS_DLL_PUBLIC char *range_convert_range(wmem_allocator_t *scope, const range_t *range);
/**
- * Create a copy of a range.
+ * Create a (wmem-alloc()ed) copy of a range
+ * @param scope memory scope for the copied range
* @param src the range to copy
* @return ep allocated copy of the range
*/
-WS_DLL_PUBLIC range_t *range_copy(range_t *src);
+WS_DLL_PUBLIC range_t *range_copy(wmem_allocator_t *scope, range_t *src);
#ifdef __cplusplus
}
diff --git a/epan/uat.c b/epan/uat.c
index 461dee63d5..b3b0f10e9a 100644
--- a/epan/uat.c
+++ b/epan/uat.c
@@ -611,7 +611,7 @@ gboolean uat_fld_chk_enum(void* u1 _U_, const char* strptr, guint len, const voi
gboolean uat_fld_chk_range(void* u1 _U_, const char* strptr, guint len, const void* v _U_, const void* u3, char** err) {
char* str = g_strndup(strptr,len);
range_t* r = NULL;
- convert_ret_t ret = range_convert_str(&r, str,GPOINTER_TO_UINT(u3));
+ convert_ret_t ret = range_convert_str(NULL, &r, str,GPOINTER_TO_UINT(u3));
gboolean ret_value = FALSE;
switch ( ret ) {
@@ -634,6 +634,7 @@ gboolean uat_fld_chk_range(void* u1 _U_, const char* strptr, guint len, const vo
}
g_free(str);
+ wmem_free(NULL, r);
return ret_value;
}
diff --git a/epan/uat.h b/epan/uat.h
index b9829cef73..94581488fc 100644
--- a/epan/uat.h
+++ b/epan/uat.h
@@ -599,7 +599,7 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
#define UAT_RANGE_CB_DEF(basename,field_name,rec_t) \
static void basename ## _ ## field_name ## _set_cb(void* rec, const char* buf, guint len, const void* UNUSED_PARAMETER(u1), const void* u2) {\
char* rng = g_strndup(buf,len);\
- range_convert_str(&(((rec_t*)rec)->field_name), rng,GPOINTER_TO_UINT(u2)); \
+ range_convert_str(NULL, &(((rec_t*)rec)->field_name), rng,GPOINTER_TO_UINT(u2)); \
g_free(rng); \
} \
static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr, unsigned* out_len, const void* UNUSED_PARAMETER(u1), const void* UNUSED_PARAMETER(u2)) {\
diff --git a/epan/wslua/wslua_dissector.c b/epan/wslua/wslua_dissector.c
index d6aac98add..b365c7e6d6 100644
--- a/epan/wslua/wslua_dissector.c
+++ b/epan/wslua/wslua_dissector.c
@@ -354,14 +354,14 @@ WSLUA_METHOD DissectorTable_add (lua_State *L) {
/* Not a number, try as range */
const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN);
range_t *range = NULL;
- if (range_convert_str(&range, pattern, G_MAXUINT32) == CVT_NO_ERROR) {
+ if (range_convert_str(NULL, &range, pattern, G_MAXUINT32) == CVT_NO_ERROR) {
dissector_add_uint_range(dt->name, range, handle);
} else {
- g_free (range);
+ wmem_free (NULL, range);
WSLUA_ARG_ERROR(DissectorTable_add,PATTERN,"invalid integer or range");
return 0;
}
- g_free (range);
+ wmem_free (NULL, range);
}
} else {
luaL_error(L,"Strange type %d for a DissectorTable",type);
@@ -417,15 +417,15 @@ WSLUA_METHOD DissectorTable_set (lua_State *L) {
/* Not a number, try as range */
const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_set_PATTERN);
range_t *range = NULL;
- if (range_convert_str(&range, pattern, G_MAXUINT32) == CVT_NO_ERROR) {
+ if (range_convert_str(NULL, &range, pattern, G_MAXUINT32) == CVT_NO_ERROR) {
dissector_delete_all(dt->name, handle);
dissector_add_uint_range(dt->name, range, handle);
} else {
- g_free (range);
+ wmem_free (NULL, range);
WSLUA_ARG_ERROR(DissectorTable_set,PATTERN,"invalid integer or range");
return 0;
}
- g_free (range);
+ wmem_free (NULL, range);
}
} else {
luaL_error(L,"Strange type %d for a DissectorTable",type);
@@ -472,14 +472,14 @@ WSLUA_METHOD DissectorTable_remove (lua_State *L) {
/* Not a number, try as range */
const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN);
range_t *range = NULL;
- if (range_convert_str(&range, pattern, G_MAXUINT32) == CVT_NO_ERROR)
+ if (range_convert_str(NULL, &range, pattern, G_MAXUINT32) == CVT_NO_ERROR)
dissector_delete_uint_range(dt->name, range, handle);
else {
- g_free (range);
+ wmem_free (NULL, range);
WSLUA_ARG_ERROR(DissectorTable_remove,PATTERN,"invalid integer or range");
return 0;
}
- g_free (range);
+ wmem_free (NULL, range);
}
}
diff --git a/epan/wslua/wslua_pref.c b/epan/wslua/wslua_pref.c
index 74b28f4797..51f195fff8 100644
--- a/epan/wslua/wslua_pref.c
+++ b/epan/wslua/wslua_pref.c
@@ -235,7 +235,7 @@ static range_t* get_range(lua_State *L, int idx_r, int idx_m)
static range_t *ret = NULL;
const gchar *pattern = luaL_checkstring(L, idx_r);
- switch (range_convert_str(&ret, pattern, wslua_togint32(L, idx_m))) {
+ switch (range_convert_str(wmem_epan_scope(), &ret, pattern, wslua_togint32(L, idx_m))) {
case CVT_NO_ERROR:
break;
case CVT_SYNTAX_ERROR:
diff --git a/plugins/stats_tree/pinfo_stats_tree.c b/plugins/stats_tree/pinfo_stats_tree.c
index c1ce818083..b8eb54b7c1 100644
--- a/plugins/stats_tree/pinfo_stats_tree.c
+++ b/plugins/stats_tree/pinfo_stats_tree.c
@@ -60,7 +60,7 @@ static void *uat_plen_record_copy_cb(void *n, const void *o, size_t siz _U_) {
uat_plen_record_t *rn = (uat_plen_record_t *)n;
if (r->packet_range)
- rn->packet_range = range_copy(r->packet_range);
+ rn->packet_range = range_copy(NULL, r->packet_range);
return n;
}
@@ -82,7 +82,7 @@ static void uat_plen_record_free_cb(void*r) {
uat_plen_record_t *record = (uat_plen_record_t*)r;
if (record->packet_range)
- g_free(record->packet_range);
+ wmem_free(NULL, record->packet_range);
}
static void uat_plen_record_post_update_cb(void) {
diff --git a/plugins/transum/packet-transum.c b/plugins/transum/packet-transum.c
index 08e5169471..18f2ab25e5 100644
--- a/plugins/transum/packet-transum.c
+++ b/plugins/transum/packet-transum.c
@@ -1128,21 +1128,8 @@ proto_register_transum(void)
preferences.capture_position = TRACE_CAP_CLIENT;
preferences.reassembly = TRUE;
- tcp_svc_port_range_values = (range_t *)g_malloc((sizeof(guint) + (4 * sizeof(range_admin_t))));
- tcp_svc_port_range_values->nranges = 4;
- tcp_svc_port_range_values->ranges[0].low = 25;
- tcp_svc_port_range_values->ranges[0].high = 25;
- tcp_svc_port_range_values->ranges[1].low = 80;
- tcp_svc_port_range_values->ranges[1].high = 80;
- tcp_svc_port_range_values->ranges[2].low = 443;
- tcp_svc_port_range_values->ranges[2].high = 443;
- tcp_svc_port_range_values->ranges[3].low = 1433;
- tcp_svc_port_range_values->ranges[3].high = 1433;
-
- udp_svc_port_range_values = (range_t *)g_malloc((sizeof(guint) + (1 * sizeof(range_admin_t))));
- udp_svc_port_range_values->nranges = 1;
- udp_svc_port_range_values->ranges[0].low = 137;
- udp_svc_port_range_values->ranges[0].high = 139;
+ range_convert_str(wmem_epan_scope(), &tcp_svc_port_range_values, "25, 80, 443, 1433", MAX_TCP_PORT);
+ range_convert_str(wmem_epan_scope(), &udp_svc_port_range_values, "137-139", MAX_UDP_PORT);
preferences.orphan_ka_discard = FALSE;
preferences.time_multiplier = RTE_TIME_SEC;
diff --git a/ui/gtk/decode_as_dlg.c b/ui/gtk/decode_as_dlg.c
index 1d9d14780e..4ef7220f90 100644
--- a/ui/gtk/decode_as_dlg.c
+++ b/ui/gtk/decode_as_dlg.c
@@ -708,7 +708,7 @@ decode_simple (GtkWidget *notebook_pg)
*pref_value->varp.uint = pref_value->default_val.uint;
break;
case PREF_DECODE_AS_RANGE:
- range_remove_value(pref_value->varp.range, GPOINTER_TO_UINT(value_ptr));
+ range_remove_value(wmem_epan_scope(), pref_value->varp.range, GPOINTER_TO_UINT(value_ptr));
break;
default:
break;
@@ -734,7 +734,7 @@ decode_simple (GtkWidget *notebook_pg)
*pref_value->varp.uint = GPOINTER_TO_UINT(value_ptr);
break;
case PREF_DECODE_AS_RANGE:
- range_add_value(pref_value->varp.range, GPOINTER_TO_UINT(value_ptr));
+ range_add_value(wmem_epan_scope(), pref_value->varp.range, GPOINTER_TO_UINT(value_ptr));
break;
default:
break;
diff --git a/ui/gtk/prefs_dlg.c b/ui/gtk/prefs_dlg.c
index 12ce7c3c37..ecd1b25427 100644
--- a/ui/gtk/prefs_dlg.c
+++ b/ui/gtk/prefs_dlg.c
@@ -999,11 +999,12 @@ pref_check(pref_t *pref, gpointer user_data)
if (strlen(str_val) != 0) {
range_t *newrange;
- if (range_convert_str(&newrange, str_val, pref->info.max_value) != CVT_NO_ERROR) {
+ if (range_convert_str(NULL, &newrange, str_val, pref->info.max_value) != CVT_NO_ERROR) {
*badpref = pref;
+ wmem_free(NULL, newrange);
return PREFS_SET_SYNTAX_ERR; /* range was bad */
}
- g_free(newrange);
+ wmem_free(NULL, newrange);
}
break;
@@ -1125,7 +1126,7 @@ pref_fetch(pref_t *pref, gpointer user_data)
str_val = gtk_entry_get_text(GTK_ENTRY(pref->control));
- if (range_convert_str_work(&newrange, str_val, pref->info.max_value, TRUE) != CVT_NO_ERROR) {
+ if (range_convert_str_work(wmem_epan_scope(), &newrange, str_val, pref->info.max_value, TRUE) != CVT_NO_ERROR) {
#if 0
return PREFS_SET_SYNTAX_ERR; /* range was bad */
#else
@@ -1136,7 +1137,7 @@ pref_fetch(pref_t *pref, gpointer user_data)
if (!ranges_are_equal(*pref->varp.range, newrange)) {
guint32 i, j;
- g_free(*pref->varp.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
*pref->varp.range = newrange;
module->prefs_changed = TRUE;
@@ -1170,7 +1171,7 @@ pref_fetch(pref_t *pref, gpointer user_data)
}
} else {
- g_free(newrange);
+ wmem_free(wmem_epan_scope(), newrange);
}
break;
diff --git a/ui/preference_utils.c b/ui/preference_utils.c
index 63fc756410..a9cfac2f05 100644
--- a/ui/preference_utils.c
+++ b/ui/preference_utils.c
@@ -70,8 +70,8 @@ pref_stash(pref_t *pref, gpointer unused _U_)
case PREF_DECODE_AS_RANGE:
case PREF_RANGE:
- g_free(pref->stashed_val.range);
- pref->stashed_val.range = range_copy(*pref->varp.range);
+ wmem_free(wmem_epan_scope(), pref->stashed_val.range);
+ pref->stashed_val.range = range_copy(wmem_epan_scope(), *pref->varp.range);
break;
case PREF_COLOR:
@@ -179,8 +179,8 @@ pref_unstash(pref_t *pref, gpointer unstash_data_p)
}
}
- g_free(*pref->varp.range);
- *pref->varp.range = range_copy(pref->stashed_val.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
+ *pref->varp.range = range_copy(wmem_epan_scope(), pref->stashed_val.range);
if (unstash_data->handle_decode_as) {
if ((sub_dissectors != NULL) && (handle != NULL)) {
@@ -204,8 +204,8 @@ pref_unstash(pref_t *pref, gpointer unstash_data_p)
case PREF_RANGE:
if (!ranges_are_equal(*pref->varp.range, pref->stashed_val.range)) {
unstash_data->module->prefs_changed = TRUE;
- g_free(*pref->varp.range);
- *pref->varp.range = range_copy(pref->stashed_val.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
+ *pref->varp.range = range_copy(wmem_epan_scope(), pref->stashed_val.range);
}
break;
@@ -254,8 +254,8 @@ reset_stashed_pref(pref_t *pref) {
case PREF_DECODE_AS_RANGE:
case PREF_RANGE:
- g_free(pref->stashed_val.range);
- pref->stashed_val.range = range_copy(pref->default_val.range);
+ wmem_free(wmem_epan_scope(), pref->stashed_val.range);
+ pref->stashed_val.range = range_copy(wmem_epan_scope(), pref->default_val.range);
break;
case PREF_COLOR:
@@ -300,7 +300,7 @@ pref_clean_stash(pref_t *pref, gpointer unused _U_)
case PREF_DECODE_AS_RANGE:
case PREF_RANGE:
if (pref->stashed_val.range != NULL) {
- g_free(pref->stashed_val.range);
+ wmem_free(wmem_epan_scope(), pref->stashed_val.range);
pref->stashed_val.range = NULL;
}
break;
diff --git a/ui/qt/decode_as_dialog.cpp b/ui/qt/decode_as_dialog.cpp
index 139914076b..c7d0c04935 100644
--- a/ui/qt/decode_as_dialog.cpp
+++ b/ui/qt/decode_as_dialog.cpp
@@ -642,7 +642,7 @@ void DecodeAsDialog::applyChanges()
*pref_value->varp.uint = pref_value->default_val.uint;
break;
case PREF_DECODE_AS_RANGE:
- range_remove_value(pref_value->varp.range, GPOINTER_TO_UINT(selector_value));
+ range_remove_value(wmem_epan_scope(), pref_value->varp.range, GPOINTER_TO_UINT(selector_value));
break;
default:
break;
@@ -670,7 +670,7 @@ void DecodeAsDialog::applyChanges()
*pref_value->varp.uint = GPOINTER_TO_UINT(selector_value);
break;
case PREF_DECODE_AS_RANGE:
- range_add_value(pref_value->varp.range, GPOINTER_TO_UINT(selector_value));
+ range_add_value(wmem_epan_scope(), pref_value->varp.range, GPOINTER_TO_UINT(selector_value));
break;
default:
break;
diff --git a/ui/qt/module_preferences_scroll_area.cpp b/ui/qt/module_preferences_scroll_area.cpp
index 74dc2bd40c..e11e84a0b9 100644
--- a/ui/qt/module_preferences_scroll_area.cpp
+++ b/ui/qt/module_preferences_scroll_area.cpp
@@ -458,10 +458,10 @@ void ModulePreferencesScrollArea::rangeSyntaxLineEditTextEdited(const QString &n
if (!pref) return;
range_t *newrange;
- convert_ret_t ret = range_convert_str(&newrange, new_str.toUtf8().constData(), pref->info.max_value);
+ convert_ret_t ret = range_convert_str(wmem_epan_scope(), &newrange, new_str.toUtf8().constData(), pref->info.max_value);
if (ret == CVT_NO_ERROR) {
- g_free(pref->stashed_val.range);
+ wmem_free(wmem_epan_scope(), pref->stashed_val.range);
pref->stashed_val.range = newrange;
if (new_str.isEmpty()) {
diff --git a/ui/qt/preference_editor_frame.cpp b/ui/qt/preference_editor_frame.cpp
index c9a2f5c52f..845920680e 100644
--- a/ui/qt/preference_editor_frame.cpp
+++ b/ui/qt/preference_editor_frame.cpp
@@ -108,8 +108,8 @@ void PreferenceEditorFrame::editPreference(preference *pref, pref_module *module
show = true;
break;
case PREF_RANGE:
- g_free(new_range_);
- new_range_ = range_copy(pref->stashed_val.range);
+ wmem_free(NULL, new_range_);
+ new_range_ = range_copy(NULL, pref->stashed_val.range);
connect(ui->preferenceLineEdit, SIGNAL(textEdited(QString)),
this, SLOT(rangeLineEditTextEdited(QString)));
show = true;
@@ -154,8 +154,8 @@ void PreferenceEditorFrame::rangeLineEditTextEdited(const QString &new_str)
{
range_t *new_range = NULL;
- convert_ret_t ret = range_convert_str(&new_range, new_str.toUtf8().constData(), pref_->info.max_value);
- g_free(new_range_);
+ convert_ret_t ret = range_convert_str(NULL, &new_range, new_str.toUtf8().constData(), pref_->info.max_value);
+ wmem_free(NULL, new_range_);
new_range_ = new_range;
if (ret == CVT_NO_ERROR) {
@@ -204,8 +204,8 @@ void PreferenceEditorFrame::on_buttonBox_accepted()
break;
case PREF_RANGE:
if (!ranges_are_equal(pref_->stashed_val.range, new_range_)) {
- g_free(pref_->stashed_val.range);
- pref_->stashed_val.range = range_copy(new_range_);
+ wmem_free(wmem_epan_scope(), pref_->stashed_val.range);
+ pref_->stashed_val.range = range_copy(wmem_epan_scope(), new_range_);
apply = true;
}
break;
@@ -245,7 +245,7 @@ void PreferenceEditorFrame::on_buttonBox_rejected()
{
pref_ = NULL;
module_ = NULL;
- g_free(new_range_);
+ wmem_free(NULL, new_range_);
new_range_ = NULL;
ui->preferenceLineEdit->clear();
animatedHide();
diff --git a/ui/qt/preferences_dialog.cpp b/ui/qt/preferences_dialog.cpp
index 34a7ade73a..f8f521d4cd 100644
--- a/ui/qt/preferences_dialog.cpp
+++ b/ui/qt/preferences_dialog.cpp
@@ -895,14 +895,14 @@ void PreferencesDialog::rangePrefTextChanged(const QString &text)
syntax_edit->setSyntaxState(SyntaxLineEdit::Empty);
} else {
range_t *newrange;
- convert_ret_t ret = range_convert_str(&newrange, text.toUtf8().constData(), pref->info.max_value);
+ convert_ret_t ret = range_convert_str(NULL, &newrange, text.toUtf8().constData(), pref->info.max_value);
if (ret == CVT_NO_ERROR) {
syntax_edit->setSyntaxState(SyntaxLineEdit::Valid);
- g_free(newrange);
} else {
syntax_edit->setSyntaxState(SyntaxLineEdit::Invalid);
}
+ wmem_free(NULL, newrange);
}
}
@@ -916,10 +916,10 @@ void PreferencesDialog::rangePrefEditingFinished()
if (!pref) return;
range_t *newrange;
- convert_ret_t ret = range_convert_str(&newrange, syntax_edit->text().toUtf8().constData(), pref->info.max_value);
+ convert_ret_t ret = range_convert_str(wmem_epan_scope(), &newrange, syntax_edit->text().toUtf8().constData(), pref->info.max_value);
if (ret == CVT_NO_ERROR) {
- g_free(pref->stashed_val.range);
+ wmem_free(wmem_epan_scope(), pref->stashed_val.range);
pref->stashed_val.range = newrange;
}
pd_ui_->advancedTree->removeItemWidget(adv_ti, 3);