diff options
author | Sake Blok <sake@euronet.nl> | 2009-04-19 20:28:18 +0000 |
---|---|---|
committer | Sake Blok <sake@euronet.nl> | 2009-04-19 20:28:18 +0000 |
commit | 3219e3059993080128da1428892692d685fb826a (patch) | |
tree | 6fd5c64f89ad64c03d6de1c2952df662253fd4a0 | |
parent | 19c7457d3cd761f353a776007df51963624146d7 (diff) | |
download | wireshark-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.c | 10 |
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; } |