aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-soupbintcp.c
diff options
context:
space:
mode:
authorDavid Arnold <d@0x1.org>2015-09-20 22:04:08 +1000
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2015-10-06 07:30:41 +0000
commit7e1f5247d8cfc476603222a2036859e3e22f4c20 (patch)
tree129398a5847c954de5a4b7d37f9d58b0c9fe81da /epan/dissectors/packet-soupbintcp.c
parente8d0bf8a5b7962d155586583d7f769a6b03f51bf (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>
Diffstat (limited to 'epan/dissectors/packet-soupbintcp.c')
-rw-r--r--epan/dissectors/packet-soupbintcp.c9
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 {