diff options
author | David Arnold <d@0x1.org> | 2015-09-20 22:04:08 +1000 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2015-10-06 07:30:41 +0000 |
commit | 7e1f5247d8cfc476603222a2036859e3e22f4c20 (patch) | |
tree | 129398a5847c954de5a4b7d37f9d58b0c9fe81da | |
parent | e8d0bf8a5b7962d155586583d7f769a6b03f51bf (diff) |
Fix SoupBinTCP sequence number tracking.
Change-Id: Ia31b21894a6f0ba2da6cc2aea6babda9f37f5e09
Reviewed-on: https://code.wireshark.org/review/10579
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
-rw-r--r-- | epan/dissectors/packet-soupbintcp.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/epan/dissectors/packet-soupbintcp.c b/epan/dissectors/packet-soupbintcp.c index a18c270112..eef1d8a65a 100644 --- a/epan/dissectors/packet-soupbintcp.c +++ b/epan/dissectors/packet-soupbintcp.c @@ -188,9 +188,12 @@ dissect_soupbintcp_common( guint16 expected_len; guint8 pkt_type; gint offset = 0; - guint this_seq = 0, next_seq; + guint this_seq = 0, next_seq, key; heur_dtbl_entry_t *hdtbl_entry; + /* Record the start of the packet to use as a sequence number key */ + key = (guint)tvb_raw_offset(tvb); + /* Get the 16-bit big-endian SOUP packet length */ expected_len = tvb_get_ntohs(tvb, 0); @@ -279,10 +282,10 @@ dissect_soupbintcp_common( wmem_file_scope(), sizeof(struct pdu_data)); pdu_data->seq_num = this_seq; - p_add_proto_data(wmem_file_scope(), pinfo, proto_soupbintcp, 0, pdu_data); + p_add_proto_data(wmem_file_scope(), pinfo, proto_soupbintcp, key, pdu_data); } } else { - pdu_data = (struct pdu_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_soupbintcp, 0); + pdu_data = (struct pdu_data *)p_get_proto_data(wmem_file_scope(), pinfo, proto_soupbintcp, key); if (pdu_data) { this_seq = pdu_data->seq_num; } else { |