diff options
95 files changed, 497 insertions, 465 deletions
diff --git a/asn1/lte-rrc/lte-rrc.cnf b/asn1/lte-rrc/lte-rrc.cnf index 4abe251ce5..3813caba4a 100644 --- a/asn1/lte-rrc/lte-rrc.cnf +++ b/asn1/lte-rrc/lte-rrc.cnf @@ -754,7 +754,7 @@ CQI-ReportConfigSCell-r10/nomPDSCH-RS-EPRE-Offset-r10 STRINGS=VALS(lte_rrc_nomPD drx_check_config_sane(drx_config, actx); /* Look for UE identifier */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, configure MAC with DRX config */ set_mac_lte_drx_config(p_mac_lte_info->ueid, drx_config, actx->pinfo); @@ -1204,7 +1204,7 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) memset(drb_mapping, 0, sizeof(*drb_mapping)); %(DEFAULT_BODY)s /* Need UE identifier */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info == NULL) { return offset; } @@ -1494,7 +1494,7 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) mac_lte_info* p_mac_lte_info; %(DEFAULT_BODY)s /* Look for UE identifier */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, tell MAC to release DRX config */ set_mac_lte_drx_config_release(p_mac_lte_info->ueid, actx->pinfo); @@ -1502,7 +1502,7 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) #.FN_BODY RRCConnectionSetup /* Look for UE identifier */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, tell MAC to release DRX config coming from a previous RRC connection */ /* We do release the configuration here instead of RRC Connection Release message */ @@ -1519,7 +1519,7 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) p_security_algorithms = private_data_pdcp_security_algorithms(actx); p_security_algorithms->configuration_frame = actx->pinfo->fd->num; /* Look for UE identifier */ - p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_pdcp_lte, 0); + p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_pdcp_lte, 0); if (p_pdcp_lte_info != NULL) { /* Configure algorithms */ set_pdcp_lte_security_algorithms(p_pdcp_lte_info->ueid, p_security_algorithms); diff --git a/asn1/rrc/packet-rrc-template.c b/asn1/rrc/packet-rrc-template.c index 524b527fda..fd9b610744 100644 --- a/asn1/rrc/packet-rrc-template.c +++ b/asn1/rrc/packet-rrc-template.c @@ -198,7 +198,7 @@ dissect_rrc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) struct rrc_info *rrcinf; top_tree = tree; - rrcinf = (struct rrc_info *)p_get_proto_data(pinfo->fd, proto_rrc, 0); + rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rrc, 0); /* make entry in the Protocol column on summary display */ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RRC"); diff --git a/asn1/rrc/rrc.cnf b/asn1/rrc/rrc.cnf index 4ec8384f5e..ea95626ec5 100644 --- a/asn1/rrc/rrc.cnf +++ b/asn1/rrc/rrc.cnf @@ -404,7 +404,7 @@ fp_info *fpinf ; %(DEFAULT_BODY)s - fpinf = (fp_info *)p_get_proto_data(actx->pinfo->fd, proto_fp, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); if(fpinf && ((c_inf = (rrc_ciphering_info *)g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id))) != NULL) ){ c_inf->setup_frame = actx->pinfo->fd->num; } @@ -722,7 +722,7 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE num_chans_per_flow[flowd]++; if(num_chans_per_flow[flowd] > 1 ){ - rrcinf = (rrc_info *)p_get_proto_data(actx->pinfo->fd, proto_rrc, 0); + rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); if((rrcinf == NULL) || (rrcinf->hrnti[actx->pinfo->fd->subnum] == 0)){ expert_add_info(actx->pinfo, actx->created_item, &ei_rrc_no_hrnti); } @@ -758,7 +758,7 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE if(num_chans_per_flow[flowd] > 1 ){ - rrcinf = (rrc_info *)p_get_proto_data(actx->pinfo->fd, proto_rrc, 0); + rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); if((rrcinf == NULL) || (rrcinf->hrnti[actx->pinfo->fd->subnum] == 0)){ expert_add_info(actx->pinfo, actx->created_item, &ei_rrc_no_hrnti); } @@ -789,10 +789,10 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE %(DEFAULT_BODY)s #.FN_FTR H-RNTI - rrcinf = (struct rrc_info *)p_get_proto_data(actx->pinfo->fd, proto_rrc, 0); + rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); if (!rrcinf) { rrcinf = wmem_new0(wmem_file_scope(), struct rrc_info); - p_add_proto_data(actx->pinfo->fd, proto_rrc, 0, rrcinf); + p_add_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0, rrcinf); } rrcinf->hrnti[actx->pinfo->fd->subnum] = tvb_get_ntohs(hrnti_tvb, 0); @@ -806,7 +806,7 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE %(DEFAULT_BODY)s /*We base this map on communication context from fp*/ - fpinf = (fp_info *)p_get_proto_data(actx->pinfo->fd, proto_fp, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); /*If no info found, skip all this*/ if(fpinf == NULL){ @@ -859,7 +859,7 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE - fpinf = (fp_info *)p_get_proto_data(actx->pinfo->fd, proto_fp, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); %(DEFAULT_BODY)s diff --git a/asn1/spnego/packet-spnego-template.c b/asn1/spnego/packet-spnego-template.c index cec4289952..cdb7f88ac4 100644 --- a/asn1/spnego/packet-spnego-template.c +++ b/asn1/spnego/packet-spnego-template.c @@ -1260,7 +1260,7 @@ dissect_spnego(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) * It has to be per-frame as there can be more than one GSS-API * negotiation in a conversation. */ - next_level_value = (gssapi_oid_value *)p_get_proto_data(pinfo->fd, proto_spnego, 0); + next_level_value = (gssapi_oid_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_spnego, 0); if (!next_level_value && !pinfo->fd->flags.visited) { /* * No handle attached to this frame, but it's the first @@ -1276,7 +1276,7 @@ dissect_spnego(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) next_level_value = (gssapi_oid_value *)conversation_get_proto_data(conversation, proto_spnego); if (next_level_value) - p_add_proto_data(pinfo->fd, proto_spnego, 0, next_level_value); + p_add_proto_data(wmem_file_scope(), pinfo, proto_spnego, 0, next_level_value); } } diff --git a/asn1/t38/packet-t38-template.c b/asn1/t38/packet-t38-template.c index 22ce949104..525525d7bc 100644 --- a/asn1/t38/packet-t38-template.c +++ b/asn1/t38/packet-t38-template.c @@ -425,7 +425,7 @@ init_t38_info_conv(packet_info *pinfo) p_t38_conv = NULL; /* Use existing packet info if available */ - p_t38_packet_conv = (t38_conv *)p_get_proto_data(pinfo->fd, proto_t38, 0); + p_t38_packet_conv = (t38_conv *)p_get_proto_data(wmem_file_scope(), pinfo, proto_t38, 0); /* find the conversation used for Reassemble and Setup Info */ @@ -482,7 +482,7 @@ init_t38_info_conv(packet_info *pinfo) memcpy(&(p_t38_packet_conv->src_t38_info), &(p_t38_conv->src_t38_info), sizeof(t38_conv_info)); memcpy(&(p_t38_packet_conv->dst_t38_info), &(p_t38_conv->dst_t38_info), sizeof(t38_conv_info)); - p_add_proto_data(pinfo->fd, proto_t38, 0, p_t38_packet_conv); + p_add_proto_data(wmem_file_scope(), pinfo, proto_t38, 0, p_t38_packet_conv); } if (ADDRESSES_EQUAL(&p_conv->key_ptr->addr1, &pinfo->net_src)) { diff --git a/epan/dissectors/packet-6lowpan.c b/epan/dissectors/packet-6lowpan.c index 559cf67244..ded3325155 100644 --- a/epan/dissectors/packet-6lowpan.c +++ b/epan/dissectors/packet-6lowpan.c @@ -702,7 +702,7 @@ lowpan_dlsrc_to_ifcid(packet_info *pinfo, guint8 *ifcid) } /* Lookup the IEEE 802.15.4 addressing hints. */ - hints = (ieee802154_hints_t *)p_get_proto_data(pinfo->fd, + hints = (ieee802154_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name(IEEE802154_PROTOABBREV_WPAN), 0); if (hints) { lowpan_addr16_to_ifcid(hints->src16, ifcid); @@ -741,7 +741,7 @@ lowpan_dldst_to_ifcid(packet_info *pinfo, guint8 *ifcid) } /* Lookup the IEEE 802.15.4 addressing hints. */ - hints = (ieee802154_hints_t *)p_get_proto_data(pinfo->fd, + hints = (ieee802154_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name(IEEE802154_PROTOABBREV_WPAN), 0); if (hints) { lowpan_addr16_to_ifcid(hints->dst16, ifcid); @@ -1374,7 +1374,7 @@ dissect_6lowpan_iphc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint d struct lowpan_nhdr *nhdr_list; /* Lookup the IEEE 802.15.4 addressing hints. */ - hints = (ieee802154_hints_t *)p_get_proto_data(pinfo->fd, + hints = (ieee802154_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name(IEEE802154_PROTOABBREV_WPAN), 0); hint_panid = (hints) ? (hints->src_pan) : (IEEE802154_BCAST_PAN); diff --git a/epan/dissectors/packet-ajp13.c b/epan/dissectors/packet-ajp13.c index 99ccbaede3..b1a8ca8481 100644 --- a/epan/dissectors/packet-ajp13.c +++ b/epan/dissectors/packet-ajp13.c @@ -775,7 +775,7 @@ dissect_ajp13_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* * state for use later on when we're called out of order (see * comments at top of this file) */ - fd = (ajp13_frame_data*)p_get_proto_data(pinfo->fd, proto_ajp13, 0); + fd = (ajp13_frame_data*)p_get_proto_data(wmem_file_scope(), pinfo, proto_ajp13, 0); if (!fd) { /*printf("ajp13:dissect_ajp13_common():no frame data, adding");*/ /* since there's no per-packet user data, this must be the first @@ -783,7 +783,7 @@ dissect_ajp13_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* * pass through the data. */ fd = wmem_new(wmem_file_scope(), ajp13_frame_data); - p_add_proto_data(pinfo->fd, proto_ajp13, 0, fd); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ajp13, 0, fd); fd->is_request_body = FALSE; if (cd->content_length) { /* this is screwy, see AJPv13.html. the idea is that if the diff --git a/epan/dissectors/packet-arp.c b/epan/dissectors/packet-arp.c index b0b2e7d139..0bab08f90f 100644 --- a/epan/dissectors/packet-arp.c +++ b/epan/dissectors/packet-arp.c @@ -755,7 +755,7 @@ static void request_seen(packet_info *pinfo) { /* Don't count frame again after already recording first time around. */ - if (p_get_proto_data(pinfo->fd, proto_arp, 0) == 0) + if (p_get_proto_data(wmem_file_scope(), pinfo, proto_arp, 0) == 0) { arp_request_count++; } @@ -767,10 +767,10 @@ check_for_storm_count(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { gboolean report_storm = FALSE; - if (p_get_proto_data(pinfo->fd, proto_arp, 0) != 0) + if (p_get_proto_data(wmem_file_scope(), pinfo, proto_arp, 0) != 0) { /* Read any previous stored packet setting */ - report_storm = (p_get_proto_data(pinfo->fd, proto_arp, 0) == (void*)STORM); + report_storm = (p_get_proto_data(wmem_file_scope(), pinfo, proto_arp, 0) == (void*)STORM); } else { @@ -786,7 +786,7 @@ check_for_storm_count(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* Time period elapsed without threshold being exceeded */ arp_request_count = 1; time_at_start_of_count = pinfo->fd->abs_ts; - p_add_proto_data(pinfo->fd, proto_arp, 0, (void*)NO_STORM); + p_add_proto_data(wmem_file_scope(), pinfo, proto_arp, 0, (void*)NO_STORM); return; } else @@ -794,13 +794,13 @@ check_for_storm_count(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { /* Storm detected, record and reset start time. */ report_storm = TRUE; - p_add_proto_data(pinfo->fd, proto_arp, 0, (void*)STORM); + p_add_proto_data(wmem_file_scope(), pinfo, proto_arp, 0, (void*)STORM); time_at_start_of_count = pinfo->fd->abs_ts; } else { /* Threshold not exceeded yet - no storm */ - p_add_proto_data(pinfo->fd, proto_arp, 0, (void*)NO_STORM); + p_add_proto_data(wmem_file_scope(), pinfo, proto_arp, 0, (void*)NO_STORM); } } diff --git a/epan/dissectors/packet-beep.c b/epan/dissectors/packet-beep.c index 54922e99b7..ea11b651b1 100644 --- a/epan/dissectors/packet-beep.c +++ b/epan/dissectors/packet-beep.c @@ -780,7 +780,7 @@ dissect_beep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * info first. */ - beep_frame_data = (struct beep_proto_data *)p_get_proto_data(pinfo->fd, proto_beep, 0); + beep_frame_data = (struct beep_proto_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_beep, 0); if (!beep_frame_data) { @@ -874,7 +874,7 @@ dissect_beep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) beep_frame_data->pl_size = 0; beep_frame_data->mime_hdr = 0; - p_add_proto_data(pinfo->fd, proto_beep, 0, beep_frame_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_beep, 0, beep_frame_data); } @@ -890,7 +890,7 @@ dissect_beep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) beep_frame_data->pl_size = 0; beep_frame_data->mime_hdr = 0; - p_add_proto_data(pinfo->fd, proto_beep, 0, beep_frame_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_beep, 0, beep_frame_data); } diff --git a/epan/dissectors/packet-brdwlk.c b/epan/dissectors/packet-brdwlk.c index 2d676838d5..d68441a176 100644 --- a/epan/dissectors/packet-brdwlk.c +++ b/epan/dissectors/packet-brdwlk.c @@ -293,7 +293,7 @@ dissect_brdwlk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * We therefore attach a non-null pointer as frame data to * any frame preceded by dropped packets. */ - if (p_get_proto_data(pinfo->fd, proto_brdwlk, 0) != NULL) + if (p_get_proto_data(wmem_file_scope(), pinfo, proto_brdwlk, 0) != NULL) dropped_packets = TRUE; } else { /* @@ -314,7 +314,7 @@ dissect_brdwlk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * packets. (The data we use as the frame data doesn't * matter - it just matters that it's non-null.) */ - p_add_proto_data(pinfo->fd, proto_brdwlk, 0, &packet_count); + p_add_proto_data(wmem_file_scope(), pinfo, proto_brdwlk, 0, &packet_count); } } } diff --git a/epan/dissectors/packet-btavctp.c b/epan/dissectors/packet-btavctp.c index 0effa39b95..9d61600e2c 100644 --- a/epan/dissectors/packet-btavctp.c +++ b/epan/dissectors/packet-btavctp.c @@ -106,12 +106,12 @@ void proto_reg_handoff_btavctp(void); static void btavctp_pid_prompt(packet_info *pinfo, gchar* result) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "AVCTP SERVICE 0x%04x as", - GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_btavctp, BTAVCTP_PID_CONV ))); + GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_btavctp, BTAVCTP_PID_CONV ))); } static gpointer btavctp_pid_value(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_btavctp, BTAVCTP_PID_CONV ); + return p_get_proto_data(pinfo->pool, pinfo, proto_btavctp, BTAVCTP_PID_CONV ); } static gint @@ -177,8 +177,8 @@ dissect_btavctp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) proto_tree_add_item(btavctp_tree, hf_btavctp_pid, tvb, offset, 2, ENC_BIG_ENDIAN); pid = tvb_get_ntohs(tvb, offset); - if (p_get_proto_data(pinfo->fd, proto_btavctp, BTAVCTP_PID_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btavctp, BTAVCTP_PID_CONV, GUINT_TO_POINTER(pid)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btavctp, BTAVCTP_PID_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btavctp, BTAVCTP_PID_CONV, GUINT_TO_POINTER(pid)); } offset +=2; } diff --git a/epan/dissectors/packet-btl2cap.c b/epan/dissectors/packet-btl2cap.c index f02e1e18f6..6a69e55e11 100644 --- a/epan/dissectors/packet-btl2cap.c +++ b/epan/dissectors/packet-btl2cap.c @@ -381,34 +381,34 @@ void proto_reg_handoff_btl2cap(void); static void btl2cap_cid_prompt(packet_info *pinfo, gchar* result) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "L2CAP CID 0x%04x as", - GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_CID_CONV ))); + GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_CID_CONV ))); } static gpointer btl2cap_cid_value(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_CID_CONV ); + return p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_CID_CONV ); } static void btl2cap_psm_prompt(packet_info *pinfo, gchar* result) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "L2CAP PSM 0x%04x as", - GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV ))); + GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV ))); } static gpointer btl2cap_psm_value(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV ); + return p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV ); } static void btl2cap_serv_prompt(packet_info *pinfo, gchar* result) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "L2CAP SERVICE 0x%04x as", - GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_SERV_CONV ))); + GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_SERV_CONV ))); } static gpointer btl2cap_serv_value(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_SERV_CONV ); + return p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_SERV_CONV ); } static guint16 @@ -539,8 +539,8 @@ dissect_connrequest(tvbuff_t *tvb, int offset, packet_info *pinfo, psm = tvb_get_letohs(tvb, offset); - if (p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV, GUINT_TO_POINTER((guint)psm)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV, GUINT_TO_POINTER((guint)psm)); } if (psm < BTL2CAP_DYNAMIC_PSM_START) { @@ -1363,14 +1363,14 @@ dissect_b_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *psm_item; guint16 uuid; - if (p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV, GUINT_TO_POINTER((guint)psm)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV, GUINT_TO_POINTER((guint)psm)); } uuid = get_service_uuid(pinfo, l2cap_data, psm, is_local_psm); - if (p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_SERV_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_SERV_CONV, GUINT_TO_POINTER((guint)uuid)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_SERV_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_SERV_CONV, GUINT_TO_POINTER((guint)uuid)); } if (psm < BTL2CAP_DYNAMIC_PSM_START) { @@ -1529,14 +1529,14 @@ dissect_i_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *psm_item; guint16 uuid; - if (p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV, GUINT_TO_POINTER((guint)psm)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV, GUINT_TO_POINTER((guint)psm)); } uuid = get_service_uuid(pinfo, l2cap_data, psm, psm_data->local_service); - if (p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_SERV_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_SERV_CONV, GUINT_TO_POINTER((guint)uuid)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_SERV_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_SERV_CONV, GUINT_TO_POINTER((guint)uuid)); } if (psm < BTL2CAP_DYNAMIC_PSM_START) { @@ -1651,8 +1651,8 @@ dissect_btl2cap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) cid = tvb_get_letohs(tvb, offset); proto_tree_add_item(btl2cap_tree, hf_btl2cap_cid, tvb, offset, 2, ENC_LITTLE_ENDIAN); - if (p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_CID_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_CID_CONV, GUINT_TO_POINTER((guint)cid)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_CID_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_CID_CONV, GUINT_TO_POINTER((guint)cid)); } offset += 2; @@ -1788,8 +1788,8 @@ dissect_btl2cap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) psm = tvb_get_letohs(tvb, offset); l2cap_data->psm = psm; - if (p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_PSM_CONV, GUINT_TO_POINTER((guint)psm)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_PSM_CONV, GUINT_TO_POINTER((guint)psm)); } proto_tree_add_item(btl2cap_tree, hf_btl2cap_psm, tvb, offset, 2, ENC_LITTLE_ENDIAN); @@ -1804,8 +1804,8 @@ dissect_btl2cap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) uuid = get_service_uuid(pinfo, l2cap_data, psm, (pinfo->p2p_dir == P2P_DIR_RECV) ? TRUE : FALSE ); - if (p_get_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_SERV_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btl2cap, BTL2CAP_SERV_CONV, GUINT_TO_POINTER((guint)uuid)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_SERV_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btl2cap, BTL2CAP_SERV_CONV, GUINT_TO_POINTER((guint)uuid)); } if (!dissector_try_uint_new(l2cap_service_dissector_table, uuid, next_tvb, pinfo, tree, TRUE, l2cap_data)) { diff --git a/epan/dissectors/packet-btrfcomm.c b/epan/dissectors/packet-btrfcomm.c index fb8bb0392d..99ccd47e49 100644 --- a/epan/dissectors/packet-btrfcomm.c +++ b/epan/dissectors/packet-btrfcomm.c @@ -261,23 +261,23 @@ void proto_reg_handoff_btgnss(void); static void btrfcomm_serv_prompt(packet_info *pinfo, gchar* result) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "RFCOMM SERVICE %d as", - GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_btrfcomm, BTRFCOMM_SERVICE_CONV ))); + GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_btrfcomm, BTRFCOMM_SERVICE_CONV ))); } static gpointer btrfcomm_serv_value(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_btrfcomm, BTRFCOMM_SERVICE_CONV ); + return p_get_proto_data(pinfo->pool, pinfo, proto_btrfcomm, BTRFCOMM_SERVICE_CONV ); } static void btrfcomm_chan_prompt(packet_info *pinfo, gchar* result) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "RFCOMM Channel %d as", - GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_btrfcomm, BTRFCOMM_CHANNEL_CONV ))); + GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_btrfcomm, BTRFCOMM_CHANNEL_CONV ))); } static gpointer btrfcomm_chan_value(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_btrfcomm, BTRFCOMM_CHANNEL_CONV ); + return p_get_proto_data(pinfo->pool, pinfo, proto_btrfcomm, BTRFCOMM_CHANNEL_CONV ); } static dissector_handle_t @@ -458,8 +458,8 @@ dissect_btrfcomm_address(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tr channel = dlci >> 1; proto_item_append_text(dlci_item, " (Direction: %d, Channel: %u)", dlci & 0x01, channel); - if (p_get_proto_data(pinfo->fd, proto_btrfcomm, BTRFCOMM_CHANNEL_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btrfcomm, BTRFCOMM_CHANNEL_CONV, GUINT_TO_POINTER((guint)channel)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btrfcomm, BTRFCOMM_CHANNEL_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btrfcomm, BTRFCOMM_CHANNEL_CONV, GUINT_TO_POINTER((guint)channel)); } dlci_tree = proto_item_add_subtree(dlci_item, ett_dlci); @@ -784,8 +784,8 @@ dissect_btrfcomm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data rfcomm_data->remote_bd_addr_oui = l2cap_data->remote_bd_addr_oui; rfcomm_data->remote_bd_addr_id = l2cap_data->remote_bd_addr_id; - if (p_get_proto_data(pinfo->fd, proto_btrfcomm, BTRFCOMM_SERVICE_CONV ) == NULL) { - p_add_proto_data(pinfo->fd, proto_btrfcomm, BTRFCOMM_SERVICE_CONV, GUINT_TO_POINTER((guint)service_info->uuid.bt_uuid)); + if (p_get_proto_data(pinfo->pool, pinfo, proto_btrfcomm, BTRFCOMM_SERVICE_CONV ) == NULL) { + p_add_proto_data(pinfo->pool, pinfo, proto_btrfcomm, BTRFCOMM_SERVICE_CONV, GUINT_TO_POINTER((guint)service_info->uuid.bt_uuid)); } if (!dissector_try_uint_new(rfcomm_channel_dissector_table, (guint32) dlci >> 1, diff --git a/epan/dissectors/packet-catapult-dct2000.c b/epan/dissectors/packet-catapult-dct2000.c index 9c4730c70b..2367339363 100644 --- a/epan/dissectors/packet-catapult-dct2000.c +++ b/epan/dissectors/packet-catapult-dct2000.c @@ -1111,7 +1111,7 @@ static void dissect_pdcp_lte(tvbuff_t *tvb, gint offset, guint8 channelId; /* Look this up so can update channel info */ - p_pdcp_lte_info = (struct pdcp_lte_info *)p_get_proto_data(pinfo->fd, proto_pdcp_lte, 0); + p_pdcp_lte_info = (struct pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0); if (p_pdcp_lte_info == NULL) { /* This really should be set...can't dissect anything without it */ return; @@ -1445,7 +1445,7 @@ static void attach_fp_info(packet_info *pinfo, gboolean received, const char *pr int calculated_variant; /* Only need to set info once per session. */ - struct fp_info *p_fp_info = (struct fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + struct fp_info *p_fp_info = (struct fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); if (p_fp_info != NULL) { return; } @@ -1570,7 +1570,7 @@ static void attach_fp_info(packet_info *pinfo, gboolean received, const char *pr if (strcmp(protocol_name, "fpiur_r5") == 0) { /* Store info in packet */ p_fp_info->iface_type = IuR_Interface; - p_add_proto_data(pinfo->fd, proto_fp, 0, p_fp_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fp, 0, p_fp_info); return; } @@ -1634,7 +1634,7 @@ static void attach_fp_info(packet_info *pinfo, gboolean received, const char *pr p_fp_info->iface_type = IuB_Interface; /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_fp, 0, p_fp_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fp, 0, p_fp_info); } @@ -1644,7 +1644,7 @@ static void attach_rlc_info(packet_info *pinfo, guint32 urnti, guint8 rbid, gboo { /* Only need to set info once per session. */ struct fp_info *p_fp_info; - struct rlc_info *p_rlc_info = (struct rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + struct rlc_info *p_rlc_info = (struct rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (p_rlc_info != NULL) { return; @@ -1700,7 +1700,7 @@ static void attach_rlc_info(packet_info *pinfo, guint32 urnti, guint8 rbid, gboo p_rlc_info->li_size[0] = (enum rlc_li_size)outhdr_values[0]; /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_rlc, 0, p_rlc_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, p_rlc_info); /* Also store minimal FP info consulted by RLC dissector TODO: Don't really know direction, but use S/R flag to make @@ -1708,7 +1708,7 @@ static void attach_rlc_info(packet_info *pinfo, guint32 urnti, guint8 rbid, gboo but RLC dissector seems to not use anyway... */ p_fp_info->is_uplink = is_sent; p_fp_info->cur_tb = 0; /* Always the first/only one */ - p_add_proto_data(pinfo->fd, proto_fp, 0, p_fp_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fp, 0, p_fp_info); } @@ -1842,7 +1842,7 @@ static void attach_rlc_lte_info(packet_info *pinfo) unsigned int i = 0; /* Only need to set info once per session. */ - p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(pinfo->fd, proto_rlc_lte, 0); + p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0); if (p_rlc_lte_info != NULL) { return; } @@ -1860,7 +1860,7 @@ static void attach_rlc_lte_info(packet_info *pinfo) p_rlc_lte_info->pduLength = outhdr_values[i]; /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_rlc_lte, 0, p_rlc_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0, p_rlc_lte_info); } /* Fill in a PDCP LTE packet info struct and attach it to the packet for the PDCP LTE @@ -1871,7 +1871,7 @@ static void attach_pdcp_lte_info(packet_info *pinfo) unsigned int i = 0; /* Only need to set info once per session. */ - p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(pinfo->fd, proto_pdcp_lte, 0); + p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0); if (p_pdcp_lte_info != NULL) { return; } @@ -1898,7 +1898,7 @@ static void attach_pdcp_lte_info(packet_info *pinfo) /* Remaining 2 (fixed) fields are ah_length and gre_checksum */ /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_pdcp_lte, 0, p_pdcp_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0, p_pdcp_lte_info); } diff --git a/epan/dissectors/packet-cip.c b/epan/dissectors/packet-cip.c index 131467ee6a..8b0e92dc22 100644 --- a/epan/dissectors/packet-cip.c +++ b/epan/dissectors/packet-cip.c @@ -2535,7 +2535,7 @@ static void add_cip_service_to_info_column(packet_info *pinfo, guint8 service, c { cip_req_info_t *preq_info; - preq_info = (cip_req_info_t*)p_get_proto_data( pinfo->fd, proto_cip, 0 ); + preq_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0 ); if ((preq_info == NULL) || (preq_info->isUnconnectedSend == FALSE)) { @@ -4294,7 +4294,7 @@ dissect_cip_multiple_service_packet_req(tvbuff_t *tvb, packet_info *pinfo, proto else { /* Add services */ - cip_req_info = (cip_req_info_t*)p_get_proto_data( pinfo->fd, proto_cip, 0 ); + cip_req_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0 ); if ( cip_req_info ) { if ( cip_req_info->pData == NULL ) @@ -4631,7 +4631,7 @@ dissect_cip_multiple_service_packet_rsp(tvbuff_t *tvb, packet_info *pinfo, proto return; } - cip_req_info = (cip_req_info_t*)p_get_proto_data( pinfo->fd, proto_cip, 0 ); + cip_req_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0 ); if ( cip_req_info ) { mr_mult_req_info = (mr_mult_req_info_t*)cip_req_info->pData; @@ -4745,7 +4745,7 @@ dissect_cip_generic_service_rsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t return tvb_length(tvb); } - preq_info = (cip_req_info_t*)p_get_proto_data(pinfo->fd, proto_cip, 0); + preq_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); if ((preq_info != NULL) && (preq_info->ciaData != NULL)) { @@ -5088,7 +5088,7 @@ dissect_cip_cm_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, int item_ /* Special handling for Unconnected send response. If successful, embedded service code is sent. * If failed, it can be either an Unconnected send response or the embedded service code response. */ - preq_info = (cip_req_info_t*)p_get_proto_data( pinfo->fd, proto_cip, 0 ); + preq_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0 ); if ( preq_info != NULL && ( service & 0x80 ) && preq_info->bService == SC_CM_UNCON_SEND ) @@ -5117,9 +5117,9 @@ dissect_cip_cm_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, int item_ tvbuff_t *next_tvb; void *p_save_proto_data; - p_save_proto_data = p_get_proto_data( pinfo->fd, proto_cip, 0 ); - p_remove_proto_data(pinfo->fd, proto_cip, 0); - p_add_proto_data(pinfo->fd, proto_cip, 0, pembedded_req_info ); + p_save_proto_data = p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0 ); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); + p_add_proto_data(wmem_file_scope(), pinfo, proto_cip, 0, pembedded_req_info ); proto_tree_add_text( item_tree, NULL, 0, 0, "(Service: Unconnected Send (Response))" ); next_tvb = tvb_new_subset(tvb, offset, item_length, item_length); @@ -5128,8 +5128,8 @@ dissect_cip_cm_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, int item_ else call_dissector( cip_class_generic_handle, next_tvb, pinfo, item_tree ); - p_remove_proto_data(pinfo->fd, proto_cip, 0); - p_add_proto_data(pinfo->fd, proto_cip, 0, p_save_proto_data); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); + p_add_proto_data(wmem_file_scope(), pinfo, proto_cip, 0, p_save_proto_data); return; } } @@ -5422,7 +5422,7 @@ dissect_cip_cm_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, int item_ col_append_str( pinfo->cinfo, COL_INFO, ": "); next_tvb = tvb_new_subset(tvb, offset+2+req_path_size+4, msg_req_siz, msg_req_siz); - preq_info = (cip_req_info_t *)p_get_proto_data( pinfo->fd, proto_cip, 0 ); + preq_info = (cip_req_info_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0 ); pembedded_req_info = NULL; if ( preq_info ) { @@ -5588,10 +5588,10 @@ dissect_cip_mb_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, int item_ request_info->packet_type = RESPONSE_PACKET; request_info->register_addr_type = MBTCP_PREF_REGISTER_ADDR_RAW; request_info->register_format = MBTCP_PREF_REGISTER_FORMAT_UINT16; - p_add_proto_data(pinfo->fd, proto_modbus, 0, request_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0, request_info); call_dissector(modbus_handle, next_tvb, pinfo, cmd_data_tree); - p_remove_proto_data(pinfo->fd, proto_modbus, 0); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0); } break; @@ -5678,10 +5678,10 @@ dissect_cip_mb_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, int item_ request_info->packet_type = QUERY_PACKET; request_info->register_addr_type = MBTCP_PREF_REGISTER_ADDR_RAW; request_info->register_format = MBTCP_PREF_REGISTER_FORMAT_UINT16; - p_add_proto_data(pinfo->fd, proto_modbus, 0, request_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0, request_info); call_dissector(modbus_handle, next_tvb, pinfo, cmd_data_tree); - p_remove_proto_data(pinfo->fd, proto_modbus, 0); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0); } break; @@ -5918,7 +5918,7 @@ dissect_cip_cco_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, int item /* Add Service code */ proto_tree_add_item(rrsc_tree, hf_cip_cco_sc, tvb, offset, 1, ENC_LITTLE_ENDIAN ); - preq_info = (cip_req_info_t*)p_get_proto_data(pinfo->fd, proto_cip, 0); + preq_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); if ((preq_info != NULL) && (preq_info->ciaData != NULL)) { @@ -6079,7 +6079,7 @@ dissect_class_cco_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void if (service & 0x80) { /* Service response */ - preq_info = (cip_req_info_t*)p_get_proto_data(pinfo->fd, proto_cip, 0); + preq_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); if ((preq_info != NULL) && (preq_info->dissector == dissector_get_uint_handle( subdissector_class_table, CI_CLS_CCO))) { @@ -6150,9 +6150,9 @@ dissect_cip_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, packet_info dissector_handle_t dissector; gint service_index; - p_save_proto_data = p_get_proto_data(pinfo->fd, proto_cip, 0); - p_remove_proto_data(pinfo->fd, proto_cip, 0); - p_add_proto_data(pinfo->fd, proto_cip, 0, preq_info); + p_save_proto_data = p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); + p_add_proto_data(wmem_file_scope(), pinfo, proto_cip, 0, preq_info); /* Create display subtree for the protocol */ ti = proto_tree_add_item(item_tree, proto_cip, tvb, 0, -1, ENC_NA); @@ -6332,8 +6332,8 @@ dissect_cip_data( proto_tree *item_tree, tvbuff_t *tvb, int offset, packet_info } } /* End of if-else( request ) */ - p_remove_proto_data(pinfo->fd, proto_cip, 0); - p_add_proto_data(pinfo->fd, proto_cip, 0, p_save_proto_data); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); + p_add_proto_data(wmem_file_scope(), pinfo, proto_cip, 0, p_save_proto_data); } /* End of dissect_cip_data() */ @@ -6350,7 +6350,7 @@ dissect_cip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) col_clear(pinfo->cinfo, COL_INFO); /* Each CIP request received by ENIP gets a unique ID */ - enip_info = (enip_request_info_t*)p_get_proto_data(pinfo->fd, proto_enip, 0); + enip_info = (enip_request_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_enip, 0); if ( enip_info ) { diff --git a/epan/dissectors/packet-cipsafety.c b/epan/dissectors/packet-cipsafety.c index 6d3c93d63b..01e414b7c4 100644 --- a/epan/dissectors/packet-cipsafety.c +++ b/epan/dissectors/packet-cipsafety.c @@ -505,7 +505,7 @@ dissect_cip_s_supervisor_data( proto_tree *item_tree, /* Add Service code */ proto_tree_add_item(rrsc_tree, hf_cip_ssupervisor_sc, tvb, offset, 1, ENC_LITTLE_ENDIAN ); - preq_info = (cip_req_info_t*)p_get_proto_data(pinfo->fd, proto_cip, 0); + preq_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); if ((preq_info != NULL) && (preq_info->ciaData != NULL)) { @@ -1169,7 +1169,7 @@ dissect_cip_s_validator_data( proto_tree *item_tree, /* Add Service code */ proto_tree_add_item(rrsc_tree, hf_cip_svalidator_sc, tvb, offset, 1, ENC_LITTLE_ENDIAN ); - preq_info = (cip_req_info_t*)p_get_proto_data(pinfo->fd, proto_cip, 0); + preq_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); if ((preq_info != NULL) && (preq_info->ciaData != NULL)) { @@ -1323,7 +1323,7 @@ dissect_class_svalidator_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre if (service & 0x80) { /* Service response */ - preq_info = (cip_req_info_t*)p_get_proto_data(pinfo->fd, proto_cip, 0); + preq_info = (cip_req_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cip, 0); if ((preq_info != NULL) && (preq_info->dissector == dissector_get_uint_handle( subdissector_class_table, CI_CLS_SAFETY_VALIDATOR))) { @@ -1464,7 +1464,7 @@ dissect_cip_safety_data( proto_tree *tree, proto_item *item, tvbuff_t *tvb, int gboolean server_dir = FALSE; enum enip_connid_type conn_type = ECIDT_UNKNOWN; enum cip_safety_format_type format = CIP_SAFETY_BASE_FORMAT; - cip_safety_info_t* safety_info = (cip_safety_info_t*)p_get_proto_data( pinfo->fd, proto_cipsafety, 0 ); + cip_safety_info_t* safety_info = (cip_safety_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_cipsafety, 0 ); /* Make entries in Protocol column and Info column on summary display */ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CIP Safety"); diff --git a/epan/dissectors/packet-dmp.c b/epan/dissectors/packet-dmp.c index 4b7dd74027..dc5357880b 100644 --- a/epan/dissectors/packet-dmp.c +++ b/epan/dissectors/packet-dmp.c @@ -1484,10 +1484,10 @@ static void register_dmp_id (packet_info *pinfo, guint8 reason) pkg_data = wmem_new (wmem_file_scope(), dmp_id_val); *pkg_data = *dmp_data; - p_add_proto_data (pinfo->fd, proto_dmp, 0, pkg_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_dmp, 0, pkg_data); } else { /* Fetch last values from data saved in packet */ - pkg_data = (dmp_id_val *)p_get_proto_data (pinfo->fd, proto_dmp, 0); + pkg_data = (dmp_id_val *)p_get_proto_data(wmem_file_scope(), pinfo, proto_dmp, 0); if (dmp_data && pkg_data && dmp.msg_type != ACK && pkg_data->ack_id == 0) { pkg_data->ack_id = dmp_data->ack_id; diff --git a/epan/dissectors/packet-eap.c b/epan/dissectors/packet-eap.c index edb1584bff..58b5966d2d 100644 --- a/epan/dissectors/packet-eap.c +++ b/epan/dissectors/packet-eap.c @@ -899,7 +899,7 @@ dissect_eap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) first pass through the capture. */ /* See if we have a remembered defragmentation EAP ID. */ - packet_state = (frame_state_t *)p_get_proto_data(pinfo->fd, proto_eap, 0); + packet_state = (frame_state_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_eap, 0); if (packet_state == NULL) { /* * We haven't - does this message require reassembly? @@ -962,7 +962,7 @@ dissect_eap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) */ packet_state = wmem_new(wmem_file_scope(), frame_state_t); packet_state->info = eap_reass_cookie; - p_add_proto_data(pinfo->fd, proto_eap, 0, packet_state); + p_add_proto_data(wmem_file_scope(), pinfo, proto_eap, 0, packet_state); } } } else { @@ -1078,7 +1078,7 @@ dissect_eap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) /* This part is state-dependent. */ /* See if we've already remembered the state. */ - packet_state = (frame_state_t *)p_get_proto_data(pinfo->fd, proto_eap, 0); + packet_state = (frame_state_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_eap, 0); if (packet_state == NULL) { /* * We haven't - compute the state based on the current @@ -1099,7 +1099,7 @@ dissect_eap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) */ packet_state = wmem_new(wmem_file_scope(), frame_state_t); packet_state->info = leap_state; - p_add_proto_data(pinfo->fd, proto_eap, 0, packet_state); + p_add_proto_data(wmem_file_scope(), pinfo, proto_eap, 0, packet_state); /* * Update the conversation's state. diff --git a/epan/dissectors/packet-enip.c b/epan/dissectors/packet-enip.c index b5694a3adc..3e223013d8 100644 --- a/epan/dissectors/packet-enip.c +++ b/epan/dissectors/packet-enip.c @@ -1697,7 +1697,7 @@ dissect_cpf(enip_request_key_t *request_key, int command, tvbuff_t *tvb, /* Call dissector for interface */ next_tvb = tvb_new_subset( tvb, offset+6, item_length, item_length ); - p_add_proto_data(pinfo->fd, proto_enip, 0, request_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_enip, 0, request_info); if ( tvb_length_remaining(next_tvb, 0) <= 0 || !dissector_try_uint(subdissector_srrd_table, ifacehndl, next_tvb, pinfo, dissector_tree) ) { /* Show the undissected payload */ @@ -1725,7 +1725,7 @@ dissect_cpf(enip_request_key_t *request_key, int command, tvbuff_t *tvb, } else { - p_remove_proto_data(pinfo->fd, proto_enip, 0); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_enip, 0); } break; @@ -1752,14 +1752,14 @@ dissect_cpf(enip_request_key_t *request_key, int command, tvbuff_t *tvb, /* Call dissector for interface */ next_tvb = tvb_new_subset (tvb, offset+8, item_length-2, item_length-2); - p_add_proto_data(pinfo->fd, proto_enip, 0, request_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_enip, 0, request_info); if ( tvb_length_remaining(next_tvb, 0) <= 0 || !dissector_try_uint(subdissector_sud_table, ifacehndl, next_tvb, pinfo, dissector_tree) ) { /* Show the undissected payload */ if ( tvb_length_remaining(tvb, offset) > 0 ) call_dissector( data_handle, next_tvb, pinfo, dissector_tree ); } - p_remove_proto_data(pinfo->fd, proto_enip, 0); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_enip, 0); } else { @@ -1776,7 +1776,7 @@ dissect_cpf(enip_request_key_t *request_key, int command, tvbuff_t *tvb, cip_safety->conn_type = connid_type; cip_safety->server_dir = (conn_info->TransportClass_trigger & CI_PRODUCTION_DIR_MASK) ? TRUE : FALSE; cip_safety->format = conn_info->safety.format; - p_add_proto_data(pinfo->fd, proto_cipsafety, 0, cip_safety); + p_add_proto_data(wmem_file_scope(), pinfo, proto_cipsafety, 0, cip_safety); call_dissector(cipsafety_handle, next_tvb, pinfo, dissector_tree); } else if (conn_info->motion == TRUE) @@ -1921,7 +1921,7 @@ dissect_cpf(enip_request_key_t *request_key, int command, tvbuff_t *tvb, if ((FwdOpen == TRUE) || (FwdOpenReply == TRUE)) { - request_info = (enip_request_info_t *)p_get_proto_data(pinfo->fd, proto_enip, 0); + request_info = (enip_request_info_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_enip, 0); if (request_info != NULL) { if (item == SOCK_ADR_INFO_OT) @@ -1991,16 +1991,16 @@ dissect_cpf(enip_request_key_t *request_key, int command, tvbuff_t *tvb, /* See if there is a CIP connection to establish */ if (FwdOpenReply == TRUE) { - request_info = (enip_request_info_t *)p_get_proto_data(pinfo->fd, proto_enip, 0); + request_info = (enip_request_info_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_enip, 0); if (request_info != NULL) { enip_open_cip_connection(pinfo, request_info->cip_info->connInfo); } - p_remove_proto_data(pinfo->fd, proto_enip, 0); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_enip, 0); } else if (FwdOpen == TRUE) { - p_remove_proto_data(pinfo->fd, proto_enip, 0); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_enip, 0); } } /* end of dissect_cpf() */ diff --git a/epan/dissectors/packet-ethertype.c b/epan/dissectors/packet-ethertype.c index 878067bf56..979786aa12 100644 --- a/epan/dissectors/packet-ethertype.c +++ b/epan/dissectors/packet-ethertype.c @@ -191,12 +191,12 @@ const value_string etype_vals[] = { static void eth_prompt(packet_info *pinfo, gchar* result) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "Ethertype 0x%04x as", - GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_ethertype, 0))); + GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_ethertype, 0))); } static gpointer eth_value(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_ethertype, 0); + return p_get_proto_data(pinfo->pool, pinfo, proto_ethertype, 0); } static void add_dix_trailer(packet_info *pinfo, proto_tree *tree, proto_tree *fh_tree, @@ -288,7 +288,7 @@ dissect_ethertype(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat next_tvb = tvb_new_subset(tvb, ethertype_data->offset_after_ethertype, captured_length, reported_length); - p_add_proto_data(pinfo->fd, proto_ethertype, 0, GUINT_TO_POINTER((guint)ethertype_data->etype)); + p_add_proto_data(pinfo->pool, pinfo, proto_ethertype, 0, GUINT_TO_POINTER((guint)ethertype_data->etype)); /* Look for sub-dissector, and call it if found. Catch exceptions, so that if the reported length of "next_tvb" diff --git a/epan/dissectors/packet-fcp.c b/epan/dissectors/packet-fcp.c index ac604a0a6e..4ab65c5bf8 100644 --- a/epan/dissectors/packet-fcp.c +++ b/epan/dissectors/packet-fcp.c @@ -431,7 +431,7 @@ dissect_fcp_cmnd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, pro if (!pinfo->fd->flags.visited) { proto_data = wmem_new(wmem_file_scope(), fcp_proto_data_t); proto_data->lun = lun; - p_add_proto_data(pinfo->fd, proto_fcp, 0, proto_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fcp, 0, proto_data); } request_data = (fcp_request_data_t*)wmem_tree_lookup32(fcp_conv_data->luns, lun); @@ -714,9 +714,9 @@ dissect_fcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) if (!pinfo->fd->flags.visited) { proto_data = wmem_new(wmem_file_scope(), fcp_proto_data_t); proto_data->lun = fchdr->itlq->lun; - p_add_proto_data(pinfo->fd, proto_fcp, 0, proto_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fcp, 0, proto_data); } else { - proto_data = (fcp_proto_data_t *)p_get_proto_data(pinfo->fd, proto_fcp, 0); + proto_data = (fcp_proto_data_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fcp, 0); fchdr->itlq->lun = proto_data->lun; } diff --git a/epan/dissectors/packet-fp_hint.c b/epan/dissectors/packet-fp_hint.c index 7b89015b32..0ac4c5c550 100644 --- a/epan/dissectors/packet-fp_hint.c +++ b/epan/dissectors/packet-fp_hint.c @@ -148,15 +148,15 @@ static guint16 assign_rb_info(tvbuff_t *tvb, packet_info *pinfo, guint16 offset, struct umts_mac_info *macinf; struct rlc_info *rlcinf; - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (!macinf) { macinf = wmem_new0(wmem_file_scope(), struct umts_mac_info); - p_add_proto_data(pinfo->fd, proto_umts_mac, 0, macinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0, macinf); } if (!rlcinf) { rlcinf = wmem_new0(wmem_file_scope(), struct rlc_info); - p_add_proto_data(pinfo->fd, proto_rlc, 0, rlcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, rlcinf); } while (i < rbcnt) { @@ -429,10 +429,10 @@ static void attach_info(tvbuff_t *tvb, packet_info *pinfo, guint16 offset, guint { fp_info *fpi; - fpi = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + fpi = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); if (!fpi) { fpi = wmem_new0(wmem_file_scope(), fp_info); - p_add_proto_data(pinfo->fd, proto_fp, 0, fpi); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fp, 0, fpi); } fpi->is_uplink = pinfo->p2p_dir == P2P_DIR_RECV; diff --git a/epan/dissectors/packet-frame.c b/epan/dissectors/packet-frame.c index dac5775d61..1b4225514f 100644 --- a/epan/dissectors/packet-frame.c +++ b/epan/dissectors/packet-frame.c @@ -425,7 +425,7 @@ dissect_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) ppd_item = proto_tree_add_uint(fh_tree, hf_frame_num_p_prot_data, tvb, 0, 0, num_entries); PROTO_ITEM_SET_GENERATED(ppd_item); for(i=0; i<num_entries; i++){ - proto_tree_add_text (fh_tree, tvb, 0, 0, "%s",p_get_proto_name_and_key(pinfo->fd, i)); + proto_tree_add_text (fh_tree, tvb, 0, 0, "%s",p_get_proto_name_and_key(wmem_file_scope(), pinfo, i)); } } /* Check for existences of P2P pseudo header */ diff --git a/epan/dissectors/packet-gssapi.c b/epan/dissectors/packet-gssapi.c index 9513fdf026..f2bdd80b25 100644 --- a/epan/dissectors/packet-gssapi.c +++ b/epan/dissectors/packet-gssapi.c @@ -369,14 +369,14 @@ dissect_gssapi_work(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, * pointer; it just treats it as an opaque pointer, it * doesn't dereference it or free what it points to.) */ - oidvalue = (gssapi_oid_value *)p_get_proto_data(pinfo->fd, proto_gssapi, 0); + oidvalue = (gssapi_oid_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_gssapi, 0); if (!oidvalue && !pinfo->fd->flags.visited) { /* No handle attached to this frame, but it's the first */ /* pass, so it'd be attached to the conversation. */ oidvalue = gss_info->oid; if (gss_info->oid) - p_add_proto_data(pinfo->fd, proto_gssapi, 0, gss_info->oid); + p_add_proto_data(wmem_file_scope(), pinfo, proto_gssapi, 0, gss_info->oid); } if (!oidvalue) { diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c index 7158000527..9cdf516003 100644 --- a/epan/dissectors/packet-http.c +++ b/epan/dissectors/packet-http.c @@ -649,7 +649,7 @@ static void push_req(http_conv_t *conv_data, packet_info *pinfo) req_res->req_framenum = pinfo->fd->num; req_res->req_ts = pinfo->fd->abs_ts; - p_add_proto_data(pinfo->fd, proto_http, 0, req_res); + p_add_proto_data(wmem_file_scope(), pinfo, proto_http, 0, req_res); } /** @@ -668,7 +668,7 @@ static void push_res(http_conv_t *conv_data, packet_info *pinfo) req_res = push_req_res(conv_data); } req_res->res_framenum = pinfo->fd->num; - p_add_proto_data(pinfo->fd, proto_http, 0, req_res); + p_add_proto_data(wmem_file_scope(), pinfo, proto_http, 0, req_res); } /* @@ -1025,7 +1025,7 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo, if (tree) { proto_item *pi; - http_req_res_t *curr = (http_req_res_t *)p_get_proto_data(pinfo->fd, proto_http, 0); + http_req_res_t *curr = (http_req_res_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_http, 0); http_req_res_t *prev = curr ? curr->prev : NULL; http_req_res_t *next = curr ? curr->next : NULL; diff --git a/epan/dissectors/packet-iax2.c b/epan/dissectors/packet-iax2.c index 5ab32bc0f1..9debfab13a 100644 --- a/epan/dissectors/packet-iax2.c +++ b/epan/dissectors/packet-iax2.c @@ -1634,7 +1634,7 @@ dissect_fullpacket(tvbuff_t *tvb, guint32 offset, iax2_info->dcallno = dcallno; /* see if we've seen this packet before */ - iax_packet = (iax_packet_data *)p_get_proto_data(pinfo->fd, proto_iax2, 0); + iax_packet = (iax_packet_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_iax2, 0); if (!iax_packet) { /* if not, find or create an iax_call info structure for this IAX session. */ @@ -1648,7 +1648,7 @@ dissect_fullpacket(tvbuff_t *tvb, guint32 offset, } iax_packet = iax_new_packet_data(iax_call, reversed); - p_add_proto_data(pinfo->fd, proto_iax2, 0, iax_packet); + p_add_proto_data(wmem_file_scope(), pinfo, proto_iax2, 0, iax_packet); } else { iax_call = iax_packet->call_data; reversed = iax_packet->reversed; @@ -1807,7 +1807,7 @@ static iax_packet_data *iax2_get_packet_data_for_minipacket(packet_info *pinfo, gboolean video) { /* see if we've seen this packet before */ - iax_packet_data *p = (iax_packet_data *)p_get_proto_data(pinfo->fd, proto_iax2, 0); + iax_packet_data *p = (iax_packet_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_iax2, 0); if (!p) { /* if not, find or create an iax_call info structure for this IAX session. */ @@ -1817,7 +1817,7 @@ static iax_packet_data *iax2_get_packet_data_for_minipacket(packet_info *pinfo, iax_call = iax_lookup_call(pinfo, scallno, 0, &reversed); p = iax_new_packet_data(iax_call, reversed); - p_add_proto_data(pinfo->fd, proto_iax2, 0, p); + p_add_proto_data(wmem_file_scope(), pinfo, proto_iax2, 0, p); /* set the codec for this frame to be whatever the last full frame used */ if (iax_call) { diff --git a/epan/dissectors/packet-icmpv6.c b/epan/dissectors/packet-icmpv6.c index 6608c7b865..30c9ea5065 100644 --- a/epan/dissectors/packet-icmpv6.c +++ b/epan/dissectors/packet-icmpv6.c @@ -2165,7 +2165,7 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree break; } /* Update the 6LoWPAN dissectors with new context information. */ - hints = (ieee802154_hints_t *)p_get_proto_data(pinfo->fd, 0, + hints = (ieee802154_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, 0, proto_get_id_by_filter_name(IEEE802154_PROTOABBREV_WPAN)); if ((opt_len <= 24) && hints) { lowpan_context_insert(context_id, hints->src_pan, context_len, &context_prefix, pinfo->fd->num); diff --git a/epan/dissectors/packet-ieee802154.c b/epan/dissectors/packet-ieee802154.c index 0c74371cc3..d7d87631e1 100644 --- a/epan/dissectors/packet-ieee802154.c +++ b/epan/dissectors/packet-ieee802154.c @@ -634,9 +634,9 @@ dissect_ieee802154_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g /* Allocate frame data with hints for upper layers */ if(!pinfo->fd->flags.visited){ ieee_hints = wmem_new0(wmem_file_scope(), ieee802154_hints_t); - p_add_proto_data(pinfo->fd, proto_ieee802154, 0, ieee_hints); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ieee802154, 0, ieee_hints); } else { - ieee_hints = (ieee802154_hints_t *)p_get_proto_data(pinfo->fd, proto_ieee802154, 0); + ieee_hints = (ieee802154_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ieee802154, 0); } /* Create the protocol tree. */ @@ -1797,7 +1797,7 @@ dissect_ieee802154_decrypt(tvbuff_t * tvb, guint offset, packet_info * pinfo, ie return NULL; } - ieee_hints = (ieee802154_hints_t *)p_get_proto_data(pinfo->fd, proto_ieee802154, 0); + ieee_hints = (ieee802154_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ieee802154, 0); /* Get the captured and on-the-wire length of the payload. */ M = IEEE802154_MIC_LENGTH(packet->security_level); diff --git a/epan/dissectors/packet-ipx.c b/epan/dissectors/packet-ipx.c index e55cdedf5d..cb62de6376 100644 --- a/epan/dissectors/packet-ipx.c +++ b/epan/dissectors/packet-ipx.c @@ -722,7 +722,7 @@ dissect_spx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) */ spx_rexmit_info_p = wmem_new(wmem_file_scope(), spx_rexmit_info); spx_rexmit_info_p->num = pkt_value->num; - p_add_proto_data(pinfo->fd, proto_spx, 0, + p_add_proto_data(wmem_file_scope(), pinfo, proto_spx, 0, spx_rexmit_info_p); } } else { @@ -732,7 +732,7 @@ dissect_spx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * data indicates which frame had the original * transmission. */ - spx_rexmit_info_p = (spx_rexmit_info *)p_get_proto_data(pinfo->fd, + spx_rexmit_info_p = (spx_rexmit_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_spx, 0); } } diff --git a/epan/dissectors/packet-ixveriwave.c b/epan/dissectors/packet-ixveriwave.c index 7f8a14fafe..939ddf35c8 100644 --- a/epan/dissectors/packet-ixveriwave.c +++ b/epan/dissectors/packet-ixveriwave.c @@ -480,7 +480,7 @@ dissect_ixveriwave(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* Calculate the IFG */ /* Check for an existing ifg value associated with the frame */ - p_ifg_info = (ifg_info *)p_get_proto_data(pinfo->fd, proto_ixveriwave, 0); + p_ifg_info = (ifg_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ixveriwave, 0); if (!p_ifg_info) { /* allocate the space */ @@ -506,7 +506,7 @@ dissect_ixveriwave(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) p_ifg_info->current_start_time = vw_startt; /* Add the ifg onto the frame */ - p_add_proto_data(pinfo->fd, proto_ixveriwave, 0, p_ifg_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ixveriwave, 0, p_ifg_info); } /* Grab the rest of the frame. */ @@ -544,7 +544,7 @@ ethernettap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_t offset = 0; /* First add the IFG information */ - p_ifg_info = (struct ifg_info *) p_get_proto_data(pinfo->fd, proto_ixveriwave, 0); + p_ifg_info = (struct ifg_info *) p_get_proto_data(wmem_file_scope(), pinfo, proto_ixveriwave, 0); if (tree) { ti = proto_tree_add_uint(tap_tree, hf_ixveriwave_vw_ifg, tvb, offset, 0, p_ifg_info->ifg); @@ -698,7 +698,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_tree /* First add the IFG information, need to grab the info bit field here */ vw_info = tvb_get_letohs(tvb, 20); - p_ifg_info = (struct ifg_info *) p_get_proto_data(pinfo->fd, proto_ixveriwave, 0); + p_ifg_info = (struct ifg_info *) p_get_proto_data(wmem_file_scope(), pinfo, proto_ixveriwave, 0); if (tree) { if ((vw_info & 0x0400) && !(vw_info & 0x0800)) /* If the packet is part of an A-MPDU but not the first MPDU */ ti = proto_tree_add_uint(tap_tree, hf_ixveriwave_vw_ifg, tvb, 18, 0, 0); diff --git a/epan/dissectors/packet-k12.c b/epan/dissectors/packet-k12.c index 3801420897..7818e43fd4 100644 --- a/epan/dissectors/packet-k12.c +++ b/epan/dissectors/packet-k12.c @@ -276,10 +276,10 @@ dissect_k12(tvbuff_t* tvb,packet_info* pinfo,proto_tree* tree) for (i = 0; handles[i] && handles[i+1]; ++i) { if (handles[i] == sscop_handle) { - sscop_payload_info *p_sscop_info = (sscop_payload_info *)p_get_proto_data(pinfo->fd, proto_sscop, 0); + sscop_payload_info *p_sscop_info = (sscop_payload_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_sscop, 0); if (!p_sscop_info) { p_sscop_info = wmem_new0(wmem_file_scope(), sscop_payload_info); - p_add_proto_data(pinfo->fd, proto_sscop, 0, p_sscop_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_sscop, 0, p_sscop_info); p_sscop_info->subdissector = handles[i+1]; } } @@ -290,10 +290,10 @@ dissect_k12(tvbuff_t* tvb,packet_info* pinfo,proto_tree* tree) /* Setup information required by certain protocols */ if (sub_handle == fp_handle) { - fp_info *p_fp_info = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + fp_info *p_fp_info = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); if (!p_fp_info) { p_fp_info = wmem_new0(wmem_file_scope(), fp_info); - p_add_proto_data(pinfo->fd, proto_fp, 0, p_fp_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fp, 0, p_fp_info); fill_fp_info(p_fp_info, pinfo->pseudo_header->k12.extra_info, diff --git a/epan/dissectors/packet-kafka.c b/epan/dissectors/packet-kafka.c index 1cd97b8495..36b61f62ed 100644 --- a/epan/dissectors/packet-kafka.c +++ b/epan/dissectors/packet-kafka.c @@ -805,7 +805,7 @@ dissect_kafka(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U } if (PINFO_FD_VISITED(pinfo)) { - matcher = (kafka_query_response_t *) p_get_proto_data(pinfo->fd, proto_kafka, 0); + matcher = (kafka_query_response_t *) p_get_proto_data(wmem_file_scope(), pinfo, proto_kafka, 0); } if (pinfo->destport == kafka_port) { @@ -818,7 +818,7 @@ dissect_kafka(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U matcher->request_frame = PINFO_FD_NUM(pinfo); matcher->response_found = FALSE; - p_add_proto_data(pinfo->fd, proto_kafka, 0, matcher); + p_add_proto_data(wmem_file_scope(), pinfo, proto_kafka, 0, matcher); /* The kafka server always responds, except in the case of a produce * request whose RequiredAcks field is 0. This field is at a dynamic @@ -890,7 +890,7 @@ dissect_kafka(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U matcher->response_frame = PINFO_FD_NUM(pinfo); matcher->response_found = TRUE; - p_add_proto_data(pinfo->fd, proto_kafka, 0, matcher); + p_add_proto_data(wmem_file_scope(), pinfo, proto_kafka, 0, matcher); } col_add_fstr(pinfo->cinfo, COL_INFO, "Kafka %s Response", diff --git a/epan/dissectors/packet-lapd.c b/epan/dissectors/packet-lapd.c index 9d6a400b63..15ba189fc1 100644 --- a/epan/dissectors/packet-lapd.c +++ b/epan/dissectors/packet-lapd.c @@ -239,7 +239,7 @@ dissect_lapd_bitstream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* get remaining data from previous packets */ conversation = find_or_create_conversation(pinfo); - lapd_ppi = (lapd_ppi_t*)p_get_proto_data(pinfo->fd, proto_lapd, 0); + lapd_ppi = (lapd_ppi_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_lapd, 0); if (lapd_ppi) { prev_byte_state = &lapd_ppi->start_byte_state; if (prev_byte_state) { @@ -362,7 +362,7 @@ dissect_lapd_bitstream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } { - if (NULL == p_get_proto_data(pinfo->fd, proto_lapd, 0)) { + if (NULL == p_get_proto_data(wmem_file_scope(), pinfo, proto_lapd, 0)) { /* Per packet information */ lapd_ppi = wmem_new(wmem_file_scope(), lapd_ppi_t); lapd_ppi->has_crc = TRUE; @@ -373,7 +373,7 @@ dissect_lapd_bitstream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) else fill_lapd_byte_state(&lapd_ppi->start_byte_state, OUT_OF_SYNC, 0x00, 0, 0, data, 0); - p_add_proto_data(pinfo->fd, proto_lapd, 0, lapd_ppi); + p_add_proto_data(wmem_file_scope(), pinfo, proto_lapd, 0, lapd_ppi); /* Conversation info*/ diff --git a/epan/dissectors/packet-lte-rrc.c b/epan/dissectors/packet-lte-rrc.c index 905bb0d795..9d30e0ab2c 100644 --- a/epan/dissectors/packet-lte-rrc.c +++ b/epan/dissectors/packet-lte-rrc.c @@ -12846,7 +12846,7 @@ dissect_lte_rrc_DRB_ToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx ett_lte_rrc_DRB_ToAddMod, DRB_ToAddMod_sequence); /* Need UE identifier */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info == NULL) { return offset; } @@ -13007,7 +13007,7 @@ dissect_lte_rrc_T_release(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U offset = dissect_per_null(tvb, offset, actx, tree, hf_index); /* Look for UE identifier */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, tell MAC to release DRX config */ set_mac_lte_drx_config_release(p_mac_lte_info->ueid, actx->pinfo); @@ -13956,7 +13956,7 @@ dissect_lte_rrc_MAC_MainConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac drx_check_config_sane(drx_config, actx); /* Look for UE identifier */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, configure MAC with DRX config */ set_mac_lte_drx_config(p_mac_lte_info->ueid, drx_config, actx->pinfo); @@ -18778,7 +18778,7 @@ dissect_lte_rrc_RRCConnectionSetup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup"); /* Look for UE identifier */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, tell MAC to release DRX config coming from a previous RRC connection */ /* We do release the configuration here instead of RRC Connection Release message */ @@ -22272,7 +22272,7 @@ dissect_lte_rrc_SecurityAlgorithmConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ p_security_algorithms = private_data_pdcp_security_algorithms(actx); p_security_algorithms->configuration_frame = actx->pinfo->fd->num; /* Look for UE identifier */ - p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(actx->pinfo->fd, proto_pdcp_lte, 0); + p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_pdcp_lte, 0); if (p_pdcp_lte_info != NULL) { /* Configure algorithms */ set_pdcp_lte_security_algorithms(p_pdcp_lte_info->ueid, p_security_algorithms); diff --git a/epan/dissectors/packet-mac-lte-framed.c b/epan/dissectors/packet-mac-lte-framed.c index b70fc265e1..4a8b8bd471 100644 --- a/epan/dissectors/packet-mac-lte-framed.c +++ b/epan/dissectors/packet-mac-lte-framed.c @@ -62,7 +62,7 @@ static void dissect_mac_lte_framed(tvbuff_t *tvb, packet_info *pinfo, } /* If redissecting, use previous info struct (if available) */ - p_mac_lte_info = (struct mac_lte_info*)p_get_proto_data(pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (struct mac_lte_info*)p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0); if (p_mac_lte_info == NULL) { /* Allocate new info struct for this frame */ p_mac_lte_info = (struct mac_lte_info*)wmem_alloc0(wmem_file_scope(), sizeof(struct mac_lte_info)); @@ -79,7 +79,7 @@ static void dissect_mac_lte_framed(tvbuff_t *tvb, packet_info *pinfo, /* Store info in packet (first time) */ if (!infoAlreadySet) { - p_add_proto_data(pinfo->fd, proto_mac_lte, 0, p_mac_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0, p_mac_lte_info); } /**************************************/ diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c index fde1dfe81f..f2fc9f606e 100644 --- a/epan/dissectors/packet-mac-lte.c +++ b/epan/dissectors/packet-mac-lte.c @@ -1903,7 +1903,7 @@ static gboolean dissect_mac_lte_heur(tvbuff_t *tvb, packet_info *pinfo, offset += (gint)strlen(MAC_LTE_START_STRING); /* If redissecting, use previous info struct (if available) */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0); if (p_mac_lte_info == NULL) { /* Allocate new info struct for this frame */ p_mac_lte_info = wmem_new0(wmem_file_scope(), struct mac_lte_info); @@ -1921,7 +1921,7 @@ static gboolean dissect_mac_lte_heur(tvbuff_t *tvb, packet_info *pinfo, if (!infoAlreadySet) { /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_mac_lte, 0, p_mac_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0, p_mac_lte_info); } /**************************************/ @@ -2552,7 +2552,7 @@ static void call_rlc_dissector(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr struct rlc_lte_info *p_rlc_lte_info; /* Resuse or create RLC info */ - p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(pinfo->fd, proto_rlc_lte, 0); + p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0); if (p_rlc_lte_info == NULL) { p_rlc_lte_info = wmem_new0(wmem_file_scope(), struct rlc_lte_info); } @@ -2568,7 +2568,7 @@ static void call_rlc_dissector(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr p_rlc_lte_info->UMSequenceNumberLength = UMSequenceNumberLength; /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_rlc_lte, 0, p_rlc_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0, p_rlc_lte_info); if (global_mac_lte_layer_to_show != ShowRLCLayer) { /* Don't want these columns replaced */ @@ -2723,7 +2723,7 @@ static void TrackReportedDLHARQResend(packet_info *pinfo, tvbuff_t *tvb, volatil /* Return TRUE if the given packet is thought to be a retx */ int is_mac_lte_frame_retx(packet_info *pinfo, guint8 direction) { - struct mac_lte_info *p_mac_lte_info = (struct mac_lte_info *)p_get_proto_data(pinfo->fd, proto_mac_lte, 0); + struct mac_lte_info *p_mac_lte_info = (struct mac_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0); if (p_mac_lte_info == NULL) { return FALSE; @@ -4880,7 +4880,7 @@ void dissect_mac_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) mac_lte_tree = proto_item_add_subtree(pdu_ti, ett_mac_lte); /* Look for packet info! */ - p_mac_lte_info = (mac_lte_info *)p_get_proto_data(pinfo->fd, proto_mac_lte, 0); + p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0); /* Can't dissect anything without it... */ if (p_mac_lte_info == NULL) { @@ -5534,13 +5534,13 @@ void set_mac_lte_drx_config_release(guint16 ueid, packet_info *pinfo) /* Function to be called from outside this module (e.g. in a plugin) to get per-packet data */ mac_lte_info *get_mac_lte_proto_data(packet_info *pinfo) { - return (mac_lte_info *)p_get_proto_data(pinfo->fd, proto_mac_lte, 0); + return (mac_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0); } /* Function to be called from outside this module (e.g. in a plugin) to set per-packet data */ void set_mac_lte_proto_data(packet_info *pinfo, mac_lte_info *p_mac_lte_info) { - p_add_proto_data(pinfo->fd, proto_mac_lte, 0, p_mac_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0, p_mac_lte_info); } void proto_register_mac_lte(void) diff --git a/epan/dissectors/packet-mbtcp.c b/epan/dissectors/packet-mbtcp.c index 873fa834f3..db5e0845bb 100644 --- a/epan/dissectors/packet-mbtcp.c +++ b/epan/dissectors/packet-mbtcp.c @@ -481,22 +481,22 @@ dissect_mbtcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat next_tvb = tvb_new_subset( tvb, offset+7, len-1, len-1); /* keep existing context */ - p_save_proto_data = p_get_proto_data( pinfo->fd, proto_modbus, 0 ); - p_remove_proto_data(pinfo->fd, proto_modbus, 0); + p_save_proto_data = p_get_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0 ); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0); /* Create enough context for Modbus dissector */ request_info = wmem_new(wmem_packet_scope(), modbus_request_info_t); request_info->packet_type = (guint8)packet_type; request_info->register_addr_type = (guint8)global_mbus_tcp_register_addr_type; request_info->register_format = (guint8)global_mbus_tcp_register_format; - p_add_proto_data(pinfo->fd, proto_modbus, 0, request_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0, request_info); /* Continue with dissection of Modbus data payload following Modbus/TCP frame */ if( tvb_length_remaining(tvb, offset) > 0 ) call_dissector(modbus_handle, next_tvb, pinfo, tree); - p_remove_proto_data(pinfo->fd, proto_modbus, 0); - p_add_proto_data(pinfo->fd, proto_modbus, 0, p_save_proto_data); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0); + p_add_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0, p_save_proto_data); return tvb_length(tvb); } @@ -623,22 +623,22 @@ dissect_mbrtu_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat next_tvb = tvb_new_subset( tvb, offset+1, len-1, len-1); /* keep existing context */ - p_save_proto_data = p_get_proto_data( pinfo->fd, proto_modbus, 0 ); - p_remove_proto_data(pinfo->fd, proto_modbus, 0); + p_save_proto_data = p_get_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0 ); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0); /* Create enough context for Modbus dissector */ request_info = wmem_new(wmem_packet_scope(), modbus_request_info_t); request_info->packet_type = (guint8)packet_type; request_info->register_addr_type = (guint8)global_mbus_rtu_register_addr_type; request_info->register_format = (guint8)global_mbus_rtu_register_format; - p_add_proto_data(pinfo->fd, proto_modbus, 0, request_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0, request_info); /* Continue with dissection of Modbus data payload following Modbus RTU frame */ if( tvb_length_remaining(tvb, offset) > 0 ) call_dissector(modbus_handle, next_tvb, pinfo, tree); - p_remove_proto_data(pinfo->fd, proto_modbus, 0); - p_add_proto_data(pinfo->fd, proto_modbus, 0, p_save_proto_data); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0); + p_add_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0, p_save_proto_data); return tvb_length(tvb); } @@ -871,7 +871,7 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _ } /* See if we have any context */ - request_info = (modbus_request_info_t *)p_get_proto_data( pinfo->fd, proto_modbus, 0 ); + request_info = (modbus_request_info_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_modbus, 0 ); if (request_info != NULL) { packet_type = request_info->packet_type; diff --git a/epan/dissectors/packet-meta.c b/epan/dissectors/packet-meta.c index 47c87fcfc9..fe94bdc031 100644 --- a/epan/dissectors/packet-meta.c +++ b/epan/dissectors/packet-meta.c @@ -403,10 +403,10 @@ static guint16 evaluate_meta_item_dxt(proto_tree *meta_tree, tvbuff_t *tvb, pack break; case META_ID_AAL5PROTO: aal5proto = tvb_get_guint8(tvb, offs); - p_sscop_info = (sscop_payload_info *)p_get_proto_data(pinfo->fd, proto_sscop, 0); + p_sscop_info = (sscop_payload_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_sscop, 0); if (!p_sscop_info) { p_sscop_info = wmem_new0(wmem_file_scope(), sscop_payload_info); - p_add_proto_data(pinfo->fd, proto_sscop, 0, p_sscop_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_sscop, 0, p_sscop_info); } switch (aal5proto) { case META_AAL5PROTO_MTP3: @@ -429,7 +429,7 @@ static guint16 evaluate_meta_item_dxt(proto_tree *meta_tree, tvbuff_t *tvb, pack /* TODO: check for additional protos on Iu 802 LLC/SNAP ... */ default: /* TODO: add warning */ - p_remove_proto_data(pinfo->fd, proto_sscop, 0); + p_remove_proto_data(wmem_file_scope(), pinfo, proto_sscop, 0); } proto_tree_add_uint(meta_tree, hf_meta_item_aal5proto, tvb, offs, 1, aal5proto); diff --git a/epan/dissectors/packet-mikey.c b/epan/dissectors/packet-mikey.c index c671a48d73..de165c07b0 100644 --- a/epan/dissectors/packet-mikey.c +++ b/epan/dissectors/packet-mikey.c @@ -1353,12 +1353,12 @@ dissect_mikey(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U int payload; mikey_t *mikey; - mikey = (mikey_t *)p_get_proto_data(pinfo->fd, proto_mikey, 0); + mikey = (mikey_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_mikey, 0); if (!mikey) { mikey = wmem_new0(wmem_file_scope(), mikey_t); mikey->type = -1; - p_add_proto_data(pinfo->fd, proto_mikey, 0, mikey); + p_add_proto_data(wmem_file_scope(), pinfo, proto_mikey, 0, mikey); } diff --git a/epan/dissectors/packet-mp2t.c b/epan/dissectors/packet-mp2t.c index 42896b07a9..d7a60e4e4e 100644 --- a/epan/dissectors/packet-mp2t.c +++ b/epan/dissectors/packet-mp2t.c @@ -621,11 +621,11 @@ mp2t_process_fragmented_payload(tvbuff_t *tvb, gint offset, guint remaining_len, frag_tot_len = pid_analysis->frag_tot_len; fragmentation = pid_analysis->fragmentation; frag_id = pid_analysis->frag_id; - pdata = (packet_analysis_data_t *)p_get_proto_data(pinfo->fd, proto_mp2t, 0); + pdata = (packet_analysis_data_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_mp2t, 0); if (!pdata) { pdata = wmem_new0(wmem_file_scope(), packet_analysis_data_t); pdata->subpacket_table = wmem_tree_new(wmem_file_scope()); - p_add_proto_data(pinfo->fd, proto_mp2t, 0, pdata); + p_add_proto_data(wmem_file_scope(), pinfo, proto_mp2t, 0, pdata); } else { spdata = (subpacket_analysis_data_t *)wmem_tree_lookup32(pdata->subpacket_table, offset); @@ -642,7 +642,7 @@ mp2t_process_fragmented_payload(tvbuff_t *tvb, gint offset, guint remaining_len, } } else { /* Get saved values */ - pdata = (packet_analysis_data_t *)p_get_proto_data(pinfo->fd, proto_mp2t, 0); + pdata = (packet_analysis_data_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_mp2t, 0); if (!pdata) { /* Occurs for the first packets in the capture which cannot be reassembled */ return; diff --git a/epan/dissectors/packet-mpls.c b/epan/dissectors/packet-mpls.c index 95214f148c..c32c51681f 100644 --- a/epan/dissectors/packet-mpls.c +++ b/epan/dissectors/packet-mpls.c @@ -320,12 +320,12 @@ static dissector_table_t mpls_subdissector_table; static void mpls_prompt(packet_info *pinfo, gchar* result) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "Data after label %u as", - GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_mpls, 0))); + GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_mpls, 0))); } static gpointer mpls_value(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_mpls, 0); + return p_get_proto_data(pinfo->pool, pinfo, proto_mpls, 0); } /* @@ -550,7 +550,7 @@ dissect_mpls(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * update pinfo */ mplsinfo.label = label; - p_add_proto_data(pinfo->fd, proto_mpls, 0, GUINT_TO_POINTER(label)); + p_add_proto_data(pinfo->pool, pinfo, proto_mpls, 0, GUINT_TO_POINTER(label)); mplsinfo.exp = exp; mplsinfo.bos = bos; mplsinfo.ttl = ttl; diff --git a/epan/dissectors/packet-msrp.c b/epan/dissectors/packet-msrp.c index 728a809bc3..febcfde8b7 100644 --- a/epan/dissectors/packet-msrp.c +++ b/epan/dissectors/packet-msrp.c @@ -222,7 +222,7 @@ show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) struct _msrp_conversation_info *p_conv_data = NULL; /* Use existing packet data if available */ - p_conv_data = (struct _msrp_conversation_info *)p_get_proto_data(pinfo->fd, proto_msrp, 0); + p_conv_data = (struct _msrp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_msrp, 0); if (!p_conv_data) { @@ -243,7 +243,7 @@ show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) p_conv_packet_data = (struct _msrp_conversation_info *)wmem_memdup(wmem_file_scope(), p_conv_data, sizeof(struct _msrp_conversation_info)); - p_add_proto_data(pinfo->fd, proto_msrp, 0, p_conv_packet_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_msrp, 0, p_conv_packet_data); } } } diff --git a/epan/dissectors/packet-mysql.c b/epan/dissectors/packet-mysql.c index 7106a4bf67..9047b40486 100644 --- a/epan/dissectors/packet-mysql.c +++ b/epan/dissectors/packet-mysql.c @@ -1836,7 +1836,7 @@ dissect_mysql_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat conversation_add_proto_data(conversation, proto_mysql, conn_data); } - mysql_frame_data_p = (struct mysql_frame_data *)p_get_proto_data(pinfo->fd, proto_mysql, 0); + mysql_frame_data_p = (struct mysql_frame_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_mysql, 0); if (!mysql_frame_data_p) { /* We haven't seen this frame before. Store the state of the * conversation now so if/when we dissect the frame again @@ -1844,7 +1844,7 @@ dissect_mysql_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat */ mysql_frame_data_p = wmem_new(wmem_file_scope(), struct mysql_frame_data); mysql_frame_data_p->state = conn_data->state; - p_add_proto_data(pinfo->fd, proto_mysql, 0, mysql_frame_data_p); + p_add_proto_data(wmem_file_scope(), pinfo, proto_mysql, 0, mysql_frame_data_p); } else if (conn_data->state != FIELD_PACKET && conn_data->state != ROW_PACKET ) { /* We have seen this frame before. Set the connection state diff --git a/epan/dissectors/packet-ncp2222.inc b/epan/dissectors/packet-ncp2222.inc index 3f8630268f..8c2492465d 100644 --- a/epan/dissectors/packet-ncp2222.inc +++ b/epan/dissectors/packet-ncp2222.inc @@ -7152,7 +7152,7 @@ nds_defrag(tvbuff_t *tvb, packet_info *pinfo, guint32 nw_connection, guint8 sequ dissect_ncp_reply(tvb, pinfo, nw_connection, sequence, type, tree, ncp_tap); return; } - p_add_proto_data(pinfo->fd, proto_ncp, 0, (void*) request_value); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ncp, 0, (void*) request_value); } /* else... we haven't seen an NCP Request for that conversation and sequence. */ else @@ -7162,7 +7162,7 @@ nds_defrag(tvbuff_t *tvb, packet_info *pinfo, guint32 nw_connection, guint8 sequ } } else { - request_value = (ncp_req_hash_value *)p_get_proto_data(pinfo->fd, proto_ncp, 0); + request_value = (ncp_req_hash_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ncp, 0); if (!request_value) { dissect_ncp_reply(tvb, pinfo, nw_connection, sequence, type, tree, ncp_tap); return; @@ -8877,7 +8877,7 @@ dissect_ncp_reply(tvbuff_t *tvb, packet_info *pinfo, if (request_value) { ncp_rec = request_value->ncp_rec; } - p_add_proto_data(pinfo->fd, proto_ncp, 0, (void*) request_value); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ncp, 0, (void*) request_value); } /* else... we haven't seen an NCP Request for that conversation and sequence. @@ -8898,7 +8898,7 @@ dissect_ncp_reply(tvbuff_t *tvb, packet_info *pinfo, if (request_value) { ncp_rec = request_value->ncp_rec; } - p_add_proto_data(pinfo->fd, proto_ncp, 0, + p_add_proto_data(wmem_file_scope(), pinfo, proto_ncp, 0, (void*) request_value); } else { @@ -8912,7 +8912,7 @@ dissect_ncp_reply(tvbuff_t *tvb, packet_info *pinfo, if (request_value) { ncp_rec = request_value->ncp_rec; } - p_add_proto_data(pinfo->fd, proto_ncp, 0, + p_add_proto_data(wmem_file_scope(), pinfo, proto_ncp, 0, (void*) request_value); } /* else... we haven't seen an NCP Request for that @@ -8921,7 +8921,7 @@ dissect_ncp_reply(tvbuff_t *tvb, packet_info *pinfo, } } else { - /*request_value = p_get_proto_data(pinfo->fd, proto_ncp);*/ + /*request_value = p_get_proto_data(wmem_file_scope(), pinfo, proto_ncp);*/ conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, PT_NCP, nw_connection, nw_connection, 0); if (conversation != NULL) { diff --git a/epan/dissectors/packet-ndps.c b/epan/dissectors/packet-ndps.c index 349a41b952..d1b54c76df 100644 --- a/epan/dissectors/packet-ndps.c +++ b/epan/dissectors/packet-ndps.c @@ -4369,12 +4369,12 @@ ndps_defrag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, spx_info *spx_i request_value = ndps_hash_insert(conversation, (guint32) pinfo->srcport); } /* Add it to pinfo so we can get it on further dissection requests */ - p_add_proto_data(pinfo->fd, proto_ndps, 0, (void*) request_value); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ndps, 0, (void*) request_value); } else { /* Get request value data */ - request_value = (ndps_req_hash_value *)p_get_proto_data(pinfo->fd, proto_ndps, 0); + request_value = (ndps_req_hash_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ndps, 0); } if (!request_value) { @@ -6982,12 +6982,12 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int /* find the record telling us the request made that caused this reply */ request_value = ndps_hash_lookup(conversation, (guint32) pinfo->destport); - p_add_proto_data(pinfo->fd, proto_ndps, 0, (void*) request_value); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ndps, 0, (void*) request_value); } /* else... we haven't seen an NDPS Request for that conversation. */ } else { - request_value = (ndps_req_hash_value *)p_get_proto_data(pinfo->fd, proto_ndps, 0); + request_value = (ndps_req_hash_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ndps, 0); } if (request_value) { ndps_prog = request_value->ndps_prog; diff --git a/epan/dissectors/packet-ntlmssp.c b/epan/dissectors/packet-ntlmssp.c index addd203f64..283fef123b 100644 --- a/epan/dissectors/packet-ntlmssp.c +++ b/epan/dissectors/packet-ntlmssp.c @@ -1651,7 +1651,7 @@ dissect_ntlmssp_auth (tvbuff_t *tvb, packet_info *pinfo, int offset, * - has the AUTHENTICATE message in a second TCP connection; * (The authentication aparently succeeded). */ - conv_ntlmssp_info = (ntlmssp_info *)p_get_proto_data(pinfo->fd, proto_ntlmssp, NTLMSSP_CONV_INFO_KEY); + conv_ntlmssp_info = (ntlmssp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ntlmssp, NTLMSSP_CONV_INFO_KEY); if (conv_ntlmssp_info == NULL) { /* * There isn't any. Is there any from this conversation? If so, @@ -1670,7 +1670,7 @@ dissect_ntlmssp_auth (tvbuff_t *tvb, packet_info *pinfo, int offset, /* XXX: The *conv_ntlmssp_info struct attached to the frame is the same as the one attached to the conversation. That is: *both* point to the exact same struct in memory. Is this what is indended ? */ - p_add_proto_data(pinfo->fd, proto_ntlmssp, NTLMSSP_CONV_INFO_KEY, conv_ntlmssp_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ntlmssp, NTLMSSP_CONV_INFO_KEY, conv_ntlmssp_info); } if (conv_ntlmssp_info != NULL) { @@ -2023,11 +2023,11 @@ decrypt_data_payload(tvbuff_t *tvb, int offset, guint32 encrypted_block_length, ntlmssp_packet_info *stored_packet_ntlmssp_info = NULL; /* Check to see if we already have state for this packet */ - packet_ntlmssp_info = (ntlmssp_packet_info *)p_get_proto_data(pinfo->fd, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY); + packet_ntlmssp_info = (ntlmssp_packet_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY); if (packet_ntlmssp_info == NULL) { /* We don't have any packet state, so create one */ packet_ntlmssp_info = wmem_new0(wmem_file_scope(), ntlmssp_packet_info); - p_add_proto_data(pinfo->fd, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY, packet_ntlmssp_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY, packet_ntlmssp_info); } if (!packet_ntlmssp_info->payload_decrypted) { conversation_t *conversation; @@ -2247,7 +2247,7 @@ decrypt_verifier(tvbuff_t *tvb, int offset, guint32 encrypted_block_length, int sequence = 0; ntlmssp_packet_info *stored_packet_ntlmssp_info = NULL; - packet_ntlmssp_info = (ntlmssp_packet_info *)p_get_proto_data(pinfo->fd, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY); + packet_ntlmssp_info = (ntlmssp_packet_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY); if (packet_ntlmssp_info == NULL) { /* We don't have data for this packet */ return; @@ -2554,11 +2554,11 @@ dissect_ntlmssp_encrypted_payload(tvbuff_t *data_tvb, fprintf(stderr, "Called dissect_ntlmssp_encrypted_payload\n"); /* Check to see if we already have state for this packet */ - packet_ntlmssp_info = p_get_proto_data(pinfo->fd, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY); + packet_ntlmssp_info = p_get_proto_data(wmem_file_scope(), pinfo, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY); if (packet_ntlmssp_info == NULL) { /* We don't have any packet state, so create one */ packet_ntlmssp_info = wmem_new0(wmem_file_scope(), ntlmssp_packet_info); - p_add_proto_data(pinfo->fd, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY, packet_ntlmssp_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ntlmssp, NTLMSSP_PACKET_INFO_KEY, packet_ntlmssp_info); } if (!packet_ntlmssp_info->payload_decrypted) { diff --git a/epan/dissectors/packet-ositp.c b/epan/dissectors/packet-ositp.c index 77093a94bf..0ea9f23053 100644 --- a/epan/dissectors/packet-ositp.c +++ b/epan/dissectors/packet-ositp.c @@ -1011,12 +1011,12 @@ static int ositp_decode_DT(tvbuff_t *tvb, int offset, guint8 li, guint8 tpdu, else fragment = TRUE; is_extended = FALSE; - prev_dst_ref = (guint32 *)p_get_proto_data (pinfo->fd, proto_clnp, 0); + prev_dst_ref = (guint32 *)p_get_proto_data(wmem_file_scope(), pinfo, proto_clnp, 0); if (!prev_dst_ref) { /* First COTP in frame - save previous dst_ref as offset */ prev_dst_ref = wmem_new(wmem_file_scope(), guint32); *prev_dst_ref = cotp_dst_ref; - p_add_proto_data (pinfo->fd, proto_clnp, 0, prev_dst_ref); + p_add_proto_data(wmem_file_scope(), pinfo, proto_clnp, 0, prev_dst_ref); } else if (cotp_frame_reset) { cotp_dst_ref = *prev_dst_ref; } diff --git a/epan/dissectors/packet-p_mul.c b/epan/dissectors/packet-p_mul.c index b49009126e..b117facd57 100644 --- a/epan/dissectors/packet-p_mul.c +++ b/epan/dissectors/packet-p_mul.c @@ -437,12 +437,12 @@ static p_mul_seq_val *register_p_mul_id (packet_info *pinfo, address *addr, guin } } - pkg_list = (GHashTable *)p_get_proto_data(pinfo->fd, proto_p_mul, 0); + pkg_list = (GHashTable *)p_get_proto_data(wmem_file_scope(), pinfo, proto_p_mul, 0); if (!pkg_list) { /* Never saved list for this packet, create a new */ pkg_list = g_hash_table_new (NULL, NULL); p_mul_package_data_list = g_list_append (p_mul_package_data_list, pkg_list); - p_add_proto_data (pinfo->fd, proto_p_mul, 0, pkg_list); + p_add_proto_data(wmem_file_scope(), pinfo, proto_p_mul, 0, pkg_list); } if (!pinfo->fd->flags.visited) { diff --git a/epan/dissectors/packet-pdcp-lte.c b/epan/dissectors/packet-pdcp-lte.c index 9bb609602f..7313620d8b 100644 --- a/epan/dissectors/packet-pdcp-lte.c +++ b/epan/dissectors/packet-pdcp-lte.c @@ -928,7 +928,7 @@ static gboolean dissect_pdcp_lte_heur(tvbuff_t *tvb, packet_info *pinfo, /* If redissecting, use previous info struct (if available) */ - p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(pinfo->fd, proto_pdcp_lte, 0); + p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0); if (p_pdcp_lte_info == NULL) { /* Allocate new info struct for this frame */ p_pdcp_lte_info = wmem_new0(wmem_file_scope(), pdcp_lte_info); @@ -1020,7 +1020,7 @@ static gboolean dissect_pdcp_lte_heur(tvbuff_t *tvb, packet_info *pinfo, if (!infoAlreadySet) { /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_pdcp_lte, 0, p_pdcp_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0, p_pdcp_lte_info); } /**************************************/ @@ -1063,7 +1063,7 @@ static void dissect_pdcp_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree col_set_str(pinfo->cinfo, COL_PROTOCOL, "PDCP-LTE"); /* Look for attached packet info! */ - p_pdcp_info = (struct pdcp_lte_info *)p_get_proto_data(pinfo->fd, proto_pdcp_lte, 0); + p_pdcp_info = (struct pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0); /* Can't dissect anything without it... */ if (p_pdcp_info == NULL) { return; @@ -1071,7 +1071,7 @@ static void dissect_pdcp_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree /* Don't want to overwrite the RLC Info column if configured not to */ if ((global_pdcp_lte_layer_to_show == ShowRLCLayer) && - (p_get_proto_data(pinfo->fd, proto_rlc_lte, 0) != NULL)) { + (p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0) != NULL)) { col_set_writable(pinfo->cinfo, FALSE); } @@ -1410,13 +1410,13 @@ static void dissect_pdcp_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree case FALSE: break; case SEQUENCE_ANALYSIS_RLC_ONLY: - if ((p_get_proto_data(pinfo->fd, proto_rlc_lte, 0) != NULL) && + if ((p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0) != NULL) && !p_pdcp_info->is_retx) { do_analysis = TRUE; } break; case SEQUENCE_ANALYSIS_PDCP_ONLY: - if (p_get_proto_data(pinfo->fd, proto_rlc_lte, 0) == NULL) { + if (p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0) == NULL) { do_analysis = TRUE; } break; diff --git a/epan/dissectors/packet-pop.c b/epan/dissectors/packet-pop.c index f0b74a4033..46c7f7febf 100644 --- a/epan/dissectors/packet-pop.c +++ b/epan/dissectors/packet-pop.c @@ -143,7 +143,7 @@ dissect_pop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "POP"); - frame_data_p = (struct pop_proto_data *)p_get_proto_data(pinfo->fd, proto_pop, 0); + frame_data_p = (struct pop_proto_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_pop, 0); conversation = find_or_create_conversation(pinfo); data_val = (struct pop_data_val *)conversation_get_proto_data(conversation, proto_pop); @@ -226,7 +226,7 @@ dissect_pop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) frame_data_p->conversation_id = conversation->index; frame_data_p->more_frags = data_val->msg_read_len < data_val->msg_tot_len; - p_add_proto_data(pinfo->fd, proto_pop, 0, frame_data_p); + p_add_proto_data(wmem_file_scope(), pinfo, proto_pop, 0, frame_data_p); } frag_msg = fragment_add_seq_next(&pop_data_reassembly_table, tvb, 0, diff --git a/epan/dissectors/packet-rdt.c b/epan/dissectors/packet-rdt.c index 0f0559bb70..1a5fd94b83 100644 --- a/epan/dissectors/packet-rdt.c +++ b/epan/dissectors/packet-rdt.c @@ -1233,7 +1233,7 @@ static void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) struct _rdt_conversation_info *p_conv_data; /* Use existing packet info if available */ - p_conv_data = (struct _rdt_conversation_info *)p_get_proto_data(pinfo->fd, proto_rdt, 0); + p_conv_data = (struct _rdt_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rdt, 0); if (!p_conv_data) { @@ -1254,7 +1254,7 @@ static void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) g_strlcpy(p_conv_packet_data->method, p_conv_data->method, MAX_RDT_SETUP_METHOD_SIZE); p_conv_packet_data->frame_number = p_conv_data->frame_number; p_conv_packet_data->feature_level = p_conv_data->feature_level; - p_add_proto_data(pinfo->fd, proto_rdt, 0, p_conv_packet_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rdt, 0, p_conv_packet_data); } } } diff --git a/epan/dissectors/packet-rlc-lte.c b/epan/dissectors/packet-rlc-lte.c index d740fa735d..ab0c6ed003 100644 --- a/epan/dissectors/packet-rlc-lte.c +++ b/epan/dissectors/packet-rlc-lte.c @@ -790,11 +790,11 @@ static void show_PDU_in_tree(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb } /* Reuse or allocate struct */ - p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(pinfo->fd, proto_pdcp_lte, 0); + p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0); if (p_pdcp_lte_info == NULL) { p_pdcp_lte_info = wmem_new0(wmem_file_scope(), pdcp_lte_info); /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_pdcp_lte, 0, p_pdcp_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0, p_pdcp_lte_info); } p_pdcp_lte_info->ueid = rlc_info->ueid; @@ -2156,9 +2156,9 @@ static void dissect_rlc_lte_um(tvbuff_t *tvb, packet_info *pinfo, /* Call sequence analysis function now */ if (((global_rlc_lte_um_sequence_analysis == SEQUENCE_ANALYSIS_MAC_ONLY) && - (p_get_proto_data(pinfo->fd, proto_mac_lte, 0) != NULL)) || + (p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0) != NULL)) || ((global_rlc_lte_um_sequence_analysis == SEQUENCE_ANALYSIS_RLC_ONLY) && - (p_get_proto_data(pinfo->fd, proto_mac_lte, 0) == NULL))) { + (p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0) == NULL))) { guint16 lastSegmentOffset = offset; if (s_number_of_extensions >= 1) { @@ -2379,9 +2379,9 @@ static void dissect_rlc_lte_am_status_pdu(tvbuff_t *tvb, /* Repeated NACK analysis & check ACK-SN is in range */ if (((global_rlc_lte_am_sequence_analysis == SEQUENCE_ANALYSIS_MAC_ONLY) && - (p_get_proto_data(pinfo->fd, proto_mac_lte, 0) != NULL)) || + (p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0) != NULL)) || ((global_rlc_lte_am_sequence_analysis == SEQUENCE_ANALYSIS_RLC_ONLY) && - (p_get_proto_data(pinfo->fd, proto_mac_lte, 0) == NULL))) { + (p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0) == NULL))) { if (!is_mac_lte_frame_retx(pinfo, p_rlc_lte_info->direction)) { checkChannelRepeatedNACKInfo(pinfo, p_rlc_lte_info, tap_info, tree, tvb); @@ -2543,9 +2543,9 @@ static void dissect_rlc_lte_am(tvbuff_t *tvb, packet_info *pinfo, /* Call sequence analysis function now */ if (((global_rlc_lte_am_sequence_analysis == SEQUENCE_ANALYSIS_MAC_ONLY) && - (p_get_proto_data(pinfo->fd, proto_mac_lte, 0) != NULL)) || + (p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0) != NULL)) || ((global_rlc_lte_am_sequence_analysis == SEQUENCE_ANALYSIS_RLC_ONLY) && - (p_get_proto_data(pinfo->fd, proto_mac_lte, 0) == NULL))) { + (p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0) == NULL))) { guint16 firstSegmentLength; guint16 lastSegmentOffset = offset; @@ -2660,7 +2660,7 @@ static gboolean dissect_rlc_lte_heur(tvbuff_t *tvb, packet_info *pinfo, /* If redissecting, use previous info struct (if available) */ - p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(pinfo->fd, proto_rlc_lte, 0); + p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0); if (p_rlc_lte_info == NULL) { /* Allocate new info struct for this frame */ p_rlc_lte_info = wmem_new0(wmem_file_scope(), struct rlc_lte_info); @@ -2723,7 +2723,7 @@ static gboolean dissect_rlc_lte_heur(tvbuff_t *tvb, packet_info *pinfo, if (!infoAlreadySet) { /* Store info in packet */ - p_add_proto_data(pinfo->fd, proto_rlc_lte, 0, p_rlc_lte_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0, p_rlc_lte_info); } /**************************************/ @@ -2769,7 +2769,7 @@ static void dissect_rlc_lte_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree /* Look for packet info! */ - p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(pinfo->fd, proto_rlc_lte, 0); + p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0); /* Can't dissect anything without it... */ if (p_rlc_lte_info == NULL) { @@ -2867,7 +2867,7 @@ static void dissect_rlc_lte_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree tap_info->channelId = p_rlc_lte_info->channelId; tap_info->pduLength = p_rlc_lte_info->pduLength; tap_info->UMSequenceNumberLength = p_rlc_lte_info->UMSequenceNumberLength; - tap_info->loggedInMACFrame = (p_get_proto_data(pinfo->fd, proto_mac_lte, 0) != NULL); + tap_info->loggedInMACFrame = (p_get_proto_data(wmem_file_scope(), pinfo, proto_mac_lte, 0) != NULL); tap_info->time = pinfo->fd->abs_ts; diff --git a/epan/dissectors/packet-rlc.c b/epan/dissectors/packet-rlc.c index 122e1744a6..6244908d23 100644 --- a/epan/dissectors/packet-rlc.c +++ b/epan/dissectors/packet-rlc.c @@ -356,8 +356,8 @@ rlc_channel_assign(struct rlc_channel *ch, enum rlc_mode mode, packet_info *pinf fp_info *fpinf; atm = &pinfo->pseudo_header->atm; - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (!fpinf || !rlcinf) return -1; if (rlcinf->urnti[fpinf->cur_tb]) { @@ -1324,11 +1324,11 @@ rlc_call_subdissector(enum rlc_channel_type channel, tvbuff_t *tvb, if (msgtype != RRC_MESSAGE_TYPE_INVALID) { struct rrc_info *rrcinf; fp_info *fpinf; - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rrcinf = (rrc_info *)p_get_proto_data(pinfo->fd, proto_rrc, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rrc, 0); if (!rrcinf) { rrcinf = (rrc_info *)wmem_alloc0(wmem_file_scope(), sizeof(struct rrc_info)); - p_add_proto_data(pinfo->fd, proto_rrc, 0, rrcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rrc, 0, rrcinf); } rrcinf->msgtype[fpinf->cur_tb] = msgtype; call_dissector(rrc_handle, tvb, pinfo, tree); @@ -1590,8 +1590,8 @@ dissect_rlc_tm(enum rlc_channel_type channel, tvbuff_t *tvb, packet_info *pinfo, fp_info *fpinf; rlc_info *rlcinf; - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (tree) { if (fpinf && rlcinf) { @@ -1827,8 +1827,8 @@ dissect_rlc_um(enum rlc_channel_type channel, tvbuff_t *tvb, packet_info *pinfo, next_byte = tvb_get_guint8(tvb, offs++); seq = next_byte >> 1; - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (tree) { if (fpinf && rlcinf) { @@ -2221,8 +2221,8 @@ dissect_rlc_am(enum rlc_channel_type channel, tvbuff_t *tvb, packet_info *pinfo, proto_item *truncated_ti, *ti; guint64 polling; - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); next_byte = tvb_get_guint8(tvb, offs++); dc = next_byte >> 7; @@ -2353,7 +2353,7 @@ dissect_rlc_bcch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "RLC"); col_clear(pinfo->cinfo, COL_INFO); - fpi = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + fpi = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); if (!fpi) return; /* dissection failure */ if (tree) { @@ -2374,7 +2374,7 @@ dissect_rlc_ccch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "RLC"); col_clear(pinfo->cinfo, COL_INFO); - fpi = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + fpi = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); if (!fpi) return; /* dissection failure */ if (tree) { @@ -2404,7 +2404,7 @@ dissect_rlc_ctch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "RLC"); col_clear(pinfo->cinfo, COL_INFO); - fpi = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + fpi = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); if (!fpi) return; /* dissection failure */ if (tree) { @@ -2429,8 +2429,8 @@ dissect_rlc_dcch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "RLC"); col_clear(pinfo->cinfo, COL_INFO); - fpi = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlci = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + fpi = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlci = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (!fpi || !rlci){ ti = proto_tree_add_text(tree, tvb, 0, -1, @@ -2469,8 +2469,8 @@ dissect_rlc_ps_dtch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "RLC"); col_clear(pinfo->cinfo, COL_INFO); - fpi = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlci = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + fpi = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlci = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (!fpi || !rlci) { ti = proto_tree_add_text(tree, tvb, 0, -1, @@ -2511,8 +2511,8 @@ dissect_rlc_dch_unknown(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "RLC"); col_clear(pinfo->cinfo, COL_INFO); - fpi = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlci = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + fpi = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlci = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (!fpi || !rlci) return; @@ -2581,14 +2581,14 @@ dissect_rlc_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data offset += (gint)strlen(RLC_START_STRING); /* If redissecting, use previous info struct (if available) */ - fpi = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + fpi = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); if (fpi == NULL) { /* Allocate new info struct for this frame */ fpi = (fp_info *)wmem_alloc0(wmem_file_scope(), sizeof(fp_info)); } else { fpInfoAlreadySet = TRUE; } - rlci = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + rlci = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (rlci == NULL) { /* Allocate new info struct for this frame */ rlci = (rlc_info *)wmem_alloc0(wmem_file_scope(), sizeof(rlc_info)); @@ -2649,10 +2649,10 @@ dissect_rlc_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data /* Store info in packet if needed */ if (!fpInfoAlreadySet) { - p_add_proto_data(pinfo->fd, proto_fp, 0, fpi); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fp, 0, fpi); } if (!rlcInfoAlreadySet) { - p_add_proto_data(pinfo->fd, proto_rlc, 0, rlci); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, rlci); } /**************************************/ @@ -2717,8 +2717,8 @@ rlc_is_ciphered(packet_info * pinfo){ return global_rlc_ciphered; } - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); return ((rlcinf && fpinf && (rlcinf->ciphered[fpinf->cur_tb] == TRUE) && (rlcinf->deciphered[fpinf->cur_tb] == FALSE)) || global_rlc_ciphered); diff --git a/epan/dissectors/packet-rmt-fec.c b/epan/dissectors/packet-rmt-fec.c index 8ef3904203..a572349e3b 100644 --- a/epan/dissectors/packet-rmt-fec.c +++ b/epan/dissectors/packet-rmt-fec.c @@ -123,7 +123,7 @@ void fec_decode_ext_fti(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int fec_data = wmem_new0(wmem_file_scope(), fec_packet_data_t); fec_data->instance_id = instance_id; - p_add_proto_data(pinfo->fd, proto_rmt_fec, 0, fec_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rmt_fec, 0, fec_data); } if (encoding_id == 6){ @@ -194,7 +194,7 @@ dissect_fec(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) guint offset = 0; fec_data_exchange_t* fec = (fec_data_exchange_t*)data; guint8 encoding_id = 0; - fec_packet_data_t* packet_data = (fec_packet_data_t*)p_get_proto_data(pinfo->fd, proto_rmt_fec, 0); + fec_packet_data_t* packet_data = (fec_packet_data_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_rmt_fec, 0); if (fec != NULL) { diff --git a/epan/dissectors/packet-rmt-norm.c b/epan/dissectors/packet-rmt-norm.c index 0567191fe1..c74a48a854 100644 --- a/epan/dissectors/packet-rmt-norm.c +++ b/epan/dissectors/packet-rmt-norm.c @@ -255,7 +255,7 @@ static guint dissect_feccode(proto_tree *tree, tvbuff_t *tvb, guint offset, norm_data = wmem_new0(wmem_file_scope(), norm_packet_data_t); norm_data->encoding_id = encoding_id; - p_add_proto_data(pinfo->fd, proto_rmt_norm, 0, norm_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rmt_norm, 0, norm_data); proto_tree_add_item(tree, hf_fec_encoding_id, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; if (reserved) { @@ -283,7 +283,7 @@ static guint dissect_norm_hdrext(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, guint offset, guint8 hlen) { lct_data_exchange_t data_exchange; - norm_packet_data_t* packet_data = (norm_packet_data_t*)p_get_proto_data(pinfo->fd, proto_rmt_norm, 0); + norm_packet_data_t* packet_data = (norm_packet_data_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_rmt_norm, 0); memset(&data_exchange, 0, sizeof(data_exchange)); @@ -386,7 +386,7 @@ static void dissect_norm_info(proto_tree *tree, packet_info *pinfo, tvbuff_t *tv norm_data = wmem_new0(wmem_file_scope(), norm_packet_data_t); norm_data->encoding_id = tvb_get_guint8(tvb, offset); - p_add_proto_data(pinfo->fd, proto_rmt_norm, 0, norm_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rmt_norm, 0, norm_data); proto_tree_add_item(tree, hf_fec_encoding_id, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; proto_tree_add_item(tree, hf_object_transport_id, tvb, offset, 2, ENC_BIG_ENDIAN); offset+=2; diff --git a/epan/dissectors/packet-rohc.c b/epan/dissectors/packet-rohc.c index 3dbb7c845e..79e11e8b30 100644 --- a/epan/dissectors/packet-rohc.c +++ b/epan/dissectors/packet-rohc.c @@ -853,10 +853,10 @@ dissect_rohc_feedback_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, if (!pinfo->fd->flags.visited){ rohc_cid_context = (rohc_cid_context_t*)g_hash_table_lookup(rohc_cid_hash, GUINT_TO_POINTER(key)); if(rohc_cid_context){ - p_add_proto_data(pinfo->fd, proto_rohc, 0, rohc_cid_context); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0, rohc_cid_context); } }else{ - rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(pinfo->fd, proto_rohc, 0); + rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0); } if(!rohc_cid_context){ @@ -1878,7 +1878,7 @@ dissect_rohc_ir_packet(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, rohc_cid_context->large_cid_present = p_rohc_info->large_cid_present; g_hash_table_replace(rohc_cid_hash, GUINT_TO_POINTER(key), rohc_cid_context); - p_add_proto_data(pinfo->fd, proto_rohc, 0, rohc_cid_context); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0, rohc_cid_context); }else{ rohc_cid_context = wmem_new(wmem_file_scope(), rohc_cid_context_t); rohc_cid_context->large_cid_present = p_rohc_info->large_cid_present; @@ -1895,11 +1895,11 @@ dissect_rohc_ir_packet(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, /*g_warning("IR pkt New CID %u",cid);*/ g_hash_table_insert(rohc_cid_hash, GUINT_TO_POINTER(key), rohc_cid_context); - p_add_proto_data(pinfo->fd, proto_rohc, 0, rohc_cid_context); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0, rohc_cid_context); } }else{ /* get the stored data */ - rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(pinfo->fd, proto_rohc, 0); + rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0); } switch(profile){ @@ -1999,7 +1999,7 @@ dissect_rohc_ir_dyn_packet(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, rohc_cid_context->large_cid_present = p_rohc_info->large_cid_present; g_hash_table_replace(rohc_cid_hash, GUINT_TO_POINTER(key), rohc_cid_context); - p_add_proto_data(pinfo->fd, proto_rohc, 0, rohc_cid_context); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0, rohc_cid_context); }else{ rohc_cid_context = wmem_new(wmem_file_scope(), rohc_cid_context_t); /*rohc_cid_context->rohc_ip_version;*/ @@ -2016,11 +2016,11 @@ dissect_rohc_ir_dyn_packet(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, /*g_warning("IR pkt New CID %u",cid);*/ g_hash_table_insert(rohc_cid_hash, GUINT_TO_POINTER(key), rohc_cid_context); - p_add_proto_data(pinfo->fd, proto_rohc, 0, rohc_cid_context); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0, rohc_cid_context); } }else{ /* get the stored data */ - rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(pinfo->fd, proto_rohc, 0); + rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0); } proto_tree_add_item(ir_tree, hf_rohc_crc, tvb, offset, 1, ENC_BIG_ENDIAN); @@ -2092,7 +2092,7 @@ dissect_rohc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) item = proto_tree_add_text(rohc_tree, tvb, offset, 0, "Global Configuration: (%s)", p_rohc_info->large_cid_present ? "Large CID" : "Small CID"); conf_tree = proto_item_add_subtree(item, ett_rohc_conf); PROTO_ITEM_SET_GENERATED(item); - rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(pinfo->fd, proto_rohc, 0); + rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0); if(rohc_cid_context){ /* Do we have info from an IR frame? */ if(rohc_cid_context->ir_frame_number>0){ @@ -2275,9 +2275,9 @@ start_over: rohc_cid_context->ir_frame_number = -1; /*g_warning("Store dummy data %u",cid);*/ } - p_add_proto_data(pinfo->fd, proto_rohc, 0, rohc_cid_context); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0, rohc_cid_context); } else { - rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(pinfo->fd, proto_rohc, 0); + rohc_cid_context = (rohc_cid_context_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_rohc, 0); } /* Call IP for uncompressed*/ diff --git a/epan/dissectors/packet-rrc.c b/epan/dissectors/packet-rrc.c index c77cea5565..6ef8be1413 100644 --- a/epan/dissectors/packet-rrc.c +++ b/epan/dissectors/packet-rrc.c @@ -16436,7 +16436,7 @@ dissect_rrc_RB_ActivationTimeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t - fpinf = (fp_info *)p_get_proto_data(actx->pinfo->fd, proto_fp, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_rrc_RB_ActivationTimeInfo, RB_ActivationTimeInfo_sequence); @@ -20523,10 +20523,10 @@ dissect_rrc_H_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot #line 792 "../../asn1/rrc/rrc.cnf" - rrcinf = (struct rrc_info *)p_get_proto_data(actx->pinfo->fd, proto_rrc, 0); + rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); if (!rrcinf) { rrcinf = wmem_new0(wmem_file_scope(), struct rrc_info); - p_add_proto_data(actx->pinfo->fd, proto_rrc, 0, rrcinf); + p_add_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0, rrcinf); } rrcinf->hrnti[actx->pinfo->fd->subnum] = tvb_get_ntohs(hrnti_tvb, 0); @@ -41410,7 +41410,7 @@ dissect_rrc_DL_TransportChannelType_r5(tvbuff_t *tvb _U_, int offset _U_, asn1_c num_chans_per_flow[flowd]++; if(num_chans_per_flow[flowd] > 1 ){ - rrcinf = (rrc_info *)p_get_proto_data(actx->pinfo->fd, proto_rrc, 0); + rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); if((rrcinf == NULL) || (rrcinf->hrnti[actx->pinfo->fd->subnum] == 0)){ expert_add_info(actx->pinfo, actx->created_item, &ei_rrc_no_hrnti); } @@ -44885,7 +44885,7 @@ dissect_rrc_DL_TransportChannelType_r7(tvbuff_t *tvb _U_, int offset _U_, asn1_c if(num_chans_per_flow[flowd] > 1 ){ - rrcinf = (rrc_info *)p_get_proto_data(actx->pinfo->fd, proto_rrc, 0); + rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rrc, 0); if((rrcinf == NULL) || (rrcinf->hrnti[actx->pinfo->fd->subnum] == 0)){ expert_add_info(actx->pinfo, actx->created_item, &ei_rrc_no_hrnti); } @@ -87528,7 +87528,7 @@ dissect_rrc_START_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, /*We base this map on communication context from fp*/ - fpinf = (fp_info *)p_get_proto_data(actx->pinfo->fd, proto_fp, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); /*If no info found, skip all this*/ if(fpinf == NULL){ @@ -97699,7 +97699,7 @@ fp_info *fpinf ; ett_rrc_SecurityModeComplete, SecurityModeComplete_sequence); - fpinf = (fp_info *)p_get_proto_data(actx->pinfo->fd, proto_fp, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0); if(fpinf && ((c_inf = (rrc_ciphering_info *)g_tree_lookup(rrc_ciph_inf, GINT_TO_POINTER(fpinf->com_context_id))) != NULL) ){ c_inf->setup_frame = actx->pinfo->fd->num; } @@ -143569,7 +143569,7 @@ dissect_rrc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) struct rrc_info *rrcinf; top_tree = tree; - rrcinf = (struct rrc_info *)p_get_proto_data(pinfo->fd, proto_rrc, 0); + rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rrc, 0); /* make entry in the Protocol column on summary display */ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RRC"); diff --git a/epan/dissectors/packet-rsync.c b/epan/dissectors/packet-rsync.c index bf57b937f6..7195d242af 100644 --- a/epan/dissectors/packet-rsync.c +++ b/epan/dissectors/packet-rsync.c @@ -174,12 +174,12 @@ dissect_rsync_encap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, rsync_tree = proto_item_add_subtree(ti, ett_rsync); - rsync_frame_data_p = (struct rsync_frame_data *)p_get_proto_data(pinfo->fd, hfi_rsync->id, 0); + rsync_frame_data_p = (struct rsync_frame_data *)p_get_proto_data(wmem_file_scope(), pinfo, hfi_rsync->id, 0); if (!rsync_frame_data_p) { /* then we haven't seen this frame before */ rsync_frame_data_p = wmem_new(wmem_file_scope(), struct rsync_frame_data); rsync_frame_data_p->state = (me == SERVER) ? conversation_data->server_state : conversation_data->client_state; - p_add_proto_data(pinfo->fd, hfi_rsync->id, 0, rsync_frame_data_p); + p_add_proto_data(wmem_file_scope(), pinfo, hfi_rsync->id, 0, rsync_frame_data_p); } if (me == SERVER) { diff --git a/epan/dissectors/packet-rtcp.c b/epan/dissectors/packet-rtcp.c index 246f252f0b..d8e3b8aded 100644 --- a/epan/dissectors/packet-rtcp.c +++ b/epan/dissectors/packet-rtcp.c @@ -2501,7 +2501,7 @@ void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) struct _rtcp_conversation_info *p_conv_data; /* Use existing packet data if available */ - p_conv_data = (struct _rtcp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtcp, 0); + p_conv_data = (struct _rtcp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtcp, 0); if (!p_conv_data) { @@ -2523,7 +2523,7 @@ void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) p_conv_packet_data = (struct _rtcp_conversation_info *)wmem_memdup(wmem_file_scope(), p_conv_data, sizeof(struct _rtcp_conversation_info)); - p_add_proto_data(pinfo->fd, proto_rtcp, 0, p_conv_packet_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rtcp, 0, p_conv_packet_data); } } } @@ -2570,7 +2570,7 @@ static void remember_outgoing_sr(packet_info *pinfo, guint32 lsr) /* First of all, see if we've already stored this information for this sr */ /* Look first in packet info */ - p_packet_data = (struct _rtcp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtcp, 0); + p_packet_data = (struct _rtcp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtcp, 0); if (p_packet_data && p_packet_data->last_received_set && (p_packet_data->last_received_frame_number >= pinfo->fd->num)) { @@ -2631,7 +2631,7 @@ static void remember_outgoing_sr(packet_info *pinfo, guint32 lsr) { p_packet_data = wmem_new0(wmem_file_scope(), struct _rtcp_conversation_info); - p_add_proto_data(pinfo->fd, proto_rtcp, 0, p_packet_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rtcp, 0, p_packet_data); } /* Copy current conversation data into packet info */ @@ -2662,7 +2662,7 @@ static void calculate_roundtrip_delay(tvbuff_t *tvb, packet_info *pinfo, /*************************************************/ /* Look for previous result */ - p_packet_data = (struct _rtcp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtcp, 0); + p_packet_data = (struct _rtcp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtcp, 0); if (p_packet_data && p_packet_data->lsr_matched) { /* Show info. */ @@ -2701,7 +2701,7 @@ static void calculate_roundtrip_delay(tvbuff_t *tvb, packet_info *pinfo, p_packet_data = wmem_new0(wmem_file_scope(), struct _rtcp_conversation_info); /* Set as packet info */ - p_add_proto_data(pinfo->fd, proto_rtcp, 0, p_packet_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rtcp, 0, p_packet_data); } /* Don't allow match seemingly calculated from same (or later!) frame */ diff --git a/epan/dissectors/packet-rtp-events.c b/epan/dissectors/packet-rtp-events.c index 62f28a5312..5944a9f547 100644 --- a/epan/dissectors/packet-rtp-events.c +++ b/epan/dissectors/packet-rtp-events.c @@ -99,7 +99,7 @@ dissect_rtp_events( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ) /* get tap info */ rtp_event_info.info_rtp_evt = rtp_evt; - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_get_id_by_filter_name("rtp"), 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name("rtp"), 0); if (p_conv_data) rtp_event_info.info_setup_frame_num = p_conv_data->frame_number; else diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c index 59cbae33f2..6ac4608de4 100644 --- a/epan/dissectors/packet-rtp.c +++ b/epan/dissectors/packet-rtp.c @@ -1079,7 +1079,7 @@ process_rtp_payload(tvbuff_t *newtvb, packet_info *pinfo, proto_tree *tree, payload_len = tvb_length_remaining(newtvb, offset); /* first check if this is added as an SRTP stream - if so, don't try to dissector the payload data for now */ - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtp, 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0); if (p_conv_data && p_conv_data->srtp_info) { srtp_info = p_conv_data->srtp_info; payload_len -= srtp_info->mki_len + srtp_info->auth_tag_len; @@ -1201,7 +1201,7 @@ dissect_rtp_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 seqno; /* Retrieve RTPs idea of a converation */ - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtp, 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0); if(p_conv_data != NULL) finfo = p_conv_data->rtp_conv_info; @@ -1403,7 +1403,7 @@ dissect_rtp_rfc2198(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) gchar *payload_type_str; /* Retrieve RTPs idea of a converation */ - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtp, 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0); /* Add try to RFC 2198 data */ ti = proto_tree_add_text(tree, tvb, offset, -1, "RFC 2198: Redundant Audio Data"); @@ -1739,7 +1739,7 @@ dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_ /* Look for conv and add to the frame if found */ get_conv_info(pinfo, rtp_info); - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtp, 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0); if (p_conv_data) rtp_info->info_is_video = p_conv_data->is_video; @@ -1750,7 +1750,7 @@ dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_ col_set_str( pinfo->cinfo, COL_PROTOCOL, (is_srtp) ? "SRTP" : "RTP" ); /* check if this is added as an SRTP stream - if so, don't try to dissect the payload data for now */ - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtp, 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0); #if 0 /* XXX: srtp_offset never actually used ?? */ if (p_conv_data && p_conv_data->srtp_info) { @@ -2229,7 +2229,7 @@ get_conv_info(packet_info *pinfo, struct _rtp_info *rtp_info) struct _rtp_conversation_info *p_conv_data = NULL; /* Use existing packet info if available */ - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtp, 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0); if (!p_conv_data) { @@ -2256,7 +2256,7 @@ get_conv_info(packet_info *pinfo, struct _rtp_info *rtp_info) p_conv_packet_data->srtp_info = p_conv_data->srtp_info; p_conv_packet_data->bta2dp_info = p_conv_data->bta2dp_info; p_conv_packet_data->btvdp_info = p_conv_data->btvdp_info; - p_add_proto_data(pinfo->fd, proto_rtp, 0, p_conv_packet_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0, p_conv_packet_data); /* calculate extended sequence number */ seqno = calculate_extended_seqno(p_conv_data->extended_seqno, @@ -2281,7 +2281,7 @@ show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *ti; /* Use existing packet info if available */ - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_rtp, 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rtp, 0); if (!p_conv_data) return; diff --git a/epan/dissectors/packet-sctp.c b/epan/dissectors/packet-sctp.c index e9660b2bea..1a48f6c7b3 100644 --- a/epan/dissectors/packet-sctp.c +++ b/epan/dissectors/packet-sctp.c @@ -491,7 +491,7 @@ static void sctp_both_prompt(packet_info *pinfo _U_, gchar* result) static void sctp_ppi_prompt1(packet_info *pinfo _U_, gchar* result) { - guint32 ppid = GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_sctp, 0)); + guint32 ppid = GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_sctp, 0)); if (ppid == LAST_PPID) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "PPID (none)"); @@ -502,7 +502,7 @@ static void sctp_ppi_prompt1(packet_info *pinfo _U_, gchar* result) static void sctp_ppi_prompt2(packet_info *pinfo _U_, gchar* result) { - guint32 ppid = GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_sctp, 1)); + guint32 ppid = GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_sctp, 1)); if (ppid == LAST_PPID) { g_snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "PPID (none)"); @@ -513,12 +513,12 @@ static void sctp_ppi_prompt2(packet_info *pinfo _U_, gchar* result) static gpointer sctp_ppi_value1(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_sctp, 0); + return p_get_proto_data(pinfo->pool, pinfo, proto_sctp, 0); } static gpointer sctp_ppi_value2(packet_info *pinfo) { - return p_get_proto_data(pinfo->fd, proto_sctp, 1); + return p_get_proto_data(pinfo->pool, pinfo, proto_sctp, 1); } @@ -2863,12 +2863,12 @@ dissect_data_chunk(tvbuff_t *chunk_tvb, /* insert the PPID in the pinfo structure if it is not already there and there is still room */ for(number_of_ppid = 0; number_of_ppid < MAX_NUMBER_OF_PPIDS; number_of_ppid++) { - ppid = GPOINTER_TO_UINT(p_get_proto_data(pinfo->fd, proto_sctp, number_of_ppid)); + ppid = GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_sctp, number_of_ppid)); if ((ppid == LAST_PPID) || (ppid == payload_proto_id)) break; } if ((number_of_ppid < MAX_NUMBER_OF_PPIDS) && (ppid == LAST_PPID)) - p_add_proto_data(pinfo->fd, proto_sctp, number_of_ppid, GUINT_TO_POINTER(payload_proto_id)); + p_add_proto_data(pinfo->pool, pinfo, proto_sctp, number_of_ppid, GUINT_TO_POINTER(payload_proto_id)); e_bit = tvb_get_guint8(chunk_tvb, CHUNK_FLAGS_OFFSET) & SCTP_DATA_CHUNK_E_BIT; b_bit = tvb_get_guint8(chunk_tvb, CHUNK_FLAGS_OFFSET) & SCTP_DATA_CHUNK_B_BIT; @@ -4131,7 +4131,7 @@ dissect_sctp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) for(number_of_ppid = 0; number_of_ppid < MAX_NUMBER_OF_PPIDS; number_of_ppid++) { - p_add_proto_data(pinfo->fd, proto_sctp, number_of_ppid, GUINT_TO_POINTER(LAST_PPID)); + p_add_proto_data(pinfo->pool, pinfo, proto_sctp, number_of_ppid, GUINT_TO_POINTER(LAST_PPID)); } /* The tvb array in struct _sctp_info is huge: currently 2k pointers. diff --git a/epan/dissectors/packet-selfm.c b/epan/dissectors/packet-selfm.c index 41f1142d67..6c4ec41ce5 100644 --- a/epan/dissectors/packet-selfm.c +++ b/epan/dissectors/packet-selfm.c @@ -925,7 +925,7 @@ region_lookup(packet_info *pinfo, guint32 base_addr) fm_conversation *conv; fastser_dataregion *dataregion = NULL; - conv = (fm_conversation *)p_get_proto_data(pinfo->fd, proto_selfm, 0); + conv = (fm_conversation *)p_get_proto_data(wmem_file_scope(), pinfo, proto_selfm, 0); if (conv) { dataregion = (fastser_dataregion*)wmem_tree_lookup32(conv->fastser_dataregions, base_addr); } @@ -1140,7 +1140,7 @@ dissect_fmdata_frame(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int of /* Search for previously-encountered Configuration information to dissect the frame */ { - conv = (fm_conversation *)p_get_proto_data(pinfo->fd, proto_selfm, 0); + conv = (fm_conversation *)p_get_proto_data(wmem_file_scope(), pinfo, proto_selfm, 0); if (conv) { wmem_list_frame_t *frame = wmem_list_head(conv->fm_config_frames); @@ -1636,7 +1636,7 @@ dissect_fastser_readresp_frame(tvbuff_t *tvb, proto_tree *fastser_tree, packet_i if (payload_tvb) { /* Search for previously-encountered data format reference information to dissect the frame */ - conv = (fm_conversation *)p_get_proto_data(pinfo->fd, proto_selfm, 0); + conv = (fm_conversation *)p_get_proto_data(wmem_file_scope(), pinfo, proto_selfm, 0); if (conv) { /* Start at front of list and cycle through possible instances of multiple fastser_dataitem frames, looking for match */ @@ -2285,7 +2285,7 @@ dissect_selfm(tvbuff_t *selfm_tvb, packet_info *pinfo, proto_tree *tree, void* d conversation_add_proto_data(conversation, proto_selfm, (void *)fm_conv_data); } - p_add_proto_data(pinfo->fd, proto_selfm, 0, fm_conv_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_selfm, 0, fm_conv_data); /* 1. Configuration frames (0xA5C1, 0xA5C2, 0xA5C3) need special treatment during the first run */ /* For each Fast Meter Configuration frame (0xA5Cx), a 'fm_config_frame' struct is created to hold the */ diff --git a/epan/dissectors/packet-ses.c b/epan/dissectors/packet-ses.c index 8d00d0343b..dc7a06da9b 100644 --- a/epan/dissectors/packet-ses.c +++ b/epan/dissectors/packet-ses.c @@ -1072,12 +1072,12 @@ dissect_spdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, has_user_information = TRUE; break; case SES_MAJOR_SYNC_POINT: - pres_ctx_id = (guint32 *)p_get_proto_data (pinfo->fd, proto_ses, 0); + pres_ctx_id = (guint32 *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ses, 0); if (ses_rtse_reassemble != 0 && !pres_ctx_id) { /* First time visited - save pres_ctx_id */ pres_ctx_id = wmem_new(wmem_file_scope(), guint32); *pres_ctx_id = ses_pres_ctx_id; - p_add_proto_data (pinfo->fd, proto_ses, 0, pres_ctx_id); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ses, 0, pres_ctx_id); } if (pres_ctx_id) { session.pres_ctx_id = *pres_ctx_id; diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c index 0dfdd8cdcc..b6c74f7145 100644 --- a/epan/dissectors/packet-sip.c +++ b/epan/dissectors/packet-sip.c @@ -3641,7 +3641,7 @@ guint sip_is_packet_resend(packet_info *pinfo, /* Return any answer stored from previous dissection */ if (pinfo->fd->flags.visited) { - sip_frame_result = (sip_frame_result_value*)p_get_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num); + sip_frame_result = (sip_frame_result_value*)p_get_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num); if (sip_frame_result != NULL) { return sip_frame_result->original_frame_num; @@ -3787,11 +3787,11 @@ guint sip_is_packet_resend(packet_info *pinfo, break; } - sip_frame_result = (sip_frame_result_value *)p_get_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num); + sip_frame_result = (sip_frame_result_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num); if (sip_frame_result == NULL) { sip_frame_result = wmem_new0(wmem_file_scope(), sip_frame_result_value); - p_add_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num, sip_frame_result); + p_add_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num, sip_frame_result); } /* Store return value with this packet */ @@ -3839,7 +3839,7 @@ guint sip_find_request(packet_info *pinfo, /* Return any answer stored from previous dissection */ if (pinfo->fd->flags.visited) { - sip_frame_result = (sip_frame_result_value*)p_get_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num); + sip_frame_result = (sip_frame_result_value*)p_get_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num); if (sip_frame_result != NULL) { *response_time = sip_frame_result->response_time; @@ -3890,12 +3890,12 @@ guint sip_find_request(packet_info *pinfo, /* Store return value with this packet */ - sip_frame_result = (sip_frame_result_value *)p_get_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num); + sip_frame_result = (sip_frame_result_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num); if (sip_frame_result == NULL) { /* Allocate and set all values to zero */ sip_frame_result = wmem_new0(wmem_file_scope(), sip_frame_result_value); - p_add_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num, sip_frame_result); + p_add_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num, sip_frame_result); } sip_frame_result->response_request_frame_num = result; @@ -3953,7 +3953,7 @@ guint sip_find_invite(packet_info *pinfo, /* Return any answer stored from previous dissection */ if (pinfo->fd->flags.visited) { - sip_frame_result = (sip_frame_result_value*)p_get_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num); + sip_frame_result = (sip_frame_result_value*)p_get_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num); if (sip_frame_result != NULL) { *response_time = sip_frame_result->response_time; @@ -4009,12 +4009,12 @@ guint sip_find_invite(packet_info *pinfo, result = p_val->frame_number; /* Store return value with this packet */ - sip_frame_result = (sip_frame_result_value *)p_get_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num); + sip_frame_result = (sip_frame_result_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num); if (sip_frame_result == NULL) { /* Allocate and set all values to zero */ sip_frame_result = wmem_new0(wmem_file_scope(), sip_frame_result_value); - p_add_proto_data(pinfo->fd, proto_sip, pinfo->curr_layer_num, sip_frame_result); + p_add_proto_data(wmem_file_scope(), pinfo, proto_sip, pinfo->curr_layer_num, sip_frame_result); } sip_frame_result->response_request_frame_num = result; diff --git a/epan/dissectors/packet-smtp.c b/epan/dissectors/packet-smtp.c index 5e72370a76..8c581cf5c1 100644 --- a/epan/dissectors/packet-smtp.c +++ b/epan/dissectors/packet-smtp.c @@ -440,7 +440,7 @@ dissect_smtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* * Is there any data attached to this frame? */ - spd_frame_data = (struct smtp_proto_data *)p_get_proto_data(pinfo->fd, proto_smtp, 0); + spd_frame_data = (struct smtp_proto_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_smtp, 0); if (!spd_frame_data) { @@ -457,7 +457,7 @@ dissect_smtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) spd_frame_data->conversation_id = conversation->index; spd_frame_data->more_frags = TRUE; - p_add_proto_data(pinfo->fd, proto_smtp, 0, spd_frame_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_smtp, 0, spd_frame_data); } diff --git a/epan/dissectors/packet-socks.c b/epan/dissectors/packet-socks.c index 60b0576cec..028a3244b8 100644 --- a/epan/dissectors/packet-socks.c +++ b/epan/dissectors/packet-socks.c @@ -398,7 +398,7 @@ new_udp_conversation( socks_hash_entry_t *hash_info, packet_info *pinfo){ static void save_client_state(packet_info *pinfo, enum ClientState state) { - sock_state_t* state_info = (sock_state_t *)p_get_proto_data(pinfo->fd, proto_socks, 0); + sock_state_t* state_info = (sock_state_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_socks, 0); if ((state_info != NULL) && (state_info->client == clientNoInit)) { state_info->client = state; } @@ -407,7 +407,7 @@ save_client_state(packet_info *pinfo, enum ClientState state) static void save_server_state(packet_info *pinfo, enum ServerState state) { - sock_state_t* state_info = (sock_state_t *)p_get_proto_data(pinfo->fd, proto_socks, 0); + sock_state_t* state_info = (sock_state_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_socks, 0); if ((state_info != NULL) && (state_info->server == serverNoInit)) { state_info->server = state; } @@ -994,14 +994,14 @@ dissect_socks(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { guint8 version; struct tcpinfo *tcpinfo = (struct tcpinfo*)data; - state_info = (sock_state_t *)p_get_proto_data(pinfo->fd, proto_socks, 0); + state_info = (sock_state_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_socks, 0); if (state_info == NULL) { state_info = wmem_new(wmem_file_scope(), sock_state_t); state_info->in_socks_dissector_flag = 0; state_info->client = clientNoInit; state_info->server = serverNoInit; - p_add_proto_data(pinfo->fd, proto_socks, 0, state_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_socks, 0, state_info); } /* avoid recursive overflow */ diff --git a/epan/dissectors/packet-soupbintcp.c b/epan/dissectors/packet-soupbintcp.c index d5f7af625b..8635df66b3 100644 --- a/epan/dissectors/packet-soupbintcp.c +++ b/epan/dissectors/packet-soupbintcp.c @@ -278,12 +278,10 @@ dissect_soupbintcp_common( wmem_file_scope(), sizeof(struct pdu_data)); pdu_data->seq_num = this_seq; - p_add_proto_data(pinfo->fd, proto_soupbintcp, 0, pdu_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_soupbintcp, 0, pdu_data); } } else { - pdu_data = (struct pdu_data *)p_get_proto_data( - pinfo->fd, - proto_soupbintcp, 0); + pdu_data = (struct pdu_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_soupbintcp, 0); if (pdu_data) { this_seq = pdu_data->seq_num; } else { diff --git a/epan/dissectors/packet-spice.c b/epan/dissectors/packet-spice.c index 50c8c021f8..a89e40e626 100644 --- a/epan/dissectors/packet-spice.c +++ b/epan/dissectors/packet-spice.c @@ -3072,11 +3072,11 @@ dissect_spice(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U conversation_set_dissector(conversation, spice_handle); } - per_packet_info = (spice_packet_t *)p_get_proto_data(pinfo->fd, proto_spice, 0); + per_packet_info = (spice_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_spice, 0); if (!per_packet_info) { per_packet_info = wmem_new(wmem_file_scope(), spice_packet_t); per_packet_info->state = spice_info->next_state; - p_add_proto_data(pinfo->fd, proto_spice, 0, per_packet_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_spice, 0, per_packet_info); } col_set_str(pinfo->cinfo, COL_PROTOCOL, "Spice"); diff --git a/epan/dissectors/packet-spnego.c b/epan/dissectors/packet-spnego.c index 012705f9cf..865c6a4ba4 100644 --- a/epan/dissectors/packet-spnego.c +++ b/epan/dissectors/packet-spnego.c @@ -1741,7 +1741,7 @@ dissect_spnego(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) * It has to be per-frame as there can be more than one GSS-API * negotiation in a conversation. */ - next_level_value = (gssapi_oid_value *)p_get_proto_data(pinfo->fd, proto_spnego, 0); + next_level_value = (gssapi_oid_value *)p_get_proto_data(wmem_file_scope(), pinfo, proto_spnego, 0); if (!next_level_value && !pinfo->fd->flags.visited) { /* * No handle attached to this frame, but it's the first @@ -1757,7 +1757,7 @@ dissect_spnego(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) next_level_value = (gssapi_oid_value *)conversation_get_proto_data(conversation, proto_spnego); if (next_level_value) - p_add_proto_data(pinfo->fd, proto_spnego, 0, next_level_value); + p_add_proto_data(wmem_file_scope(), pinfo, proto_spnego, 0, next_level_value); } } diff --git a/epan/dissectors/packet-sscop.c b/epan/dissectors/packet-sscop.c index 0d8b7b2a12..66ed9518ef 100644 --- a/epan/dissectors/packet-sscop.c +++ b/epan/dissectors/packet-sscop.c @@ -338,7 +338,7 @@ static void dissect_sscop(tvbuff_t* tvb, packet_info* pinfo,proto_tree* tree) dissector_handle_t subdissector; /* Look for packet info for subdissector information */ - p_sscop_info = (struct _sscop_payload_info *)p_get_proto_data(pinfo->fd, proto_sscop, 0); + p_sscop_info = (struct _sscop_payload_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_sscop, 0); if ( p_sscop_info && ( subdissector = p_sscop_info->subdissector ) diff --git a/epan/dissectors/packet-ssl-utils.c b/epan/dissectors/packet-ssl-utils.c index 4b2b1b50f6..50d1e0fefb 100644 --- a/epan/dissectors/packet-ssl-utils.c +++ b/epan/dissectors/packet-ssl-utils.c @@ -3723,11 +3723,11 @@ ssl_add_record_info(gint proto, packet_info *pinfo, guchar* data, gint data_len, SslRecordInfo* rec; SslPacketInfo* pi; - pi = (SslPacketInfo *)p_get_proto_data(pinfo->fd, proto, 0); + pi = (SslPacketInfo *)p_get_proto_data(wmem_file_scope(), pinfo, proto, 0); if (!pi) { pi = (SslPacketInfo *)wmem_alloc0(wmem_file_scope(), sizeof(SslPacketInfo)); - p_add_proto_data(pinfo->fd, proto, 0, pi); + p_add_proto_data(wmem_file_scope(), pinfo, proto, 0, pi); } real_data = (guchar *)wmem_alloc(wmem_file_scope(), data_len); @@ -3749,7 +3749,7 @@ ssl_get_record_info(tvbuff_t *parent_tvb, int proto, packet_info *pinfo, gint re { SslRecordInfo* rec; SslPacketInfo* pi; - pi = (SslPacketInfo *)p_get_proto_data(pinfo->fd, proto, 0); + pi = (SslPacketInfo *)p_get_proto_data(wmem_file_scope(), pinfo, proto, 0); if (!pi) return NULL; @@ -3768,11 +3768,11 @@ ssl_add_data_info(gint proto, packet_info *pinfo, guchar* data, gint data_len, g SslDataInfo *rec, **prec; SslPacketInfo *pi; - pi = (SslPacketInfo *)p_get_proto_data(pinfo->fd, proto, 0); + pi = (SslPacketInfo *)p_get_proto_data(wmem_file_scope(), pinfo, proto, 0); if (!pi) { pi = (SslPacketInfo *)wmem_alloc0(wmem_file_scope(), sizeof(SslPacketInfo)); - p_add_proto_data(pinfo->fd, proto, 0, pi); + p_add_proto_data(wmem_file_scope(), pinfo, proto, 0, pi); } rec = (SslDataInfo *)wmem_alloc(wmem_file_scope(), sizeof(SslDataInfo)+data_len); @@ -3803,7 +3803,7 @@ ssl_get_data_info(int proto, packet_info *pinfo, gint key) { SslDataInfo* rec; SslPacketInfo* pi; - pi = (SslPacketInfo *)p_get_proto_data(pinfo->fd, proto, 0); + pi = (SslPacketInfo *)p_get_proto_data(wmem_file_scope(), pinfo, proto, 0); if (!pi) return NULL; diff --git a/epan/dissectors/packet-synphasor.c b/epan/dissectors/packet-synphasor.c index a7b58c8592..eda6823a2d 100644 --- a/epan/dissectors/packet-synphasor.c +++ b/epan/dissectors/packet-synphasor.c @@ -533,7 +533,7 @@ static int dissect_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v if (conversation) { config_frame *conf = (config_frame *)conversation_get_proto_data(conversation, proto_synphasor); /* no problem if 'conf' is NULL, the DATA frame dissector checks this again */ - p_add_proto_data(pinfo->fd, proto_synphasor, 0, conf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_synphasor, 0, conf); } } } /* if (!visited) */ @@ -794,7 +794,7 @@ static int dissect_data_frame(tvbuff_t *tvb, /* search for configuration information to dissect the frame */ { gboolean config_found = FALSE; - conf = (config_frame *)p_get_proto_data(pinfo->fd, proto_synphasor, 0); + conf = (config_frame *)p_get_proto_data(wmem_file_scope(), pinfo, proto_synphasor, 0); if (conf) { /* check if the size of the current frame is the diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c index 33927e0893..ee39b4f1f7 100644 --- a/epan/dissectors/packet-t38.c +++ b/epan/dissectors/packet-t38.c @@ -1014,7 +1014,7 @@ init_t38_info_conv(packet_info *pinfo) p_t38_conv = NULL; /* Use existing packet info if available */ - p_t38_packet_conv = (t38_conv *)p_get_proto_data(pinfo->fd, proto_t38, 0); + p_t38_packet_conv = (t38_conv *)p_get_proto_data(wmem_file_scope(), pinfo, proto_t38, 0); /* find the conversation used for Reassemble and Setup Info */ @@ -1071,7 +1071,7 @@ init_t38_info_conv(packet_info *pinfo) memcpy(&(p_t38_packet_conv->src_t38_info), &(p_t38_conv->src_t38_info), sizeof(t38_conv_info)); memcpy(&(p_t38_packet_conv->dst_t38_info), &(p_t38_conv->dst_t38_info), sizeof(t38_conv_info)); - p_add_proto_data(pinfo->fd, proto_t38, 0, p_t38_packet_conv); + p_add_proto_data(wmem_file_scope(), pinfo, proto_t38, 0, p_t38_packet_conv); } if (ADDRESSES_EQUAL(&p_conv->key_ptr->addr1, &pinfo->net_src)) { diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c index 97a71d9d8e..5c0873f837 100644 --- a/epan/dissectors/packet-tcp.c +++ b/epan/dissectors/packet-tcp.c @@ -642,7 +642,7 @@ tcp_calculate_timestamps(packet_info *pinfo, struct tcp_analysis *tcpd, { if( !tcppd ) { tcppd = wmem_new(wmem_file_scope(), struct tcp_per_packet_data_t); - p_add_proto_data(pinfo->fd, proto_tcp, 0, tcppd); + p_add_proto_data(wmem_file_scope(), pinfo, proto_tcp, 0, tcppd); } if (!tcpd) @@ -674,7 +674,7 @@ tcp_print_timestamps(packet_info *pinfo, tvbuff_t *tvb, proto_tree *parent_tree, PROTO_ITEM_SET_GENERATED(item); if( !tcppd ) - tcppd = (struct tcp_per_packet_data_t *)p_get_proto_data(pinfo->fd, proto_tcp, 0); + tcppd = (struct tcp_per_packet_data_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_tcp, 0); if( tcppd ) { item = proto_tree_add_time(tree, hf_tcp_ts_delta, tvb, 0, 0, @@ -4174,7 +4174,7 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* Do we need to calculate timestamps relative to the tcp-stream? */ if (tcp_calculate_ts) { - tcppd = (struct tcp_per_packet_data_t *)p_get_proto_data(pinfo->fd, proto_tcp, 0); + tcppd = (struct tcp_per_packet_data_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_tcp, 0); /* * Calculate the timestamps relative to this conversation (but only on the diff --git a/epan/dissectors/packet-teamspeak2.c b/epan/dissectors/packet-teamspeak2.c index 7f9a86e8a4..c37f03bf78 100644 --- a/epan/dissectors/packet-teamspeak2.c +++ b/epan/dissectors/packet-teamspeak2.c @@ -391,7 +391,7 @@ static void ts2_standard_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree * /* XXX: Following fragmentation stuff should be separate from the GUI stuff ?? */ /* Get our stored fragmentation data or create one! */ - if ( ! ( frag = (ts2_frag *)p_get_proto_data(pinfo->fd, proto_ts2, 0) ) ) { + if ( ! ( frag = (ts2_frag *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ts2, 0) ) ) { frag = wmem_new(wmem_file_scope(), ts2_frag); frag->frag_num=0; } @@ -415,11 +415,11 @@ static void ts2_standard_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree * frag->frag_size=conversation_data->client_frag_size; } frag->outoforder=outoforder; - p_add_proto_data(pinfo->fd, proto_ts2, 0, frag); + p_add_proto_data(wmem_file_scope(), pinfo, proto_ts2, 0, frag); } /* Get our stored fragmentation data */ - frag = (ts2_frag *)p_get_proto_data(pinfo->fd, proto_ts2, 0); + frag = (ts2_frag *)p_get_proto_data(wmem_file_scope(), pinfo, proto_ts2, 0); proto_tree_add_item(ts2_tree, hf_ts2_resend_count, tvb, 16, 2, ENC_LITTLE_ENDIAN); proto_tree_add_item(ts2_tree, hf_ts2_fragmentnumber, tvb, 18, 2, ENC_LITTLE_ENDIAN); diff --git a/epan/dissectors/packet-udp.c b/epan/dissectors/packet-udp.c index 2eb235a614..6d2f944211 100644 --- a/epan/dissectors/packet-udp.c +++ b/epan/dissectors/packet-udp.c @@ -317,7 +317,7 @@ decode_udp_ports(tvbuff_t *tvb, int offset, packet_info *pinfo, gboolean prev_heur_found = FALSE; if (pinfo->fd->flags.visited) { - udp_p_info = (udp_p_info_t*)p_get_proto_data(pinfo->fd, hfi_udp->id, pinfo->curr_layer_num); + udp_p_info = (udp_p_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, hfi_udp->id, pinfo->curr_layer_num); if (udp_p_info) { prev_heur_found = udp_p_info->found_heuristic; } @@ -363,7 +363,7 @@ decode_udp_ports(tvbuff_t *tvb, int offset, packet_info *pinfo, if (!udp_p_info) { udp_p_info = wmem_new0(wmem_file_scope(), udp_p_info_t); udp_p_info->found_heuristic = TRUE; - p_add_proto_data(pinfo->fd, hfi_udp->id, curr_layer_num, udp_p_info); + p_add_proto_data(wmem_file_scope(), pinfo, hfi_udp->id, curr_layer_num, udp_p_info); } return; } @@ -407,7 +407,7 @@ decode_udp_ports(tvbuff_t *tvb, int offset, packet_info *pinfo, if (!udp_p_info) { udp_p_info = wmem_new0(wmem_file_scope(), udp_p_info_t); udp_p_info->found_heuristic = TRUE; - p_add_proto_data(pinfo->fd, hfi_udp->id, curr_layer_num, udp_p_info); + p_add_proto_data(wmem_file_scope(), pinfo, hfi_udp->id, curr_layer_num, udp_p_info); } return; } diff --git a/epan/dissectors/packet-umts_fp.c b/epan/dissectors/packet-umts_fp.c index 314741db3a..ac499fad2f 100644 --- a/epan/dissectors/packet-umts_fp.c +++ b/epan/dissectors/packet-umts_fp.c @@ -2696,7 +2696,7 @@ dissect_e_dch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, umts_mac_info *macinf; bit_offset = 0; - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); /* Add subframe subtree */ subframe_ti = proto_tree_add_string_format(tree, hf_fp_edch_subframe, tvb, offset, 0, "", "Subframe %u data", subframes[n].subframe_number); @@ -3019,7 +3019,7 @@ dissect_e_dch_t2_or_common_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto /* Call MAC for this PDU if configured to */ if (preferences_call_mac_dissectors) { - p_add_proto_data(pinfo->fd, proto_umts_mac, 0, mac_is_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0, mac_is_info); call_dissector(mac_fdd_edch_type2_handle, tvb_new_subset_remaining(tvb, offset), pinfo, top_level_tree); } else { @@ -3085,8 +3085,8 @@ dissect_hsdsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, umts_mac_info *macinf; rlc_info *rlcinf; - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); /**************************************/ /* HS-DCH data here (type 1 in R7) */ @@ -3287,8 +3287,8 @@ dissect_hsdsch_type_2_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree umts_mac_info *macinf; rlc_info *rlcinf; - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); /********************************/ /* HS-DCH type 2 data here */ @@ -3525,8 +3525,8 @@ void dissect_hsdsch_common_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto umts_mac_info *macinf; rlc_info *rlcinf; - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); /********************************/ /* HS-DCH type 2 data here */ @@ -3734,7 +3734,7 @@ heur_dissect_fp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data return FALSE; } - p_fp_info = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + p_fp_info = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); /* if no FP info is present, this might be FP in a pcap(ng) file */ if (!p_fp_info) { @@ -3823,7 +3823,7 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, gint *cur_val=NULL; fpi = wmem_new0(wmem_file_scope(), fp_info); - p_add_proto_data(pinfo->fd, proto_fp, 0, fpi); + p_add_proto_data(wmem_file_scope(), pinfo, proto_fp, 0, fpi); fpi->iface_type = p_conv_data->iface_type; fpi->division = p_conv_data->division; @@ -3865,7 +3865,7 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, macinf->content[0] = hsdsch_macdflow_id_mac_content_map[p_conv_data->hsdsch_macdflow_id]; /*MAC_CONTENT_PS_DTCH;*/ macinf->lchid[0] = p_conv_data->hsdsch_macdflow_id; /*macinf->content[0] = lchId_type_table[p_conv_data->edch_lchId[0]];*/ - p_add_proto_data(pinfo->fd, proto_umts_mac, 0, macinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0, macinf); rlcinf = wmem_new0(wmem_file_scope(), rlc_info); @@ -3908,7 +3908,7 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, rlcinf->li_size[0] = RLC_LI_7BITS; rlcinf->ciphered[0] = FALSE; rlcinf->deciphered[0] = FALSE; - p_add_proto_data(pinfo->fd, proto_rlc, 0, rlcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, rlcinf); return fpi; @@ -3930,7 +3930,7 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, /* macinf = wmem_new0(wmem_file_scope(), umts_mac_info); macinf->content[0] = MAC_CONTENT_PS_DTCH;*/ - p_add_proto_data(pinfo->fd, proto_umts_mac, 0, macinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0, macinf); /* For RLC re-assembly to work we need a urnti signaled from NBAP */ @@ -3940,7 +3940,7 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, rlcinf->ciphered[0] = FALSE; rlcinf->deciphered[0] = FALSE; - p_add_proto_data(pinfo->fd, proto_rlc, 0, rlcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, rlcinf); return fpi; @@ -4063,8 +4063,8 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, offset++; } - p_add_proto_data(pinfo->fd, proto_umts_mac, 0, macinf); - p_add_proto_data(pinfo->fd, proto_rlc, 0, rlcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0, macinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, rlcinf); /* Set offset to point to first TFI * the Number of TFI's = number of DCH's in the flow */ @@ -4084,7 +4084,7 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, macinf = wmem_new0(wmem_file_scope(), umts_mac_info); macinf->ctmux[0] = 1; macinf->content[0] = MAC_CONTENT_DCCH; - p_add_proto_data(pinfo->fd, proto_umts_mac, 0, macinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0, macinf); /* Set RLC data */ rlcinf = wmem_new0(wmem_file_scope(), rlc_info); /* Make configurable ?(avaliable in NBAP?) */ @@ -4095,7 +4095,7 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, rlcinf->li_size[0] = RLC_LI_7BITS; rlcinf->ciphered[0] = FALSE; rlcinf->deciphered[0] = FALSE; - p_add_proto_data(pinfo->fd, proto_rlc, 0, rlcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, rlcinf); break; case CHANNEL_RACH_FDD: @@ -4119,14 +4119,14 @@ fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_conv_data, - p_add_proto_data(pinfo->fd, proto_umts_mac,0, macinf); - p_add_proto_data(pinfo->fd, proto_rlc, 0, rlcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac,0, macinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, rlcinf); break; case CHANNEL_HSDSCH_COMMON: rlcinf = wmem_new0(wmem_file_scope(), rlc_info); macinf = wmem_new0(wmem_file_scope(), umts_mac_info); - p_add_proto_data(pinfo->fd, proto_umts_mac, 0, macinf); - p_add_proto_data(pinfo->fd, proto_rlc, 0, rlcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0, macinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0, rlcinf); break; default: expert_add_info(pinfo, NULL, &ei_fp_transport_channel_type_unknown); @@ -4176,7 +4176,7 @@ dissect_fp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) top_level_tree = tree; /* Look for packet info! */ - p_fp_info = (struct fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + p_fp_info = (struct fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); /* Check if we have conversation info */ p_conv = (conversation_t *)find_conversation(pinfo->fd->num, &pinfo->net_dst, &pinfo->net_src, @@ -4237,7 +4237,7 @@ dissect_fp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) return; } - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); /* Show release information */ if (preferences_show_release_info) { diff --git a/epan/dissectors/packet-umts_mac.c b/epan/dissectors/packet-umts_mac.c index 1f666ce03a..7c4bea9b8d 100644 --- a/epan/dissectors/packet-umts_mac.c +++ b/epan/dissectors/packet-umts_mac.c @@ -296,9 +296,9 @@ static void dissect_mac_fdd_rach(tvbuff_t *tvb, packet_info *pinfo, proto_tree * ti = proto_tree_add_item(tree, proto_umts_mac, tvb, 0, -1, ENC_NA); rach_tree = proto_item_add_subtree(ti, ett_mac_rach); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (!macinf || !fpinf) { proto_tree_add_expert(rach_tree, pinfo, &ei_mac_per_frame_info_missing, tvb, 0, -1); return; @@ -386,9 +386,9 @@ static void dissect_mac_fdd_fach(tvbuff_t *tvb, packet_info *pinfo, proto_tree * ti = proto_tree_add_item(tree, proto_umts_mac, tvb, 0, -1, ENC_NA); fach_tree = proto_item_add_subtree(ti, ett_mac_fach); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (!macinf || !fpinf) { proto_tree_add_expert(fach_tree, pinfo, &ei_mac_per_frame_info_missing, tvb, 0, -1); @@ -465,10 +465,10 @@ static void dissect_mac_fdd_fach(tvbuff_t *tvb, packet_info *pinfo, proto_tree * add_new_data_source(pinfo, next_tvb, "Octet-Aligned BCCH Data"); /* In this case skip RLC and call RRC immediately subdissector */ - rrcinf = (rrc_info *)p_get_proto_data(pinfo->fd, proto_rrc, 0); + rrcinf = (rrc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rrc, 0); if (!rrcinf) { rrcinf = wmem_new0(wmem_file_scope(), struct rrc_info); - p_add_proto_data(pinfo->fd, proto_rrc, 0, rrcinf); + p_add_proto_data(wmem_file_scope(), pinfo, proto_rrc, 0, rrcinf); } rrcinf->msgtype[fpinf->cur_tb] = RRC_MESSAGE_TYPE_BCCH_FACH; @@ -504,9 +504,9 @@ static void dissect_mac_fdd_dch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t ti = proto_tree_add_item(tree, proto_umts_mac, tvb, 0, -1, ENC_NA); dch_tree = proto_item_add_subtree(ti, ett_mac_dch); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); if (!macinf || !fpinf) { if(!macinf){ g_warning("MACinf == NULL"); @@ -944,9 +944,9 @@ static void dissect_mac_fdd_edch_type2(tvbuff_t *tvb, packet_info *pinfo, proto_ guint16 tsn; proto_item *pi, *temp; proto_tree *macis_pdu_tree, *macis_sdu_tree; - umts_mac_is_info * mac_is_info = (umts_mac_is_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); - rlc_info * rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); - struct fp_info *p_fp_info = (struct fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + umts_mac_is_info * mac_is_info = (umts_mac_is_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); + rlc_info * rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); + struct fp_info *p_fp_info = (struct fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); DISSECTOR_ASSERT(mac_is_info != NULL && rlcinf != NULL && p_fp_info != NULL); @@ -1015,9 +1015,9 @@ static void dissect_mac_fdd_edch(tvbuff_t *tvb, packet_info *pinfo, proto_tree * ti = proto_tree_add_item(tree, proto_umts_mac, tvb, 0, -1, ENC_NA); edch_tree = proto_item_add_subtree(ti, ett_mac_edch); - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); if (!macinf|| !fpinf) { proto_tree_add_expert(edch_tree, pinfo, &ei_mac_per_frame_info_missing, tvb, 0, -1); return; @@ -1092,8 +1092,8 @@ static void dissect_mac_fdd_hsdsch_common(tvbuff_t *tvb, packet_info *pinfo, pro ti = proto_tree_add_item(tree, proto_umts_mac, tvb, 0, -1, ENC_NA); hsdsch_tree = proto_item_add_subtree(ti, ett_mac_hsdsch); - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac); if (!macinf) { proto_tree_add_expert(hsdsch_tree, pinfo, &ei_mac_per_frame_info_missing, tvb, 0, -1); @@ -1149,8 +1149,8 @@ static void dissect_mac_fdd_hsdsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree ti = proto_tree_add_item(tree, proto_umts_mac, tvb, 0, -1, ENC_NA); hsdsch_tree = proto_item_add_subtree(ti, ett_mac_hsdsch); - fpinf = (fp_info *)p_get_proto_data(pinfo->fd, proto_fp, 0); - macinf = (umts_mac_info *)p_get_proto_data(pinfo->fd, proto_umts_mac, 0); + fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 0); + macinf = (umts_mac_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0); pos = fpinf->cur_tb; bitoffs = fpinf->hsdsch_entity == ehs ? 0 : 4; /*No MAC-d header for type 2*/ @@ -1167,7 +1167,7 @@ static void dissect_mac_fdd_hsdsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree macinf->fake_chid[pos] = FALSE; macinf->content[pos] = lchId_type_table[macinf->lchid[pos]]; /*Lookup MAC content*/ - rlcinf = (rlc_info *)p_get_proto_data(pinfo->fd, proto_rlc, 0); + rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc, 0); rlcinf->rbid[pos] = macinf->lchid[pos]; rlcinf->mode[pos] = lchId_rlc_map[macinf->lchid[pos]]; /*Look up RLC mode*/ bitoffs += 4; diff --git a/epan/dissectors/packet-vnc.c b/epan/dissectors/packet-vnc.c index 90c6a89b9c..1b5fffa388 100644 --- a/epan/dissectors/packet-vnc.c +++ b/epan/dissectors/packet-vnc.c @@ -467,10 +467,10 @@ static void vnc_server_ring_bell(tvbuff_t *tvb, packet_info *pinfo, gint *offset, proto_tree *tree); static guint vnc_server_cut_text(tvbuff_t *tvb, packet_info *pinfo, gint *offset, proto_tree *tree); -static void vnc_set_bytes_per_pixel(const packet_info *pinfo, const guint8 bytes_per_pixel); -static void vnc_set_depth(const packet_info *pinfo, const guint8 depth); -static guint8 vnc_get_bytes_per_pixel(const packet_info *pinfo); -static guint8 vnc_get_depth(const packet_info *pinfo); +static void vnc_set_bytes_per_pixel(packet_info *pinfo, const guint8 bytes_per_pixel); +static void vnc_set_depth(packet_info *pinfo, const guint8 depth); +static guint8 vnc_get_bytes_per_pixel(packet_info *pinfo); +static guint8 vnc_get_depth(packet_info *pinfo); static guint32 vnc_extended_desktop_size(tvbuff_t *tvb, gint *offset, proto_tree *tree); static guint vnc_supported_messages(tvbuff_t *tvb, gint *offset, @@ -1008,7 +1008,7 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset, gint num_auth_types; proto_item* auth_item; - per_packet_info = (vnc_packet_t *)p_get_proto_data(pinfo->fd, proto_vnc, 0); + per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0); if(!per_packet_info) { per_packet_info = wmem_new(wmem_file_scope(), vnc_packet_t); @@ -1016,7 +1016,7 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset, per_packet_info->state = per_conversation_info->vnc_next_state; per_packet_info->preferred_encoding = -1; - p_add_proto_data(pinfo->fd, proto_vnc, 0, per_packet_info); + p_add_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0, per_packet_info); } /* Packet dissection follows */ @@ -1716,7 +1716,7 @@ vnc_client_set_encodings(tvbuff_t *tvb, packet_info *pinfo, gint *offset, guint counter; vnc_packet_t *per_packet_info; - per_packet_info = (vnc_packet_t *)p_get_proto_data(pinfo->fd, proto_vnc, 0); + per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0); /* Our calling function should have set the packet's proto data already */ DISSECTOR_ASSERT(per_packet_info != NULL); @@ -2948,7 +2948,7 @@ process_tight_rect_filter_palette(tvbuff_t *tvb, packet_info *pinfo, gint *offse /* See TightVNC's vnc_unixsrc/vncviewer/tight.c:InitFilterPaletteBPP() */ - per_packet_info = (vnc_packet_t *)p_get_proto_data(pinfo->fd, proto_vnc, 0); + per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0); /* Our calling function should have set the packet's proto data already */ DISSECTOR_ASSERT(per_packet_info != NULL); @@ -2989,7 +2989,7 @@ vnc_tight_encoding(tvbuff_t *tvb, packet_info *pinfo, gint *offset, gint bit_offset; gint bytes_needed = -1; - per_packet_info = (vnc_packet_t *)p_get_proto_data(pinfo->fd, proto_vnc, 0); + per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0); /* Our calling function should have set the packet's proto data already */ DISSECTOR_ASSERT(per_packet_info != NULL); @@ -3273,11 +3273,11 @@ vnc_server_cut_text(tvbuff_t *tvb, packet_info *pinfo, gint *offset, static void -vnc_set_bytes_per_pixel(const packet_info *pinfo, const guint8 bytes_per_pixel) +vnc_set_bytes_per_pixel(packet_info *pinfo, const guint8 bytes_per_pixel) { vnc_packet_t *per_packet_info; - per_packet_info = (vnc_packet_t *)p_get_proto_data(pinfo->fd, proto_vnc, 0); + per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0); /* Our calling function should have set the packet's proto data already */ DISSECTOR_ASSERT(per_packet_info != NULL); @@ -3286,11 +3286,11 @@ vnc_set_bytes_per_pixel(const packet_info *pinfo, const guint8 bytes_per_pixel) static void -vnc_set_depth(const packet_info *pinfo, const guint8 depth) +vnc_set_depth(packet_info *pinfo, const guint8 depth) { vnc_packet_t *per_packet_info; - per_packet_info = (vnc_packet_t *)p_get_proto_data(pinfo->fd, proto_vnc, 0); + per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0); /* Our calling function should have set the packet's proto data already */ DISSECTOR_ASSERT(per_packet_info != NULL); @@ -3299,11 +3299,11 @@ vnc_set_depth(const packet_info *pinfo, const guint8 depth) static guint8 -vnc_get_bytes_per_pixel(const packet_info *pinfo) +vnc_get_bytes_per_pixel(packet_info *pinfo) { vnc_packet_t *per_packet_info; - per_packet_info = (vnc_packet_t *)p_get_proto_data(pinfo->fd, proto_vnc, 0); + per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0); /* Our calling function should have set the packet's proto data already */ DISSECTOR_ASSERT(per_packet_info != NULL); @@ -3312,11 +3312,11 @@ vnc_get_bytes_per_pixel(const packet_info *pinfo) static guint8 -vnc_get_depth(const packet_info *pinfo) +vnc_get_depth(packet_info *pinfo) { vnc_packet_t *per_packet_info; - per_packet_info = (vnc_packet_t *)p_get_proto_data(pinfo->fd, proto_vnc, 0); + per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0); /* Our calling function should have set the packet's proto data already */ DISSECTOR_ASSERT(per_packet_info != NULL); diff --git a/epan/dissectors/packet-wcp.c b/epan/dissectors/packet-wcp.c index 5092297d50..c18044adf6 100644 --- a/epan/dissectors/packet-wcp.c +++ b/epan/dissectors/packet-wcp.c @@ -575,7 +575,7 @@ static tvbuff_t *wcp_uncompress( tvbuff_t *src_tvb, int offset, packet_info *pin if ( pinfo->fd->flags.visited){ /* if not first pass */ /* get uncompressed data */ - pdata_ptr = (wcp_pdata_t *)p_get_proto_data( pinfo->fd, proto_wcp, 0); + pdata_ptr = (wcp_pdata_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_wcp, 0); if ( !pdata_ptr) { /* exit if no data */ REPORT_DISSECTOR_BUG("Can't find uncompressed data"); @@ -589,7 +589,7 @@ static tvbuff_t *wcp_uncompress( tvbuff_t *src_tvb, int offset, packet_info *pin memcpy( &pdata_ptr->buffer, buf_ptr->buf_cur, len); pdata_ptr->len = len; - p_add_proto_data( pinfo->fd, proto_wcp, 0, (void*)pdata_ptr); + p_add_proto_data(wmem_file_scope(), pinfo, proto_wcp, 0, (void*)pdata_ptr); buf_ptr->buf_cur = dst; } diff --git a/epan/dissectors/packet-zbee-aps.c b/epan/dissectors/packet-zbee-aps.c index e98e3d356b..2591b2be45 100644 --- a/epan/dissectors/packet-zbee-aps.c +++ b/epan/dissectors/packet-zbee-aps.c @@ -1177,7 +1177,7 @@ dissect_zbee_aps_transport_key(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree offset += ZBEE_APS_CMD_KEY_LENGTH; /* Update the key ring for this pan */ - if ( !pinfo->fd->flags.visited && (nwk_hints = (zbee_nwk_hints_t *)p_get_proto_data(pinfo->fd, + if ( !pinfo->fd->flags.visited && (nwk_hints = (zbee_nwk_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name(ZBEE_PROTOABBREV_NWK), 0))) { nwk_keyring = (GSList **)g_hash_table_lookup(zbee_table_nwk_keyring, &nwk_hints->src_pan); diff --git a/epan/dissectors/packet-zbee-nwk.c b/epan/dissectors/packet-zbee-nwk.c index 7b647b37c1..73970cd6c3 100644 --- a/epan/dissectors/packet-zbee-nwk.c +++ b/epan/dissectors/packet-zbee-nwk.c @@ -372,13 +372,13 @@ dissect_zbee_nwk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data if (!pinfo->fd->flags.visited) { /* Allocate frame data with hints for upper layers */ nwk_hints = wmem_new0(wmem_file_scope(), zbee_nwk_hints_t); - p_add_proto_data(pinfo->fd, proto_zbee_nwk, 0, nwk_hints); + p_add_proto_data(wmem_file_scope(), pinfo, proto_zbee_nwk, 0, nwk_hints); } else { /* Retrieve existing structure */ - nwk_hints = (zbee_nwk_hints_t *)p_get_proto_data(pinfo->fd, proto_zbee_nwk, 0); + nwk_hints = (zbee_nwk_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_zbee_nwk, 0); } - ieee_hints = (ieee802154_hints_t *)p_get_proto_data(pinfo->fd, + ieee_hints = (ieee802154_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name(IEEE802154_PROTOABBREV_WPAN), 0); /* Add ourself to the protocol column, clear the info column, and create the protocol tree. */ diff --git a/epan/dissectors/packet-zbee-security.c b/epan/dissectors/packet-zbee-security.c index d7e9524f20..ca32a2b460 100644 --- a/epan/dissectors/packet-zbee-security.c +++ b/epan/dissectors/packet-zbee-security.c @@ -452,9 +452,9 @@ dissect_zbee_secure(tvbuff_t *tvb, packet_info *pinfo, proto_tree* tree, guint o memset(&packet, 0, sizeof(zbee_security_packet)); /* Get pointers to any useful frame data from lower layers */ - nwk_hints = (zbee_nwk_hints_t *)p_get_proto_data(pinfo->fd, + nwk_hints = (zbee_nwk_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name(ZBEE_PROTOABBREV_NWK), 0); - ieee_hints = (ieee802154_hints_t *)p_get_proto_data(pinfo->fd, + ieee_hints = (ieee802154_hints_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name(IEEE802154_PROTOABBREV_WPAN), 0); /* Create a subtree for the security information. */ diff --git a/epan/epan.c b/epan/epan.c index 21b38e2682..6cb06f4c7b 100644 --- a/epan/epan.c +++ b/epan/epan.c @@ -256,6 +256,7 @@ epan_dissect_reset(epan_dissect_t *edt) g_assert(edt); + g_slist_free(edt->pi.proto_data); g_slist_free(edt->pi.dependent_frames); /* Free the data sources list. */ @@ -328,6 +329,7 @@ epan_dissect_cleanup(epan_dissect_t* edt) { g_assert(edt); + g_slist_free(edt->pi.proto_data); g_slist_free(edt->pi.dependent_frames); /* Free the data sources list. */ diff --git a/epan/frame_data.c b/epan/frame_data.c index e1e501af74..533f0cfe3e 100644 --- a/epan/frame_data.c +++ b/epan/frame_data.c @@ -33,6 +33,7 @@ #include <epan/emem.h> #include <epan/wmem/wmem.h> #include <epan/timestamp.h> +#include <epan/packet_info.h> /* Protocol-specific data attached to a frame_data structure - protocol @@ -67,23 +68,31 @@ p_compare(gconstpointer a, gconstpointer b) } void -p_add_proto_data(frame_data *fd, int proto, guint8 key, void *proto_data) +p_add_proto_data(wmem_allocator_t *scope, struct _packet_info* pinfo, int proto, guint8 key, void *proto_data) { - frame_proto_data *p1 = (frame_proto_data *)wmem_alloc(wmem_file_scope(), sizeof(frame_proto_data)); + frame_proto_data *p1; + GSList** proto_list; + + if (scope == pinfo->pool) { + p1 = (frame_proto_data *)wmem_alloc(scope, sizeof(frame_proto_data)); + proto_list = &pinfo->proto_data; + } else { + p1 = (frame_proto_data *)wmem_alloc(wmem_file_scope(), sizeof(frame_proto_data)); + proto_list = &pinfo->fd->pfd; + } p1->proto = proto; p1->key = key; p1->proto_data = proto_data; /* Add it to the GSLIST */ - - fd -> pfd = g_slist_insert_sorted(fd -> pfd, + *proto_list = g_slist_insert_sorted(*proto_list, (gpointer *)p1, p_compare); } void * -p_get_proto_data(frame_data *fd, int proto, guint8 key) +p_get_proto_data(wmem_allocator_t *scope, struct _packet_info* pinfo, int proto, guint8 key) { frame_proto_data temp, *p1; GSList *item; @@ -92,7 +101,11 @@ p_get_proto_data(frame_data *fd, int proto, guint8 key) temp.key = key; temp.proto_data = NULL; - item = g_slist_find_custom(fd->pfd, (gpointer *)&temp, p_compare); + if (scope == pinfo->pool) { + item = g_slist_find_custom(pinfo->proto_data, (gpointer *)&temp, p_compare); + } else { + item = g_slist_find_custom(pinfo->fd->pfd, (gpointer *)&temp, p_compare); + } if (item) { p1 = (frame_proto_data *)item->data; @@ -104,30 +117,41 @@ p_get_proto_data(frame_data *fd, int proto, guint8 key) } void -p_remove_proto_data(frame_data *fd, int proto, guint8 key) +p_remove_proto_data(wmem_allocator_t *scope, struct _packet_info* pinfo, int proto, guint8 key) { frame_proto_data temp; GSList *item; + GSList** proto_list; temp.proto = proto; temp.key = key; temp.proto_data = NULL; - item = g_slist_find_custom(fd->pfd, (gpointer *)&temp, p_compare); + if (scope == pinfo->pool) { + item = g_slist_find_custom(pinfo->fd->pfd, (gpointer *)&temp, p_compare); + proto_list = &pinfo->proto_data; + } else { + item = g_slist_find_custom(pinfo->fd->pfd, (gpointer *)&temp, p_compare); + proto_list = &pinfo->fd->pfd; + } if (item) { - fd->pfd = g_slist_remove(fd->pfd, item->data); + *proto_list = g_slist_remove(*proto_list, item->data); } + } gchar * -p_get_proto_name_and_key(frame_data *fd, guint pfd_index){ +p_get_proto_name_and_key(wmem_allocator_t *scope, struct _packet_info* pinfo, guint pfd_index){ frame_proto_data *temp; - temp = (frame_proto_data*)g_slist_nth_data(fd->pfd, pfd_index); - - return ep_strdup_printf("[%s, key %u]",proto_get_protocol_name(temp->proto), temp->key); + if (scope == pinfo->pool) { + temp = (frame_proto_data*)g_slist_nth_data(pinfo->proto_data, pfd_index); + } else { + temp = (frame_proto_data*)g_slist_nth_data(pinfo->fd->pfd, pfd_index); + } + return ep_strdup_printf("[%s, key %u]",proto_get_protocol_name(temp->proto), temp->key); } #define COMPARE_FRAME_NUM() ((fdata1->num < fdata2->num) ? -1 : \ diff --git a/epan/frame_data.h b/epan/frame_data.h index 1276510147..2bf074ad3b 100644 --- a/epan/frame_data.h +++ b/epan/frame_data.h @@ -95,11 +95,12 @@ typedef struct { #endif /* Utility routines used by packet*.c */ +struct _packet_info; -WS_DLL_PUBLIC void p_add_proto_data(frame_data *fd, int proto, guint8 key, void *proto_data); -WS_DLL_PUBLIC void *p_get_proto_data(frame_data *fd, int proto, guint8 key); -void p_remove_proto_data(frame_data *fd, int proto, guint8 key); -gchar *p_get_proto_name_and_key(frame_data *fd, guint pfd_index); +WS_DLL_PUBLIC void p_add_proto_data(wmem_allocator_t *scope, struct _packet_info* pinfo, int proto, guint8 key, void *proto_data); +WS_DLL_PUBLIC void *p_get_proto_data(wmem_allocator_t *scope, struct _packet_info* pinfo, int proto, guint8 key); +void p_remove_proto_data(wmem_allocator_t *scope, struct _packet_info* pinfo, int proto, guint8 key); +gchar *p_get_proto_name_and_key(wmem_allocator_t *scope, struct _packet_info* pinfo, guint pfd_index); /* no sense to include epan.h + dependencies for opaque epan session type */ struct epan_session; diff --git a/epan/packet_info.h b/epan/packet_info.h index 0aa389f624..57be0fe35f 100644 --- a/epan/packet_info.h +++ b/epan/packet_info.h @@ -194,9 +194,12 @@ typedef struct _packet_info { guint16 clnp_dstref; /**< clnp/cotp destination reference (can't use dstport, this would confuse tpkt) */ int link_dir; /**< 3GPP messages are sometime different UP link(UL) or Downlink(DL) */ + + GSList* proto_data; /**< Per packet proto data */ + GSList* dependent_frames; /**< A list of frames which this one depends on */ - GSList *frame_end_routines; + GSList* frame_end_routines; wmem_allocator_t *pool; /**< Memory pool scoped to the pinfo struct */ struct epan_session *epan; diff --git a/plugins/profinet/packet-dcerpc-pn-io.c b/plugins/profinet/packet-dcerpc-pn-io.c index 417232f065..5a6b2f3839 100644 --- a/plugins/profinet/packet-dcerpc-pn-io.c +++ b/plugins/profinet/packet-dcerpc-pn-io.c @@ -2597,7 +2597,7 @@ typedef struct pnio_ar_s { static void pnio_ar_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pnio_ar_t *ar) { - p_add_proto_data(pinfo->fd, proto_pn_io, 0, ar ); + p_add_proto_data(wmem_file_scope(), pinfo, proto_pn_io, 0, ar ); pinfo->profinet_type = 10; if (tree) { @@ -9426,7 +9426,7 @@ pn_io_ar_conv_valid(packet_info *pinfo) static const gchar * pn_io_ar_conv_filter(packet_info *pinfo) { - pnio_ar_t *ar = (pnio_ar_t *)p_get_proto_data(pinfo->fd, proto_pn_io, 0); + pnio_ar_t *ar = (pnio_ar_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_pn_io, 0); char *buf; if ((pinfo->profinet_type != 10) || (ar == NULL)) { @@ -9446,7 +9446,7 @@ pn_io_ar_conv_filter(packet_info *pinfo) static const gchar * pn_io_ar_conv_data_filter(packet_info *pinfo) { - pnio_ar_t *ar = (pnio_ar_t *)p_get_proto_data(pinfo->fd, proto_pn_io, 0); + pnio_ar_t *ar = (pnio_ar_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_pn_io, 0); char *buf; if ((pinfo->profinet_type != 10) || (ar == NULL)) { diff --git a/ui/cli/tap-follow.c b/ui/cli/tap-follow.c index a04d097d47..3474862d2c 100644 --- a/ui/cli/tap-follow.c +++ b/ui/cli/tap-follow.c @@ -356,7 +356,7 @@ followSslPacket( ) { follow_t * fp = (follow_t *)contextp; - SslPacketInfo * spip = (SslPacketInfo *)p_get_proto_data(pip->fd, GPOINTER_TO_INT(datap), 0); + SslPacketInfo * spip = (SslPacketInfo *)p_get_proto_data(wmem_file_scope(), pip, GPOINTER_TO_INT(datap), 0); SslDataInfo * sdip; gint length; tcp_stream_chunk sc; diff --git a/ui/gtk/expert_comp_table.c b/ui/gtk/expert_comp_table.c index 718983858d..5a8cbf0815 100644 --- a/ui/gtk/expert_comp_table.c +++ b/ui/gtk/expert_comp_table.c @@ -571,6 +571,8 @@ static const GtkActionEntry expert_popup_entries[] = { { "/Copy/Protocol Plus Summary", NULL, "Protocol Plus Summary", NULL, "Protocol Plus Summary", G_CALLBACK(copy_cb) }, }; +int gselection_count = 0; + static void expert_goto_pkt_cb (GtkTreeSelection *selection, gpointer data _U_) { @@ -581,6 +583,8 @@ expert_goto_pkt_cb (GtkTreeSelection *selection, gpointer data _U_) if (gtk_tree_selection_get_selected (selection, &model, &iter)) { + gselection_count++; + gtk_tree_model_get (model, &iter, PROTOCOL_COLUMN, &pkt, GROUP_COLUMN, &grp, diff --git a/ui/gtk/follow_ssl.c b/ui/gtk/follow_ssl.c index b96c5e0686..7ee686d631 100644 --- a/ui/gtk/follow_ssl.c +++ b/ui/gtk/follow_ssl.c @@ -78,7 +78,7 @@ ssl_queue_packet_data(void *tapdata, packet_info *pinfo, epan_dissect_t *edt _U_ show_stream_t from = FROM_CLIENT; /* Skip packets without decrypted payload data. */ - pi = (SslPacketInfo*) p_get_proto_data(pinfo->fd, proto_ssl, 0); + pi = (SslPacketInfo*) p_get_proto_data(wmem_file_scope(), pinfo, proto_ssl, 0); if (!pi || !pi->appl_data) return 0; /* Compute the packet's sender. */ diff --git a/ui/gtk/voip_calls.c b/ui/gtk/voip_calls.c index 14356083cc..5f07028d56 100644 --- a/ui/gtk/voip_calls.c +++ b/ui/gtk/voip_calls.c @@ -561,7 +561,7 @@ RTP_packet(void *ptr _U_, packet_info *pinfo, epan_dissect_t *edt _U_, void cons /* if it is dynamic payload, let use the conv data to see if it is defined */ if ( (strinfo->pt >= PT_UNDF_96) && (strinfo->pt <= PT_UNDF_127) ) { /* Use existing packet info if available */ - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_get_id_by_filter_name("rtp"), 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name("rtp"), 0); if (p_conv_data && p_conv_data->rtp_dyn_payload) { encoding_name_and_rate_t *encoding_name_and_rate_pt = NULL; encoding_name_and_rate_pt = (encoding_name_and_rate_t *)g_hash_table_lookup(p_conv_data->rtp_dyn_payload, &strinfo->pt); diff --git a/ui/qt/follow_stream_dialog.cpp b/ui/qt/follow_stream_dialog.cpp index 882c2b8c3c..73488cbcbe 100644 --- a/ui/qt/follow_stream_dialog.cpp +++ b/ui/qt/follow_stream_dialog.cpp @@ -383,7 +383,7 @@ ssl_queue_packet_data(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, co show_stream_t from = FROM_CLIENT; /* Skip packets without decrypted payload data. */ - pi = (SslPacketInfo*) p_get_proto_data(pinfo->fd, proto_ssl, 0); + pi = (SslPacketInfo*) p_get_proto_data(wmem_file_scope(), pinfo, proto_ssl, 0); if (!pi || !pi->appl_data) return 0; /* Compute the packet's sender. */ diff --git a/ui/tap-rtp-common.c b/ui/tap-rtp-common.c index 9f9c070f6c..a4a62171bb 100644 --- a/ui/tap-rtp-common.c +++ b/ui/tap-rtp-common.c @@ -255,7 +255,7 @@ int rtpstream_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, con tmp_strinfo.rtp_stats.reg_pt = PT_UNDEFINED; /* Get the Setup frame number who set this RTP stream */ - p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(pinfo->fd, proto_get_id_by_filter_name("rtp"), 0); + p_conv_data = (struct _rtp_conversation_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name("rtp"), 0); if (p_conv_data) tmp_strinfo.setup_frame_number = p_conv_data->frame_number; else |