aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sndcp.c
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2007-09-11 16:59:57 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2007-09-11 16:59:57 +0000
commit6dd7b4346c24833fecd8010f52d77a388e5cb09a (patch)
tree25f02124c7a718f7663f9b5d542416ce561ca0de /epan/dissectors/packet-sndcp.c
parentd7fbcb4140efc0fba41a2e5ea628343bf870a272 (diff)
From cyrille colin:
PATCH : SNDCP reassembly fails / overlaps when same NPDU number in another call http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1755 git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@22846 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-sndcp.c')
-rw-r--r--epan/dissectors/packet-sndcp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/epan/dissectors/packet-sndcp.c b/epan/dissectors/packet-sndcp.c
index cf7504caa5..2d1daa6b67 100644
--- a/epan/dissectors/packet-sndcp.c
+++ b/epan/dissectors/packet-sndcp.c
@@ -102,10 +102,13 @@ static dissector_handle_t ip_handle;
/* reassembly of N-PDU
*/
static GHashTable *npdu_fragment_table = NULL;
+static GHashTable *sndcp_reassembled_table = NULL;
+
static void
sndcp_defragment_init(void)
{
fragment_table_init(&npdu_fragment_table);
+ reassembled_table_init(&sndcp_reassembled_table);
}
/* value strings
@@ -331,8 +334,8 @@ dissect_sndcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
pinfo->fragmented = TRUE;
if (unack)
- fd_npdu = fragment_add_seq(tvb, offset, pinfo, npdu,
- npdu_fragment_table, segment, len, more_frags);
+ fd_npdu = fragment_add_seq_check(tvb, offset, pinfo, npdu,
+ npdu_fragment_table, sndcp_reassembled_table, segment, len, more_frags);
else
fd_npdu = fragment_add(tvb, offset, pinfo, npdu,
npdu_fragment_table, offset, len, more_frags);