aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-wai.c
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2010-09-22 18:32:15 +0000
committerBill Meier <wmeier@newsguy.com>2010-09-22 18:32:15 +0000
commit8e278e7f90f3b93e3f2760babf8eff08756cf965 (patch)
treed89fd9cec613ad72b2920abd446ae41a2cffc284 /epan/dissectors/packet-wai.c
parente4b94c0d8f12254475dee69ba991c4d1f49a5b15 (diff)
- reassembly code shouldn't be under 'if (tree)'
- ECDH Parameter - Content: Packet Bytes highlighting was off-by-one. svn path=/trunk/; revision=34185
Diffstat (limited to 'epan/dissectors/packet-wai.c')
-rw-r--r--epan/dissectors/packet-wai.c79
1 files changed, 40 insertions, 39 deletions
diff --git a/epan/dissectors/packet-wai.c b/epan/dissectors/packet-wai.c
index da16885a6e..674c6ea752 100644
--- a/epan/dissectors/packet-wai.c
+++ b/epan/dissectors/packet-wai.c
@@ -392,7 +392,7 @@ dissect_ecdh_parameter(tvbuff_t * tvb, const gint offset, proto_tree * tree)
ecdh_id_item = proto_tree_add_item(ecdh_tree, hf_wai_ecdh_id, tvb, offset, 1, FALSE);
proto_item_set_text(ecdh_id_item, "ID: %s (%#x)", id_name, ecdh_id);
proto_tree_add_item(ecdh_tree, hf_wai_ecdh_len, tvb, offset+1, 2, FALSE);
- proto_tree_add_item(ecdh_tree, hf_wai_ecdh_content, tvb, offset+2, ecdh_len, FALSE);
+ proto_tree_add_item(ecdh_tree, hf_wai_ecdh_content, tvb, offset+3, ecdh_len, FALSE);
return ecdh_len + 3;
}
@@ -826,6 +826,9 @@ Figure 18 from [ref:1]
guint8 fragment_num;
guint8 flags;
fragment_data *frag_msg;
+ proto_tree *wai_tree = NULL;
+ tvbuff_t *next_tvb;
+ tvbuff_t *new_tvb;
const gchar *subtype_name = "Unknown type";
length = tvb_get_ntohs(tvb, 6)-WAI_MESSAGE_LENGTH;
@@ -851,20 +854,8 @@ Figure 18 from [ref:1]
fragment_num = tvb_get_guint8(tvb, 10);
flags = tvb_get_guint8(tvb, 11);
- frag_msg = fragment_add_seq_check (tvb, WAI_DATA_OFFSET, pinfo,
- packet_num,
- wai_fragment_table,
- wai_reassembled_table,
- fragment_num,
- length,
- flags);
-
if (tree) {
proto_item *wai_item;
- proto_tree *wai_tree;
- tvbuff_t *next_tvb;
- tvbuff_t *new_tvb;
-
wai_item = proto_tree_add_item(tree, proto_wai, tvb, 0, -1, ENC_NA);
@@ -881,34 +872,44 @@ Figure 18 from [ref:1]
proto_tree_add_item(wai_tree, hf_wai_seq, tvb, 8, 2, FALSE);
proto_tree_add_item(wai_tree, hf_wai_fragm_seq, tvb, 10, 1, FALSE);
proto_tree_add_item(wai_tree, hf_wai_flag, tvb, 11, 1, FALSE);
+ }
- next_tvb = tvb_new_subset_remaining(tvb, WAI_DATA_OFFSET);
-
- /* Replace INFO column if message is fragmented and call data_handle */
- if (flags) {
- col_add_fstr(pinfo->cinfo, COL_INFO,
- "Fragment (%d) of message, data not dissected", fragment_num);
-
- process_reassembled_data(tvb, WAI_DATA_OFFSET, pinfo,
- "Reassembled WAI", frag_msg, &wai_frag_items,
- NULL, wai_tree);
-
- call_dissector(data_handle, next_tvb, pinfo, tree);
- } else {
- /* If this is the last fragment of fragmented message, then reassamble and dissect
- otherwise only dissect */
- if (fragment_num > 0) {
- new_tvb = process_reassembled_data(tvb, WAI_DATA_OFFSET, pinfo, "Reassembled WAI", frag_msg, &wai_frag_items,
- NULL, wai_tree);
-
- if (new_tvb) {
- col_add_str(pinfo->cinfo, COL_INFO, "Last fragment of message, data dissected");
- col_append_sep_str(pinfo->cinfo, COL_INFO, ": ", subtype_name);
- next_tvb=new_tvb;
- length = tvb_reported_length (next_tvb);
- }
+ frag_msg = fragment_add_seq_check (tvb, WAI_DATA_OFFSET, pinfo,
+ packet_num,
+ wai_fragment_table,
+ wai_reassembled_table,
+ fragment_num,
+ length,
+ flags);
+
+ next_tvb = tvb_new_subset_remaining(tvb, WAI_DATA_OFFSET);
+
+ /* Replace INFO column if message is fragmented and call data_handle */
+ if (flags) {
+ col_add_fstr(pinfo->cinfo, COL_INFO,
+ "Fragment (%d) of message, data not dissected", fragment_num);
+
+ process_reassembled_data(tvb, WAI_DATA_OFFSET, pinfo,
+ "Reassembled WAI", frag_msg, &wai_frag_items,
+ NULL, wai_tree);
+
+ call_dissector(data_handle, next_tvb, pinfo, tree);
+ } else {
+ /* If this is the last fragment of fragmented message, then reassamble and dissect
+ otherwise only dissect */
+ if (fragment_num > 0) {
+ new_tvb = process_reassembled_data(tvb, WAI_DATA_OFFSET, pinfo, "Reassembled WAI", frag_msg, &wai_frag_items,
+ NULL, wai_tree);
+
+ if (new_tvb) {
+ col_add_str(pinfo->cinfo, COL_INFO, "Last fragment of message, data dissected");
+ col_append_sep_str(pinfo->cinfo, COL_INFO, ": ", subtype_name);
+ next_tvb=new_tvb;
+ length = tvb_reported_length (next_tvb);
}
- /* dissect Data field of WAI packet */
+ }
+ /* dissect Data field of WAI packet */
+ if (tree) {
dissect_wai_data(next_tvb, wai_tree, subtype, length);
}
}