From eda26f9e5f07b0f7c6bf018fd8b7b81fe4c06af8 Mon Sep 17 00:00:00 2001 From: Evan Huus Date: Tue, 17 Aug 2021 16:26:50 -0400 Subject: [PATCH] wmem: convert more asn1 dissectors to pinfo->pool We prefer pinfo->pool over the global wmem_packet_scope() now. Convert a few more asn1 dissectors. After this commit, just three asn1 dissectors remain. --- epan/dissectors/asn1/h225/h225.cnf | 8 ++--- epan/dissectors/asn1/h245/h245.cnf | 22 +++++++------- .../asn1/h323/packet-h323-template.c | 8 ++--- .../asn1/h323/packet-h323-template.h | 4 +-- .../asn1/kerberos/packet-kerberos-template.c | 16 +++++----- epan/dissectors/asn1/nbap/nbap.cnf | 10 +++---- .../asn1/nbap/packet-nbap-template.c | 20 ++++++------- .../asn1/pkcs12/packet-pkcs12-template.c | 12 ++++---- epan/dissectors/asn1/pkcs12/pkcs12.cnf | 10 +++---- epan/dissectors/packet-h225.c | 8 ++--- epan/dissectors/packet-h245.c | 22 +++++++------- epan/dissectors/packet-h323.c | 8 ++--- epan/dissectors/packet-h323.h | 4 +-- epan/dissectors/packet-kerberos.c | 16 +++++----- epan/dissectors/packet-nbap.c | 30 +++++++++---------- epan/dissectors/packet-pkcs12.c | 22 +++++++------- 16 files changed, 110 insertions(+), 110 deletions(-) diff --git a/epan/dissectors/asn1/h225/h225.cnf b/epan/dissectors/asn1/h225/h225.cnf index 6b0a3ef578..024975a3b6 100644 --- a/epan/dissectors/asn1/h225/h225.cnf +++ b/epan/dissectors/asn1/h225/h225.cnf @@ -853,7 +853,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode /* check if not inherited from FeatureDescriptor */ gefx = gef_ctx_get(actx->private_data); if (!gefx) { - gefx = gef_ctx_alloc(NULL, "GenericData"); + gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericData"); actx->private_data = gefx; } #.FN_FTR @@ -864,7 +864,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, NULL); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL); #.FN_FTR actx->private_data = parent_gefx; #.END @@ -872,7 +872,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode #---------------------------------------------------------------------------------------- #.FN_HDR FeatureDescriptor void *priv_data = actx->private_data; - actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "FeatureDescriptor"); #.FN_FTR actx->private_data = priv_data; #.END @@ -882,7 +882,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode gef_ctx_t *gefx; proto_item* ti; #.FN_FTR - gef_ctx_update_key(gef_ctx_get(actx->private_data)); + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); gefx = gef_ctx_get(actx->private_data); if (gefx) { ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key); diff --git a/epan/dissectors/asn1/h245/h245.cnf b/epan/dissectors/asn1/h245/h245.cnf index d45b9f8248..e6bd071271 100644 --- a/epan/dissectors/asn1/h245/h245.cnf +++ b/epan/dissectors/asn1/h245/h245.cnf @@ -571,7 +571,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format /* check if not inherited from GenericInformation */ gefx = gef_ctx_get(actx->private_data); if (!gefx) { - gefx = gef_ctx_alloc(NULL, "GenericMessage"); + gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericMessage"); actx->private_data = gefx; } #.FN_FTR @@ -595,7 +595,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format %(DEFAULT_BODY)s if (gefx) { gefx->subid = wmem_strdup_printf(actx->pinfo->pool, "%%u", subMessageIdentifier); - gef_ctx_update_key(gef_ctx_get(actx->private_data)); + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); } if (hf_index == hf_h245_subMessageIdentifier_standard) { @@ -608,7 +608,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, NULL); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL); #.FN_FTR actx->private_data = parent_gefx; #.END @@ -616,7 +616,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format #---------------------------------------------------------------------------------------- #.FN_HDR GenericInformation void *priv_data = actx->private_data; - actx->private_data = gef_ctx_alloc(NULL, "GenericInformation"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericInformation"); #.FN_FTR actx->private_data = priv_data; #.END @@ -624,7 +624,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format #--- GenericCapability ------------------------------------------------------------------ #.FN_HDR GenericCapability void *priv_data = actx->private_data; - actx->private_data = gef_ctx_alloc(NULL, "GenericCapability"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericCapability"); #.FN_FTR actx->private_data = priv_data; #.END @@ -633,7 +633,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, "collapsing"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "collapsing"); #.FN_FTR actx->private_data = parent_gefx; #.END @@ -642,7 +642,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, "nonCollapsing"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "nonCollapsing"); #.FN_FTR actx->private_data = parent_gefx; #.END @@ -654,7 +654,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format proto_item* ti; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, "nonCollapsingRaw"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "nonCollapsingRaw"); %(DEFAULT_BODY)s gefx = gef_ctx_get(actx->private_data); if (gefx) { @@ -668,7 +668,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format #--- EncryptionSync --------------------------------------------------------------------- #.FN_HDR EncryptionSync void *priv_data = actx->private_data; - actx->private_data = gef_ctx_alloc(NULL, "EncryptionSync"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "EncryptionSync"); #.FN_FTR actx->private_data = priv_data; #.END @@ -679,7 +679,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format proto_item* ti; #.FN_FTR - gef_ctx_update_key(gef_ctx_get(actx->private_data)); + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); gefx = gef_ctx_get(actx->private_data); if (gefx) { ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key); @@ -710,7 +710,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format gef_ctx_t *gefx; proto_item* ti; #.FN_FTR - gef_ctx_update_key(gef_ctx_get(actx->private_data)); + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); gefx = gef_ctx_get(actx->private_data); if (gefx) { ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key); diff --git a/epan/dissectors/asn1/h323/packet-h323-template.c b/epan/dissectors/asn1/h323/packet-h323-template.c index 47da3cae8d..8adbaa7cf1 100644 --- a/epan/dissectors/asn1/h323/packet-h323-template.c +++ b/epan/dissectors/asn1/h323/packet-h323-template.c @@ -27,10 +27,10 @@ void proto_register_h323(void); void proto_reg_handoff_h323(void); /* Generic Extensible Framework */ -gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type) { +gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const gchar *type) { gef_ctx_t *gefx; - gefx = wmem_new0(wmem_packet_scope(), gef_ctx_t); + gefx = wmem_new0(pool, gef_ctx_t); gefx->signature = GEF_CTX_SIGNATURE; gefx->parent = parent; gefx->type = type; @@ -57,12 +57,12 @@ gef_ctx_t* gef_ctx_get(void *ptr) { return gefx; } -void gef_ctx_update_key(gef_ctx_t *gefx) { +void gef_ctx_update_key(wmem_allocator_t *pool, gef_ctx_t *gefx) { const gchar *parent_key; if (!gefx) return; parent_key = (gefx->parent) ? gefx->parent->key : NULL; - gefx->key = wmem_strdup_printf(wmem_packet_scope(), + gefx->key = wmem_strdup_printf(pool, "%s%s" /* parent prefix */ "%s%s%s" /* type, id */ "%s%s" /* subid */, diff --git a/epan/dissectors/asn1/h323/packet-h323-template.h b/epan/dissectors/asn1/h323/packet-h323-template.h index 24c6960e96..0467a4a0a7 100644 --- a/epan/dissectors/asn1/h323/packet-h323-template.h +++ b/epan/dissectors/asn1/h323/packet-h323-template.h @@ -43,10 +43,10 @@ typedef struct _gef_ctx_t { const gchar *key; } gef_ctx_t; -extern gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type); +extern gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const gchar *type); extern gboolean gef_ctx_check_signature(gef_ctx_t *gefx); extern gef_ctx_t* gef_ctx_get(void *ptr); -extern void gef_ctx_update_key(gef_ctx_t *gefx); +extern void gef_ctx_update_key(wmem_allocator_t *pool, gef_ctx_t *gefx); #endif /* PACKET_H323_H */ diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c index 89a3585965..66a3f8400d 100644 --- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c +++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c @@ -353,18 +353,18 @@ call_kerberos_callbacks(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int } static kerberos_private_data_t* -kerberos_new_private_data(void) +kerberos_new_private_data(packet_info *pinfo) { kerberos_private_data_t *p; - p = wmem_new0(wmem_packet_scope(), kerberos_private_data_t); + p = wmem_new0(pinfo->pool, kerberos_private_data_t); if (p == NULL) { return NULL; } - p->decryption_keys = wmem_list_new(wmem_packet_scope()); - p->learnt_keys = wmem_list_new(wmem_packet_scope()); - p->missing_keys = wmem_list_new(wmem_packet_scope()); + p->decryption_keys = wmem_list_new(pinfo->pool); + p->learnt_keys = wmem_list_new(pinfo->pool); + p->missing_keys = wmem_list_new(pinfo->pool); return p; } @@ -373,7 +373,7 @@ static kerberos_private_data_t* kerberos_get_private_data(asn1_ctx_t *actx) { if (!actx->private_data) { - actx->private_data = kerberos_new_private_data(); + actx->private_data = kerberos_new_private_data(actx->pinfo); } return (kerberos_private_data_t *)(actx->private_data); } @@ -1549,7 +1549,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo, int keytype, int *datalen) { - kerberos_private_data_t *zero_private = kerberos_new_private_data(); + kerberos_private_data_t *zero_private = kerberos_new_private_data(pinfo); return decrypt_krb5_data_private(tree, pinfo, zero_private, usage, cryptotvb, keytype, datalen); @@ -1699,7 +1699,7 @@ decrypt_krb5_krb_cfx_dce(proto_tree *tree, tvbuff_t *checksum_tvb) { struct decrypt_krb5_krb_cfx_dce_state state; - kerberos_private_data_t *zero_private = kerberos_new_private_data(); + kerberos_private_data_t *zero_private = kerberos_new_private_data(pinfo); tvbuff_t *gssapi_decrypted_tvb = NULL; krb5_error_code ret; diff --git a/epan/dissectors/asn1/nbap/nbap.cnf b/epan/dissectors/asn1/nbap/nbap.cnf index 65f1162c83..96b71b2d27 100644 --- a/epan/dissectors/asn1/nbap/nbap.cnf +++ b/epan/dissectors/asn1/nbap/nbap.cnf @@ -197,7 +197,7 @@ nbap_private_data->binding_id_port = 0; set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); - request_conv = find_setup_conv(nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id); + request_conv = find_setup_conv(actx->pinfo, nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id); if(request_conv == NULL){ return offset; @@ -641,7 +641,7 @@ actx->pinfo->link_dir=P2P_DIR_UL; default: /* First, subsequent or last */ if(preferences_ib_sg_data_encoding == IB_SG_DATA_ENC_VAR_1) { is_short = ( segment_type == 1 || segment_type == 4 ); /* first-short or last-short */ - nbap_ib_segment = nbap_parse_ib_sg_data_var1(parameter_tvb, is_short); + nbap_ib_segment = nbap_parse_ib_sg_data_var1(actx->pinfo, parameter_tvb, is_short); if (nbap_ib_segment == NULL ) { /* failed to parse */ return offset; } @@ -1065,7 +1065,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); /* Add Setup Conversation to list, we need it in response msg */ - add_setup_conv(nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); + add_setup_conv(actx->pinfo, nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); } #.FN_BODY PICH-Mode VAL_PTR = &PICH_Mode @@ -1194,7 +1194,7 @@ nbap_private_data->num_items = 1; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); /* Add Setup Conversation to list, we need it in response msg */ - add_setup_conv(nbap_private_data->transaction_id, nbap_private_data->dd_mode, common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); + add_setup_conv(actx->pinfo, nbap_private_data->transaction_id, nbap_private_data->dd_mode, common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); nbap_debug("Frame %%u PCH-ParametersItem-CTCH-SetupRqstFDD End", actx->pinfo->num); } @@ -1296,7 +1296,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); /* Add Setup Conversation to list, we need it in response msg */ - add_setup_conv(nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); + add_setup_conv(actx->pinfo, nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); } #.FN_HDR DCH-Specific-FDD-InformationList diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.c b/epan/dissectors/asn1/nbap/packet-nbap-template.c index 662122489a..f744fcc3cf 100644 --- a/epan/dissectors/asn1/nbap/packet-nbap-template.c +++ b/epan/dissectors/asn1/nbap/packet-nbap-template.c @@ -182,7 +182,7 @@ typedef struct nbap_ib_segment_t { guint8* data; } nbap_ib_segment_t; -static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(tvbuff_t *tvb,gboolean is_short) +static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(packet_info *pinfo, tvbuff_t *tvb,gboolean is_short) { guint8 bit_length; guint8* data; @@ -192,13 +192,13 @@ static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(tvbuff_t *tvb,gboolean is_s } if (is_short) { bit_length = tvb_get_guint8(tvb,0) + 1; - data = (guint8*)tvb_memdup(wmem_packet_scope(),tvb,1,(bit_length+7)/8); + data = (guint8*)tvb_memdup(pinfo->pool,tvb,1,(bit_length+7)/8); } else { bit_length = NBAP_MAX_IB_SEGMENT_LENGTH; - data = (guint8*)tvb_memdup(wmem_packet_scope(),tvb,0,(bit_length+7)/8); + data = (guint8*)tvb_memdup(pinfo->pool,tvb,0,(bit_length+7)/8); } - output = wmem_new(wmem_packet_scope(), nbap_ib_segment_t); + output = wmem_new(pinfo->pool, nbap_ib_segment_t); output->bit_length = bit_length; output->data = data; return output; @@ -424,9 +424,9 @@ static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, pro static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); static guint32 calculate_setup_conv_key(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id); -static void add_setup_conv(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number, +static void add_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number, const address *addr, const guint32 port, umts_fp_conversation_info_t * umts_fp_conversation_info, conversation_t *conv); -static nbap_setup_conv_t* find_setup_conv(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id); +static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id); static void delete_setup_conv(nbap_setup_conv_t *conv); /*Easy way to add hsdhsch binds for corner cases*/ @@ -545,14 +545,14 @@ static guint32 calculate_setup_conv_key(const guint32 transaction_id, const guin return key; } -static void add_setup_conv(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number, +static void add_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number, const address *addr, const guint32 port, umts_fp_conversation_info_t * umts_fp_conversation_info, conversation_t *conv) { nbap_setup_conv_t *new_conv = NULL; guint32 key; nbap_debug("Creating new setup conv\t TransactionID: %u\tddMode: %u\tChannelID: %u\t %s:%u", - transaction_id, dd_mode, channel_id, address_to_str(wmem_packet_scope(), addr), port); + transaction_id, dd_mode, channel_id, address_to_str(pinfo->pool, addr), port); new_conv = wmem_new0(wmem_file_scope(), nbap_setup_conv_t); @@ -571,7 +571,7 @@ static void add_setup_conv(const guint32 transaction_id, const guint32 dd_mode, wmem_map_insert(nbap_setup_conv_table, GUINT_TO_POINTER(key), new_conv); } -static nbap_setup_conv_t* find_setup_conv(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id) +static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id) { nbap_setup_conv_t *conv; guint32 key; @@ -585,7 +585,7 @@ static nbap_setup_conv_t* find_setup_conv(const guint32 transaction_id, const gu nbap_debug("\tDidn't find Setup Conversation match"); }else{ nbap_debug("\tFOUND Setup Conversation match\t TransactionID: %u\t ddMode: %u\t ChannelID: %u\t %s:%u", - conv->transaction_id, conv->dd_mode, conv->channel_id, address_to_str(wmem_packet_scope(), &(conv->addr)), conv->port); + conv->transaction_id, conv->dd_mode, conv->channel_id, address_to_str(pinfo->pool, &(conv->addr)), conv->port); } return conv; diff --git a/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c index 4e9617cc9f..cde3e2773d 100644 --- a/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c +++ b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c @@ -65,16 +65,16 @@ static int dissect_PrivateKeyInfo_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_t /* Initialize the subtree pointers */ #include "packet-pkcs12-ett.c" -static void append_oid(proto_tree *tree, const char *oid) +static void append_oid(wmem_allocator_t *pool, proto_tree *tree, const char *oid) { const char *name = NULL; - name = oid_resolved_from_string(wmem_packet_scope(), oid); + name = oid_resolved_from_string(pool, oid); proto_item_append_text(tree, " (%s)", name ? name : oid); } static int -generate_key_or_iv(unsigned int id, tvbuff_t *salt_tvb, unsigned int iter, +generate_key_or_iv(packet_info *pinfo, unsigned int id, tvbuff_t *salt_tvb, unsigned int iter, const char *pw, unsigned int req_keylen, char * keybuf) { int rc; @@ -92,7 +92,7 @@ generate_key_or_iv(unsigned int id, tvbuff_t *salt_tvb, unsigned int iter, cur_keylen = 0; salt_size = tvb_captured_length(salt_tvb); - salt_p = (char *)tvb_memdup(wmem_packet_scope(), salt_tvb, 0, salt_size); + salt_p = (char *)tvb_memdup(pinfo->pool, salt_tvb, 0, salt_size); if (pw == NULL) pwlen = 0; @@ -259,14 +259,14 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry /* allocate buffers */ key = (char *)wmem_alloc(pinfo->pool, keylen); - if(!generate_key_or_iv(1 /*LEY */, salt, iteration_count, password, keylen, key)) + if(!generate_key_or_iv(pinfo, 1 /*LEY */, salt, iteration_count, password, keylen, key)) return FALSE; if(ivlen) { iv = (char *)wmem_alloc(pinfo->pool, ivlen); - if(!generate_key_or_iv(2 /* IV */, salt, iteration_count, password, ivlen, iv)) + if(!generate_key_or_iv(pinfo, 2 /* IV */, salt, iteration_count, password, ivlen, iv)) return FALSE; } diff --git a/epan/dissectors/asn1/pkcs12/pkcs12.cnf b/epan/dissectors/asn1/pkcs12/pkcs12.cnf index 06a50f12b6..aa078a229c 100644 --- a/epan/dissectors/asn1/pkcs12/pkcs12.cnf +++ b/epan/dissectors/asn1/pkcs12/pkcs12.cnf @@ -81,27 +81,27 @@ PrivateKeyInfo #.FN_PARS SafeBag/bagId FN_VARIANT = _str VAL_PTR = &object_identifier_id #.FN_FTR SafeBag/bagId - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); #.END #.FN_PARS CertBag/certId FN_VARIANT = _str VAL_PTR = &object_identifier_id #.FN_FTR CertBag/certId - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); #.END #.FN_PARS CRLBag/crlId FN_VARIANT = _str VAL_PTR = &object_identifier_id #.FN_FTR CRLBag/crlId - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); #.END #.FN_PARS SecretBag/secretTypeId FN_VARIANT = _str VAL_PTR = &object_identifier_id #.FN_FTR SecretBag/secretTypeId - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); #.END #.FN_PARS PKCS12Attribute/attrId FN_VARIANT = _str VAL_PTR = &object_identifier_id #.FN_FTR PKCS12Attribute/attrId - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); #.END #.FN_BODY SafeBag/bagValue diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c index aa9c4772ee..4f3558f48c 100644 --- a/epan/dissectors/packet-h225.c +++ b/epan/dissectors/packet-h225.c @@ -3885,7 +3885,7 @@ dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac NULL); #line 885 "./asn1/h225/h225.cnf" - gef_ctx_update_key(gef_ctx_get(actx->private_data)); + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); gefx = gef_ctx_get(actx->private_data); if (gefx) { ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key); @@ -4023,7 +4023,7 @@ dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, NULL); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_EnumeratedParameter, EnumeratedParameter_sequence); @@ -4050,7 +4050,7 @@ dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ /* check if not inherited from FeatureDescriptor */ gefx = gef_ctx_get(actx->private_data); if (!gefx) { - gefx = gef_ctx_alloc(NULL, "GenericData"); + gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericData"); actx->private_data = gefx; } @@ -4098,7 +4098,7 @@ static int dissect_h225_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 874 "./asn1/h225/h225.cnf" void *priv_data = actx->private_data; - actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "FeatureDescriptor"); offset = dissect_h225_GenericData(tvb, offset, actx, tree, hf_index); diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c index 8101fd85d9..ab91668769 100644 --- a/epan/dissectors/packet-h245.c +++ b/epan/dissectors/packet-h245.c @@ -3603,7 +3603,7 @@ dissect_h245_CapabilityIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t NULL); #line 682 "./asn1/h245/h245.cnf" - gef_ctx_update_key(gef_ctx_get(actx->private_data)); + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); gefx = gef_ctx_get(actx->private_data); if (gefx) { ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key); @@ -3671,7 +3671,7 @@ dissect_h245_ParameterIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * NULL); #line 713 "./asn1/h245/h245.cnf" - gef_ctx_update_key(gef_ctx_get(actx->private_data)); + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); gefx = gef_ctx_get(actx->private_data); if (gefx) { ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key); @@ -3935,7 +3935,7 @@ dissect_h245_T_collapsing_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, "collapsing"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "collapsing"); offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index); @@ -3966,7 +3966,7 @@ dissect_h245_T_nonCollapsing_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, "nonCollapsing"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "nonCollapsing"); offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index); @@ -4000,7 +4000,7 @@ dissect_h245_T_nonCollapsingRaw(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a proto_item* ti; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, "nonCollapsingRaw"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "nonCollapsingRaw"); offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, &value_tvb); @@ -4031,7 +4031,7 @@ static int dissect_h245_GenericCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 626 "./asn1/h245/h245.cnf" void *priv_data = actx->private_data; - actx->private_data = gef_ctx_alloc(NULL, "GenericCapability"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericCapability"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_GenericCapability, GenericCapability_sequence); @@ -6654,7 +6654,7 @@ dissect_h245_T_subMessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ if (gefx) { gefx->subid = wmem_strdup_printf(actx->pinfo->pool, "%u", subMessageIdentifier); - gef_ctx_update_key(gef_ctx_get(actx->private_data)); + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); } if (hf_index == hf_h245_subMessageIdentifier_standard) { @@ -6674,7 +6674,7 @@ dissect_h245_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); - actx->private_data = gef_ctx_alloc(parent_gefx, NULL); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL); offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index); @@ -6714,7 +6714,7 @@ dissect_h245_GenericMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx /* check if not inherited from GenericInformation */ gefx = gef_ctx_get(actx->private_data); if (!gefx) { - gefx = gef_ctx_alloc(NULL, "GenericMessage"); + gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericMessage"); actx->private_data = gefx; } @@ -6733,7 +6733,7 @@ static int dissect_h245_GenericInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 618 "./asn1/h245/h245.cnf" void *priv_data = actx->private_data; - actx->private_data = gef_ctx_alloc(NULL, "GenericInformation"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericInformation"); offset = dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_index); @@ -8707,7 +8707,7 @@ static int dissect_h245_EncryptionSync(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 670 "./asn1/h245/h245.cnf" void *priv_data = actx->private_data; - actx->private_data = gef_ctx_alloc(NULL, "EncryptionSync"); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "EncryptionSync"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_EncryptionSync, EncryptionSync_sequence); diff --git a/epan/dissectors/packet-h323.c b/epan/dissectors/packet-h323.c index 6bbfa088b6..2525fa0638 100644 --- a/epan/dissectors/packet-h323.c +++ b/epan/dissectors/packet-h323.c @@ -35,10 +35,10 @@ void proto_register_h323(void); void proto_reg_handoff_h323(void); /* Generic Extensible Framework */ -gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type) { +gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const gchar *type) { gef_ctx_t *gefx; - gefx = wmem_new0(wmem_packet_scope(), gef_ctx_t); + gefx = wmem_new0(pool, gef_ctx_t); gefx->signature = GEF_CTX_SIGNATURE; gefx->parent = parent; gefx->type = type; @@ -65,12 +65,12 @@ gef_ctx_t* gef_ctx_get(void *ptr) { return gefx; } -void gef_ctx_update_key(gef_ctx_t *gefx) { +void gef_ctx_update_key(wmem_allocator_t *pool, gef_ctx_t *gefx) { const gchar *parent_key; if (!gefx) return; parent_key = (gefx->parent) ? gefx->parent->key : NULL; - gefx->key = wmem_strdup_printf(wmem_packet_scope(), + gefx->key = wmem_strdup_printf(pool, "%s%s" /* parent prefix */ "%s%s%s" /* type, id */ "%s%s" /* subid */, diff --git a/epan/dissectors/packet-h323.h b/epan/dissectors/packet-h323.h index 5a539d67f4..b7516da700 100644 --- a/epan/dissectors/packet-h323.h +++ b/epan/dissectors/packet-h323.h @@ -51,10 +51,10 @@ typedef struct _gef_ctx_t { const gchar *key; } gef_ctx_t; -extern gef_ctx_t* gef_ctx_alloc(gef_ctx_t *parent, const gchar *type); +extern gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const gchar *type); extern gboolean gef_ctx_check_signature(gef_ctx_t *gefx); extern gef_ctx_t* gef_ctx_get(void *ptr); -extern void gef_ctx_update_key(gef_ctx_t *gefx); +extern void gef_ctx_update_key(wmem_allocator_t *pool, gef_ctx_t *gefx); #endif /* PACKET_H323_H */ diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c index 678341c370..ec2ff89ba4 100644 --- a/epan/dissectors/packet-kerberos.c +++ b/epan/dissectors/packet-kerberos.c @@ -802,18 +802,18 @@ call_kerberos_callbacks(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int } static kerberos_private_data_t* -kerberos_new_private_data(void) +kerberos_new_private_data(packet_info *pinfo) { kerberos_private_data_t *p; - p = wmem_new0(wmem_packet_scope(), kerberos_private_data_t); + p = wmem_new0(pinfo->pool, kerberos_private_data_t); if (p == NULL) { return NULL; } - p->decryption_keys = wmem_list_new(wmem_packet_scope()); - p->learnt_keys = wmem_list_new(wmem_packet_scope()); - p->missing_keys = wmem_list_new(wmem_packet_scope()); + p->decryption_keys = wmem_list_new(pinfo->pool); + p->learnt_keys = wmem_list_new(pinfo->pool); + p->missing_keys = wmem_list_new(pinfo->pool); return p; } @@ -822,7 +822,7 @@ static kerberos_private_data_t* kerberos_get_private_data(asn1_ctx_t *actx) { if (!actx->private_data) { - actx->private_data = kerberos_new_private_data(); + actx->private_data = kerberos_new_private_data(actx->pinfo); } return (kerberos_private_data_t *)(actx->private_data); } @@ -1998,7 +1998,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo, int keytype, int *datalen) { - kerberos_private_data_t *zero_private = kerberos_new_private_data(); + kerberos_private_data_t *zero_private = kerberos_new_private_data(pinfo); return decrypt_krb5_data_private(tree, pinfo, zero_private, usage, cryptotvb, keytype, datalen); @@ -2148,7 +2148,7 @@ decrypt_krb5_krb_cfx_dce(proto_tree *tree, tvbuff_t *checksum_tvb) { struct decrypt_krb5_krb_cfx_dce_state state; - kerberos_private_data_t *zero_private = kerberos_new_private_data(); + kerberos_private_data_t *zero_private = kerberos_new_private_data(pinfo); tvbuff_t *gssapi_decrypted_tvb = NULL; krb5_error_code ret; diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c index 362204d2e6..57e06b86a1 100644 --- a/epan/dissectors/packet-nbap.c +++ b/epan/dissectors/packet-nbap.c @@ -6575,7 +6575,7 @@ typedef struct nbap_ib_segment_t { guint8* data; } nbap_ib_segment_t; -static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(tvbuff_t *tvb,gboolean is_short) +static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(packet_info *pinfo, tvbuff_t *tvb,gboolean is_short) { guint8 bit_length; guint8* data; @@ -6585,13 +6585,13 @@ static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(tvbuff_t *tvb,gboolean is_s } if (is_short) { bit_length = tvb_get_guint8(tvb,0) + 1; - data = (guint8*)tvb_memdup(wmem_packet_scope(),tvb,1,(bit_length+7)/8); + data = (guint8*)tvb_memdup(pinfo->pool,tvb,1,(bit_length+7)/8); } else { bit_length = NBAP_MAX_IB_SEGMENT_LENGTH; - data = (guint8*)tvb_memdup(wmem_packet_scope(),tvb,0,(bit_length+7)/8); + data = (guint8*)tvb_memdup(pinfo->pool,tvb,0,(bit_length+7)/8); } - output = wmem_new(wmem_packet_scope(), nbap_ib_segment_t); + output = wmem_new(pinfo->pool, nbap_ib_segment_t); output->bit_length = bit_length; output->data = data; return output; @@ -6817,9 +6817,9 @@ static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, pro static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); static guint32 calculate_setup_conv_key(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id); -static void add_setup_conv(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number, +static void add_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number, const address *addr, const guint32 port, umts_fp_conversation_info_t * umts_fp_conversation_info, conversation_t *conv); -static nbap_setup_conv_t* find_setup_conv(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id); +static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id); static void delete_setup_conv(nbap_setup_conv_t *conv); /*Easy way to add hsdhsch binds for corner cases*/ @@ -12654,7 +12654,7 @@ nbap_private_data->binding_id_port = 0; set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); - request_conv = find_setup_conv(nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id); + request_conv = find_setup_conv(actx->pinfo, nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id); if(request_conv == NULL){ return offset; @@ -26723,7 +26723,7 @@ dissect_nbap_IB_SG_DATA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, default: /* First, subsequent or last */ if(preferences_ib_sg_data_encoding == IB_SG_DATA_ENC_VAR_1) { is_short = ( segment_type == 1 || segment_type == 4 ); /* first-short or last-short */ - nbap_ib_segment = nbap_parse_ib_sg_data_var1(parameter_tvb, is_short); + nbap_ib_segment = nbap_parse_ib_sg_data_var1(actx->pinfo, parameter_tvb, is_short); if (nbap_ib_segment == NULL ) { /* failed to parse */ return offset; } @@ -33017,7 +33017,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); /* Add Setup Conversation to list, we need it in response msg */ - add_setup_conv(nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); + add_setup_conv(actx->pinfo, nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); } @@ -33199,7 +33199,7 @@ nbap_private_data->num_items = 1; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); /* Add Setup Conversation to list, we need it in response msg */ - add_setup_conv(nbap_private_data->transaction_id, nbap_private_data->dd_mode, common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); + add_setup_conv(actx->pinfo, nbap_private_data->transaction_id, nbap_private_data->dd_mode, common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); nbap_debug("Frame %u PCH-ParametersItem-CTCH-SetupRqstFDD End", actx->pinfo->num); } @@ -33314,7 +33314,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); /* Add Setup Conversation to list, we need it in response msg */ - add_setup_conv(nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); + add_setup_conv(actx->pinfo, nbap_private_data->transaction_id,nbap_private_data->dd_mode,nbap_private_data->common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation); } @@ -55814,14 +55814,14 @@ static guint32 calculate_setup_conv_key(const guint32 transaction_id, const guin return key; } -static void add_setup_conv(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number, +static void add_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number, const address *addr, const guint32 port, umts_fp_conversation_info_t * umts_fp_conversation_info, conversation_t *conv) { nbap_setup_conv_t *new_conv = NULL; guint32 key; nbap_debug("Creating new setup conv\t TransactionID: %u\tddMode: %u\tChannelID: %u\t %s:%u", - transaction_id, dd_mode, channel_id, address_to_str(wmem_packet_scope(), addr), port); + transaction_id, dd_mode, channel_id, address_to_str(pinfo->pool, addr), port); new_conv = wmem_new0(wmem_file_scope(), nbap_setup_conv_t); @@ -55840,7 +55840,7 @@ static void add_setup_conv(const guint32 transaction_id, const guint32 dd_mode, wmem_map_insert(nbap_setup_conv_table, GUINT_TO_POINTER(key), new_conv); } -static nbap_setup_conv_t* find_setup_conv(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id) +static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id) { nbap_setup_conv_t *conv; guint32 key; @@ -55854,7 +55854,7 @@ static nbap_setup_conv_t* find_setup_conv(const guint32 transaction_id, const gu nbap_debug("\tDidn't find Setup Conversation match"); }else{ nbap_debug("\tFOUND Setup Conversation match\t TransactionID: %u\t ddMode: %u\t ChannelID: %u\t %s:%u", - conv->transaction_id, conv->dd_mode, conv->channel_id, address_to_str(wmem_packet_scope(), &(conv->addr)), conv->port); + conv->transaction_id, conv->dd_mode, conv->channel_id, address_to_str(pinfo->pool, &(conv->addr)), conv->port); } return conv; diff --git a/epan/dissectors/packet-pkcs12.c b/epan/dissectors/packet-pkcs12.c index d57df1d89d..f6aad50030 100644 --- a/epan/dissectors/packet-pkcs12.c +++ b/epan/dissectors/packet-pkcs12.c @@ -153,16 +153,16 @@ static gint ett_pkcs12_PBMAC1Params = -1; /*--- End of included file: packet-pkcs12-ett.c ---*/ #line 67 "./asn1/pkcs12/packet-pkcs12-template.c" -static void append_oid(proto_tree *tree, const char *oid) +static void append_oid(wmem_allocator_t *pool, proto_tree *tree, const char *oid) { const char *name = NULL; - name = oid_resolved_from_string(wmem_packet_scope(), oid); + name = oid_resolved_from_string(pool, oid); proto_item_append_text(tree, " (%s)", name ? name : oid); } static int -generate_key_or_iv(unsigned int id, tvbuff_t *salt_tvb, unsigned int iter, +generate_key_or_iv(packet_info *pinfo, unsigned int id, tvbuff_t *salt_tvb, unsigned int iter, const char *pw, unsigned int req_keylen, char * keybuf) { int rc; @@ -180,7 +180,7 @@ generate_key_or_iv(unsigned int id, tvbuff_t *salt_tvb, unsigned int iter, cur_keylen = 0; salt_size = tvb_captured_length(salt_tvb); - salt_p = (char *)tvb_memdup(wmem_packet_scope(), salt_tvb, 0, salt_size); + salt_p = (char *)tvb_memdup(pinfo->pool, salt_tvb, 0, salt_size); if (pw == NULL) pwlen = 0; @@ -347,14 +347,14 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry /* allocate buffers */ key = (char *)wmem_alloc(pinfo->pool, keylen); - if(!generate_key_or_iv(1 /*LEY */, salt, iteration_count, password, keylen, key)) + if(!generate_key_or_iv(pinfo, 1 /*LEY */, salt, iteration_count, password, keylen, key)) return FALSE; if(ivlen) { iv = (char *)wmem_alloc(pinfo->pool, ivlen); - if(!generate_key_or_iv(2 /* IV */, salt, iteration_count, password, ivlen, iv)) + if(!generate_key_or_iv(pinfo, 2 /* IV */, salt, iteration_count, password, ivlen, iv)) return FALSE; } @@ -563,7 +563,7 @@ dissect_pkcs12_T_bagId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id); #line 84 "./asn1/pkcs12/pkcs12.cnf" - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); return offset; } @@ -588,7 +588,7 @@ dissect_pkcs12_T_attrId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id); #line 104 "./asn1/pkcs12/pkcs12.cnf" - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); return offset; } @@ -799,7 +799,7 @@ dissect_pkcs12_T_certId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id); #line 89 "./asn1/pkcs12/pkcs12.cnf" - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); return offset; } @@ -839,7 +839,7 @@ dissect_pkcs12_T_crlId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id); #line 94 "./asn1/pkcs12/pkcs12.cnf" - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); return offset; } @@ -879,7 +879,7 @@ dissect_pkcs12_T_secretTypeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id); #line 99 "./asn1/pkcs12/pkcs12.cnf" - append_oid(tree, object_identifier_id); + append_oid(actx->pinfo->pool, tree, object_identifier_id); return offset; }