summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSake Blok <sake@euronet.nl>2009-04-19 20:28:18 +0000
committerSake Blok <sake@euronet.nl>2009-04-19 20:28:18 +0000
commit3219e3059993080128da1428892692d685fb826a (patch)
tree6fd5c64f89ad64c03d6de1c2952df662253fd4a0
parent19c7457d3cd761f353a776007df51963624146d7 (diff)
downloadwireshark-3219e3059993080128da1428892692d685fb826a.tar.gz
When a frame contains the remainder of a previous PDU and a new PDU, the
protocol tree would show two "Secure Socket Layer" branches and the INFO column would fail to show the content type of the second PDU. Don't give control back to TCP for the second PDU by just fetching the remaining bytes of the first PDU, but ask for a whole new segment so that all processing will be done within the SSL dissector itself. svn path=/trunk/; revision=28088
-rw-r--r--epan/dissectors/packet-ssl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ssl.c b/epan/dissectors/packet-ssl.c
index 37b7bd71e6..b4d38dd331 100644
--- a/epan/dissectors/packet-ssl.c
+++ b/epan/dissectors/packet-ssl.c
@@ -1379,7 +1379,15 @@ dissect_ssl3_record(tvbuff_t *tvb, packet_info *pinfo,
* more bytes we need, and return.
*/
pinfo->desegment_offset = offset;
- pinfo->desegment_len = (record_length + 5) - available_bytes;
+
+ /* Don't use:
+ * pinfo->desegment_len = (record_length + 5) - available_bytes;
+ * as it will display two SSL subtrees when a frame contains
+ * the continuation of a previous PDU together with a full new
+ * PDU (and the info column would not show the message type
+ * of the second PDU)
+ */
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
*need_desegmentation = TRUE;
return offset;
}