diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2015-10-21 13:57:40 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2015-10-21 13:57:54 +0000 |
commit | c1331a1e773d9b49e82b7ec6ca202f3d28cbbbfd (patch) | |
tree | ff38918cde59311eae192456084cbe425c377391 /epan/dissectors/packet-gsm_sms.c | |
parent | 2b8caf31cca5f8f952b2b284e99e616332d45c85 (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.c | 13 |
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) |