Index: net/quic/core/quic_crypto_stream.cc |
diff --git a/net/quic/core/quic_crypto_stream.cc b/net/quic/core/quic_crypto_stream.cc |
index fcb5397ce4dff73b42f78e8a29bf4366d6c320a1..828417c62f9405d7532d2b25cea015f5985b0483 100644 |
--- a/net/quic/core/quic_crypto_stream.cc |
+++ b/net/quic/core/quic_crypto_stream.cc |
@@ -27,12 +27,15 @@ namespace net { |
QuicCryptoStream::QuicCryptoStream(QuicSession* session) |
: ReliableQuicStream(kCryptoStreamId, session), |
encryption_established_(false), |
- handshake_confirmed_(false) { |
+ handshake_confirmed_(false), |
+ crypto_negotiated_params_(new QuicCryptoNegotiatedParameters) { |
crypto_framer_.set_visitor(this); |
// The crypto stream is exempt from connection level flow control. |
DisableConnectionFlowControlForThisStream(); |
} |
+QuicCryptoStream::~QuicCryptoStream() {} |
+ |
// static |
QuicByteCount QuicCryptoStream::CryptoMessageFramingOverhead( |
QuicVersion version) { |
@@ -98,7 +101,7 @@ bool QuicCryptoStream::ExportKeyingMaterial(StringPiece label, |
return false; |
} |
return CryptoUtils::ExportKeyingMaterial( |
- crypto_negotiated_params_.subkey_secret, label, context, result_len, |
+ crypto_negotiated_params_->subkey_secret, label, context, result_len, |
result); |
} |
@@ -109,13 +112,14 @@ bool QuicCryptoStream::ExportTokenBindingKeyingMaterial(string* result) const { |
return false; |
} |
return CryptoUtils::ExportKeyingMaterial( |
- crypto_negotiated_params_.initial_subkey_secret, "EXPORTER-Token-Binding", |
+ crypto_negotiated_params_->initial_subkey_secret, |
+ "EXPORTER-Token-Binding", |
/* context= */ "", 32, result); |
} |
const QuicCryptoNegotiatedParameters& |
QuicCryptoStream::crypto_negotiated_params() const { |
- return crypto_negotiated_params_; |
+ return *crypto_negotiated_params_; |
} |
} // namespace net |