diff options
author | Evan Huus <eapache@gmail.com> | 2021-09-07 14:33:39 -0400 |
---|---|---|
committer | Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2021-09-08 01:37:07 +0000 |
commit | 6caf24e96612b738c7320876c91c1a6c2ef51c1a (patch) | |
tree | e65411f9ad9f22ec57a9f41d0da7a62a9311cfdc /epan/dissectors/asn1/snmp | |
parent | 530ee0b365cbe8161dcea2904bc6420834dba155 (diff) |
tvblist: explicitly scope memory
Allocate the root node in the same pool as the list itself, and make
that pool explicit so we can pass the pinfo scope instead of using the
global packet pool.
Diffstat (limited to 'epan/dissectors/asn1/snmp')
-rw-r--r-- | epan/dissectors/asn1/snmp/packet-snmp-template.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c index d0df6b3c0a..dd47331c85 100644 --- a/epan/dissectors/asn1/snmp/packet-snmp-template.c +++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c @@ -184,7 +184,7 @@ tvbuff_t *value_tvb=NULL; static dissector_handle_t snmp_handle; static dissector_handle_t data_handle; -static next_tvb_list_t var_list; +static next_tvb_list_t *var_list; static int hf_snmp_response_in = -1; static int hf_snmp_response_to = -1; @@ -1134,7 +1134,7 @@ already_added: if (value_len > 0 && oid_string) { tvbuff_t* sub_tvb = tvb_new_subset_length(tvb, value_offset, value_len); - next_tvb_add_string(&var_list, sub_tvb, (snmp_var_in_tree) ? pt_value : NULL, value_sub_dissectors_table, oid_string); + next_tvb_add_string(var_list, sub_tvb, (snmp_var_in_tree) ? pt_value : NULL, value_sub_dissectors_table, oid_string); } @@ -2071,7 +2071,7 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo, } } - next_tvb_init(&var_list); + var_list = next_tvb_list_new(pinfo->pool); col_set_str(pinfo->cinfo, COL_PROTOCOL, proto_get_protocol_short_name(find_protocol_by_id(proto))); @@ -2108,7 +2108,7 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo, next_tvb = tvb_new_subset_remaining(tvb, offset); call_dissector(data_handle, next_tvb, pinfo, tree); } else { - next_tvb_call(&var_list, pinfo, tree, NULL, data_handle); + next_tvb_call(var_list, pinfo, tree, NULL, data_handle); } return offset; @@ -2210,7 +2210,7 @@ dissect_smux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) proto_tree *smux_tree = NULL; proto_item *item = NULL; - next_tvb_init(&var_list); + var_list = next_tvb_list_new(pinfo->pool); col_set_str(pinfo->cinfo, COL_PROTOCOL, "SMUX"); |