aboutsummaryrefslogtreecommitdiffstats
path: root/packet-tds.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2003-12-27 02:17:22 +0000
committerGuy Harris <guy@alum.mit.edu>2003-12-27 02:17:22 +0000
commit83887ebd3a604a24077d47b1f67e8ce45228b5ac (patch)
tree1b5d2a2035007a7943eafbbf7c021fe6f01663c0 /packet-tds.c
parent935b5e5329690cbd89a4ec71ab3511f1e39697be (diff)
Don't defragment packets that aren't fragmented.
Note that we've seen weird sequence numbers for login packets. svn path=/trunk/; revision=9452
Diffstat (limited to 'packet-tds.c')
-rw-r--r--packet-tds.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/packet-tds.c b/packet-tds.c
index ca4c12e985..7fd51b1a54 100644
--- a/packet-tds.c
+++ b/packet-tds.c
@@ -3,7 +3,7 @@
* Copyright 2000-2002, Brian Bruns <camber@ais.org>
* Copyright 2002, Steve Langasek <vorlon@netexpress.net>
*
- * $Id: packet-tds.c,v 1.19 2003/08/28 04:19:29 guy Exp $
+ * $Id: packet-tds.c,v 1.20 2003/12/27 02:17:22 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -993,13 +993,18 @@ dissect_netlib_buffer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
* Deal with fragmentation.
*/
save_fragmented = pinfo->fragmented;
- if (tds_defragment) {
+ if (tds_defragment &&
+ (packet_number != 1 || status == STATUS_NOT_LAST_BUFFER)) {
if (status == STATUS_NOT_LAST_BUFFER) {
if (check_col(pinfo->cinfo, COL_INFO))
col_append_str(pinfo->cinfo, COL_INFO,
" (Not last buffer)");
}
len = tvb_reported_length_remaining(tvb, offset);
+ /*
+ * XXX - I've seen captures that start with a login
+ * packet with a sequence number of 2.
+ */
fd_head = fragment_add_seq_check(tvb, offset, pinfo, channel,
tds_fragment_table, tds_reassembled_table,
packet_number - 1, len, status == STATUS_NOT_LAST_BUFFER);