Skip to content

Commit

Permalink
tls: fix duplicated ':TLS_error_end' suffix in socket failure reason (#…
Browse files Browse the repository at this point in the history
…34799)

This fix also prevents duplicated debug logs, since they are always
generated after the end suffix is appended to the failure reason.

Signed-off-by: Joe Kralicky <joekralicky@gmail.com>
  • Loading branch information
kralicky committed Jun 27, 2024
1 parent e1c6235 commit f3ee7c7
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 15 deletions.
6 changes: 5 additions & 1 deletion source/common/tls/ssl_socket.cc
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,10 @@ void SslSocket::drainErrorQueue() {
absl::NullSafeStringView(ERR_reason_error_string(err)));
}

if (!saw_error) {
return;
}

if (!failure_reason_.empty()) {
if (new_ssl_failure_format) {
absl::StrAppend(&failure_reason_, ":TLS_error_end");
Expand All @@ -247,7 +251,7 @@ void SslSocket::drainErrorQueue() {
failure_reason_);
}

if (saw_error && !saw_counted_error) {
if (!saw_counted_error) {
ctx_->stats().connection_error_.inc();
}
}
Expand Down
21 changes: 10 additions & 11 deletions test/common/tls/integration/ssl_integration_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -765,13 +765,13 @@ TEST_P(SslCertficateIntegrationTest, ServerEcdsaClientRsaOnlyWithAccessLog) {

auto log_result = waitForAccessLog(listener_access_log_name_);
if (tls_version_ == envoy::extensions::transport_sockets::tls::v3::TlsParameters::TLSv1_3) {
EXPECT_THAT(log_result,
StartsWith("DOWNSTREAM_TRANSPORT_FAILURE_REASON=TLS_error:|268435709:SSL_routines:"
"OPENSSL_internal:NO_COMMON_SIGNATURE_ALGORITHMS:TLS_error_end"));
EXPECT_EQ(log_result,
"DOWNSTREAM_TRANSPORT_FAILURE_REASON=TLS_error:|268435709:SSL_routines:"
"OPENSSL_internal:NO_COMMON_SIGNATURE_ALGORITHMS:TLS_error_end FILTER_CHAIN_NAME=-");
} else {
EXPECT_THAT(log_result,
StartsWith("DOWNSTREAM_TRANSPORT_FAILURE_REASON=TLS_error:|268435640:"
"SSL_routines:OPENSSL_internal:NO_SHARED_CIPHER:TLS_error_end"));
EXPECT_EQ(log_result,
"DOWNSTREAM_TRANSPORT_FAILURE_REASON=TLS_error:|268435640:"
"SSL_routines:OPENSSL_internal:NO_SHARED_CIPHER:TLS_error_end FILTER_CHAIN_NAME=-");
}
}

Expand All @@ -791,12 +791,11 @@ TEST_P(SslCertficateIntegrationTest, ServerEcdsaClientRsaOnlyWithAccessLogOrigin

auto log_result = waitForAccessLog(listener_access_log_name_);
if (tls_version_ == envoy::extensions::transport_sockets::tls::v3::TlsParameters::TLSv1_3) {
EXPECT_THAT(log_result,
StartsWith("DOWNSTREAM_TRANSPORT_FAILURE_REASON=TLS_error:_268435709:SSL_routines:"
"OPENSSL_internal:NO_COMMON_SIGNATURE_ALGORITHMS"));
EXPECT_EQ(log_result, "DOWNSTREAM_TRANSPORT_FAILURE_REASON=TLS_error:_268435709:SSL_routines:"
"OPENSSL_internal:NO_COMMON_SIGNATURE_ALGORITHMS FILTER_CHAIN_NAME=-");
} else {
EXPECT_THAT(log_result, StartsWith("DOWNSTREAM_TRANSPORT_FAILURE_REASON=TLS_error:_268435640:"
"SSL_routines:OPENSSL_internal:NO_SHARED_CIPHER"));
EXPECT_EQ(log_result, "DOWNSTREAM_TRANSPORT_FAILURE_REASON=TLS_error:_268435640:"
"SSL_routines:OPENSSL_internal:NO_SHARED_CIPHER FILTER_CHAIN_NAME=-");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -833,7 +833,7 @@ TEST_P(TcpGrpcAccessLogIntegrationTest, TlsHandshakeFailure_VerifyFailed) {
downstream_local_address:
socket_address:
address: {0}
downstream_transport_failure_reason: "TLS_error:|268435581:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED:TLS_error_end:TLS_error_end"
downstream_transport_failure_reason: "TLS_error:|268435581:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED:TLS_error_end"
access_log_type: NotSet
downstream_direct_remote_address:
socket_address:
Expand Down Expand Up @@ -895,7 +895,7 @@ TEST_P(TcpGrpcAccessLogIntegrationTest, TlsHandshakeFailure_NoSharedCipher) {
downstream_local_address:
socket_address:
address: {0}
downstream_transport_failure_reason: "TLS_error:|268435640:SSL routines:OPENSSL_internal:NO_SHARED_CIPHER:TLS_error_end:TLS_error_end"
downstream_transport_failure_reason: "TLS_error:|268435640:SSL routines:OPENSSL_internal:NO_SHARED_CIPHER:TLS_error_end"
access_log_type: NotSet
downstream_direct_remote_address:
socket_address:
Expand Down Expand Up @@ -952,7 +952,7 @@ TEST_P(TcpGrpcAccessLogIntegrationTest, SslHandshakeFailure_UnsupportedProtocol)
downstream_local_address:
socket_address:
address: {0}
downstream_transport_failure_reason: "TLS_error:|268435696:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:TLS_error_end:TLS_error_end"
downstream_transport_failure_reason: "TLS_error:|268435696:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:TLS_error_end"
access_log_type: NotSet
downstream_direct_remote_address:
socket_address:
Expand Down

0 comments on commit f3ee7c7

Please sign in to comment.