aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-diameter.c11
-rw-r--r--epan/dissectors/packet-fcdns.c6
2 files changed, 13 insertions, 4 deletions
diff --git a/epan/dissectors/packet-diameter.c b/epan/dissectors/packet-diameter.c
index 18328046f7..691f028b0e 100644
--- a/epan/dissectors/packet-diameter.c
+++ b/epan/dissectors/packet-diameter.c
@@ -396,7 +396,12 @@ static const value_string diameter_3gpp2_exp_res_vals[]= {
static int
dissect_diameter_3gpp2_exp_res(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data) {
proto_item *pi;
- diam_sub_dis_t *diam_sub_dis = (diam_sub_dis_t*)data;
+ diam_sub_dis_t *diam_sub_dis;
+
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ diam_sub_dis = (diam_sub_dis_t*)data;
pi = proto_tree_add_item(tree, hf_diameter_3gpp2_exp_res, tvb, 0, 4, ENC_BIG_ENDIAN);
diam_sub_dis->avp_str = (char *)wmem_alloc(wmem_packet_scope(), ITEM_LABEL_LENGTH+1);
@@ -936,7 +941,7 @@ grouped_avp(diam_ctx_t *c, diam_avp_t *a, tvbuff_t *tvb, diam_sub_dis_t *diam_su
offset += dissect_diameter_avp(c, tvb, offset, diam_sub_dis_inf);
}
/* Clear info collected in grouped AVP */
- diam_sub_dis_inf->vendor_id = 0;
+ diam_sub_dis_inf->vendor_id = 0;
diam_sub_dis_inf->dis_gouped = FALSE;
diam_sub_dis_inf->avp_str = NULL;
@@ -2018,7 +2023,7 @@ proto_reg_handoff_diameter(void)
new_create_dissector_handle(dissect_diameter_eap_payload, proto_diameter));
/* Register dissector for Experimental result code, with 3GPP2:s vendor Id */
- dissector_add_uint("diameter.vnd_exp_res", VENDOR_THE3GPP2,
+ dissector_add_uint("diameter.vnd_exp_res", VENDOR_THE3GPP2,
new_create_dissector_handle(dissect_diameter_3gpp2_exp_res, proto_diameter));
Initialized=TRUE;
diff --git a/epan/dissectors/packet-fcdns.c b/epan/dissectors/packet-fcdns.c
index e838cb0aa6..2d4bf71269 100644
--- a/epan/dissectors/packet-fcdns.c
+++ b/epan/dissectors/packet-fcdns.c
@@ -1594,8 +1594,12 @@ dissect_fcdns (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
conversation_t *conversation;
fcdns_conv_data_t *cdata;
fcdns_conv_key_t ckey, *req_key;
- fc_hdr *fchdr = (fc_hdr *)data;
+ fc_hdr *fchdr;
+ /* Reject the packet if data is NULL */
+ if (data == NULL)
+ return 0;
+ fchdr = (fc_hdr *)data;
tvb_memcpy (tvb, (guint8 *)&cthdr, offset, FCCT_PRMBL_SIZE);
cthdr.revision = tvb_get_guint8 (tvb, offset);