diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2007-09-11 16:59:57 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2007-09-11 16:59:57 +0000 |
commit | 6dd7b4346c24833fecd8010f52d77a388e5cb09a (patch) | |
tree | 25f02124c7a718f7663f9b5d542416ce561ca0de /epan/dissectors/packet-sndcp.c | |
parent | d7fbcb4140efc0fba41a2e5ea628343bf870a272 (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.c | 7 |
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); |