aboutsummaryrefslogtreecommitdiffstats
path: root/epan/reassemble.h
diff options
context:
space:
mode:
authorAndersBroman <anders.broman@ericsson.com>2015-03-17 12:59:27 +0100
committerAnders Broman <a.broman58@gmail.com>2015-03-18 05:32:06 +0000
commit98b7f213706c9b4d0636d49d635fa1443a5748c4 (patch)
tree82c0bf53ecba5bc5d65e1dd2f4f8b9a0d0202c75 /epan/reassemble.h
parentae2d2447d867305b337301985e5bffd878a7c1fc (diff)
[Reassembly] Fix a reassembly case where the two fragments are in the same
frame but in different SCTP DATA chunks, whitout the patch the message is reassembled in both chunks leading to duplicated upper layer PDU:s in the frame. Change-Id: Ie31142c38c728018178947544b571622447d8e8f Reviewed-on: https://code.wireshark.org/review/7716 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/reassemble.h')
-rw-r--r--epan/reassemble.h41
1 files changed, 22 insertions, 19 deletions
diff --git a/epan/reassemble.h b/epan/reassemble.h
index 75991a1a78..f2980573dc 100644
--- a/epan/reassemble.h
+++ b/epan/reassemble.h
@@ -70,26 +70,29 @@
typedef struct _fragment_item {
struct _fragment_item *next;
- guint32 frame; /* XXX - does this apply to reassembly heads? */
- guint32 offset; /* XXX - does this apply to reassembly heads? */
- guint32 len; /* XXX - does this apply to reassembly heads? */
- guint32 fragment_nr_offset; /* offset for frame numbering, for sequences, where the
- * provided fragment number of the first fragment does
- * not start with 0
- * XXX - does this apply only to reassembly heads? */
- guint32 datalen; /* Only valid in first item of list and when
- * flags&FD_DATALEN_SET is set;
- * number of bytes or (if flags&FD_BLOCKSEQUENCE set)
- * segments in the datagram */
- guint32 reassembled_in; /* frame where this PDU was reassembled,
- only valid in the first item of the list
- and when FD_DEFRAGMENTED is set*/
- guint32 flags; /* XXX - do some of these apply only to reassembly
- heads and others only to fragments within
- a reassembly? */
+ guint32 frame; /* XXX - does this apply to reassembly heads? */
+ guint32 offset; /* XXX - does this apply to reassembly heads? */
+ guint32 len; /* XXX - does this apply to reassembly heads? */
+ guint32 fragment_nr_offset; /**< offset for frame numbering, for sequences, where the
+ * provided fragment number of the first fragment does
+ * not start with 0
+ * XXX - does this apply only to reassembly heads? */
+ guint32 datalen; /**< Only valid in first item of list and when
+ * flags&FD_DATALEN_SET is set;
+ * number of bytes or (if flags&FD_BLOCKSEQUENCE set)
+ * segments in the datagram */
+ guint32 reassembled_in; /**< frame where this PDU was reassembled,
+ only valid in the first item of the list
+ and when FD_DEFRAGMENTED is set*/
+ guint8 reas_in_layer_num; /**< The current "depth" or layer number in the current frame where reassembly was completed.
+ * Example: in SCTP there can be several data chunks and we want the reassemblied tvb for the final
+ * segment only.
+ */
+ guint32 flags; /**< XXX - do some of these apply only to reassembly
+ heads and others only to fragments within
+ a reassembly? */
tvbuff_t *tvb_data;
-
- /*
+ /**
* Null if the reassembly had no error; non-null if it had
* an error, in which case it's the string for the error.
*