diff options
Diffstat (limited to 'epan/dissectors/packet-x11.c')
-rw-r--r-- | epan/dissectors/packet-x11.c | 23 |
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; } } |