aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-x11.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-x11.c')
-rw-r--r--epan/dissectors/packet-x11.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/epan/dissectors/packet-x11.c b/epan/dissectors/packet-x11.c
index a05dc2a814..f700b8a77c 100644
--- a/epan/dissectors/packet-x11.c
+++ b/epan/dissectors/packet-x11.c
@@ -4338,10 +4338,13 @@ static void dissect_x11_requests(tvbuff_t *tvb, packet_info *pinfo,
/*
* Yes. Tell the TCP dissector where the data
* for this message starts in the data it handed
- * us, and how many more bytes we need, and return.
+ * us and that we need "some more data." Don't tell
+ * it exactly how many bytes we need because if/when
+ * we ask for even more (after the header) that will
+ * break reassembly.
*/
pinfo->desegment_offset = offset;
- pinfo->desegment_len = 4 - length_remaining;
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
return;
}
}
@@ -4450,11 +4453,13 @@ static void dissect_x11_requests(tvbuff_t *tvb, packet_info *pinfo,
/*
* Yes. Tell the TCP dissector where the
* data for this message starts in the data
- * it handed us, and how many more bytes we
- * need, and return.
+ * it handed us and that we need "some more
+ * data." Don't tell it exactly how many bytes
+ * we need because if/when we ask for even more
+ * (after the header) that will break reassembly.
*/
pinfo->desegment_offset = offset;
- pinfo->desegment_len = 10 - length_remaining;
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
return;
}
}
@@ -4699,11 +4704,13 @@ dissect_x11_replies(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/*
* Yes. Tell the TCP dissector where the data
* for this message starts in the data it handed
- * us, and how many more bytes we need, and
- * return.
+ * us and that we need "some more data." Don't tell
+ * it exactly how many bytes we need because if/when
+ * we ask for even more (after the header) that will
+ * break reassembly.
*/
pinfo->desegment_offset = offset;
- pinfo->desegment_len = 8 - length_remaining;
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
return;
}
}