diff --git epan/dissectors/packet-tcp.c epan/dissectors/packet-tcp.c index 58bbb5a..ad0648d 100644 --- epan/dissectors/packet-tcp.c +++ epan/dissectors/packet-tcp.c @@ -1940,6 +1940,19 @@ again: fragment_add(tvb, deseg_offset, pinfo, msp->first_frame, tcp_fragment_table, 0, nxtseq - deseg_seq, LT_SEQ(nxtseq, msp->nxtpdu)); + + /* check if we've already have PDU which overlaps with this one */ + { + struct tcp_multisegment_pdu *msp2 = se_tree_lookup32_le(tcpd->fwd->multisegment_pdus, msp->nxtpdu); + + /* msp2 should never be NULL */ + if (msp2 != NULL && msp2 != msp) { + /* + * XXX, what can we do here? + */ + g_warning("XXX, msp != msp2 (%u...%u %u)\n", msp->seq, msp->nxtpdu, msp2->seq); + } + } } }