From Lo�c Minier: allow packets with no payload to participate in
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 7 Aug 2003 18:28:33 +0000 (18:28 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 7 Aug 2003 18:28:33 +0000 (18:28 +0000)
reassembly, as the last packet of a fragmented WTP message can have a
payload length of 0.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@8147 f5534014-38df-0310-8fa8-9805f1628bb7

packet-wtp.c

index 301f3ab92c45597f7061896d41e8e3e6af0bdd3c..d44944170320639c03b33b42ef9ae6da79182cea 100644 (file)
@@ -2,7 +2,7 @@
  *
  * Routines to dissect WTP component of WAP traffic.
  *
- * $Id: packet-wtp.c,v 1.51 2003/07/29 22:10:18 guy Exp $
+ * $Id: packet-wtp.c,v 1.52 2003/08/07 18:28:33 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -595,9 +595,13 @@ dissect_wtp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     }
     /*
      * Any remaining data ought to be WSP data (if not WTP ACK, NACK
-     * or ABORT pdu), so hand off (defragmented) to the WSP dissector
+     * or ABORT pdu), so hand off (defragmented) to the WSP dissector.
+     * Note that the last packet of a fragmented WTP message needn't
+     * contain any data, so we allow payloadless packets to be
+     * reassembled.  (XXX - does the reassembly code handle this
+     * for packets other than the last packet?)
      */
-    if ((tvb_reported_length_remaining(tvb, offCur + cbHeader + vHeader) > 0) &&
+    if ((tvb_reported_length_remaining(tvb, offCur + cbHeader + vHeader) >= 0) &&
        ! ((pdut==ACK) || (pdut==NEGATIVE_ACK) || (pdut==ABORT)))
     {
        int     dataOffset = offCur + cbHeader + vHeader;