Check for nullptr before calling OnProofVerifyDetailsAvailable
gfe-relnote: add nullptr check to QUIC's TlsClientHandshaker, protected by ietf quic draft version flags.
PiperOrigin-RevId: 306849131
Change-Id: I3e73186d70e7778fa49096b4c96710902c4e5f7c
diff --git a/quic/core/tls_client_handshaker.cc b/quic/core/tls_client_handshaker.cc
index 09b9097..f3e1b13 100644
--- a/quic/core/tls_client_handshaker.cc
+++ b/quic/core/tls_client_handshaker.cc
@@ -472,7 +472,9 @@
std::unique_ptr<ProofVerifierCallback>(proof_verify_callback));
switch (verify_result) {
case QUIC_SUCCESS:
- proof_handler_->OnProofVerifyDetailsAvailable(*verify_details_);
+ if (verify_details_) {
+ proof_handler_->OnProofVerifyDetailsAvailable(*verify_details_);
+ }
return ssl_verify_ok;
case QUIC_PENDING:
proof_verify_callback_ = proof_verify_callback;
diff --git a/quic/core/tls_client_handshaker_test.cc b/quic/core/tls_client_handshaker_test.cc
index 05e0c3f..0283169 100644
--- a/quic/core/tls_client_handshaker_test.cc
+++ b/quic/core/tls_client_handshaker_test.cc
@@ -190,9 +190,6 @@
}
void CompleteCryptoHandshake() {
- int proof_verify_details_calls = 1;
- EXPECT_CALL(*session_, OnProofVerifyDetailsAvailable(testing::_))
- .Times(testing::AtLeast(proof_verify_details_calls));
stream()->CryptoConnect();
QuicConfig config;
crypto_test_utils::HandshakeWithFakeServer(
@@ -349,7 +346,6 @@
CreateConnection();
InitializeFakeServer();
- EXPECT_CALL(*session_, OnProofVerifyDetailsAvailable(testing::_));
stream()->CryptoConnect();
crypto_test_utils::CommunicateHandshakeMessages(
connection_, stream(), server_connection_, server_stream());