aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_sms.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2015-10-21 13:57:40 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2015-10-21 13:57:54 +0000
commitc1331a1e773d9b49e82b7ec6ca202f3d28cbbbfd (patch)
treeff38918cde59311eae192456084cbe425c377391 /epan/dissectors/packet-gsm_sms.c
parent2b8caf31cca5f8f952b2b284e99e616332d45c85 (diff)
GSM SMS: do not call GSM SMS port IE subdissectors until message is reassembled
Change-Id: Ibf384c01a1d3283e36b87a3d84e6c256341b8664 Reviewed-on: https://code.wireshark.org/review/11190 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-gsm_sms.c')
-rw-r--r--epan/dissectors/packet-gsm_sms.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/epan/dissectors/packet-gsm_sms.c b/epan/dissectors/packet-gsm_sms.c
index 5c84776d31..68179d3f18 100644
--- a/epan/dissectors/packet-gsm_sms.c
+++ b/epan/dissectors/packet-gsm_sms.c
@@ -1933,13 +1933,16 @@ dis_field_ud(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset
}
else if (eight_bit)
{
- /* proto_tree_add_format_text(subtree, tvb, offset, length); */
- if (! dissector_try_uint(gsm_sms_dissector_tbl, udh_fields.port_src, sm_tvb, pinfo, subtree))
- {
- if (! dissector_try_uint(gsm_sms_dissector_tbl, udh_fields.port_dst,sm_tvb, pinfo, subtree))
+ if (!is_fragmented || (reassembled && pinfo->fd->num == reassembled_in)) {
+ if (! dissector_try_uint(gsm_sms_dissector_tbl, udh_fields.port_src, sm_tvb, pinfo, subtree))
{
- proto_tree_add_item(subtree, hf_gsm_sms_body, tvb, offset, length, ENC_NA);
+ if (! dissector_try_uint(gsm_sms_dissector_tbl, udh_fields.port_dst,sm_tvb, pinfo, subtree))
+ {
+ proto_tree_add_item(subtree, hf_gsm_sms_body, tvb, offset, length, ENC_NA);
+ }
}
+ } else {
+ proto_tree_add_item(subtree, hf_gsm_sms_body, tvb, offset, length, ENC_NA);
}
}
else if (ucs2)