Don't infinite loop on garbage server input. else block got lost in a rewrite of this code. Change-Id: I51f1655474ec8bbd4eccb4297124e8584329444e Reviewed-on: https://boringssl-review.googlesource.com/2560 Reviewed-by: Adam Langley <agl@google.com>
diff --git a/ssl/s23_srvr.c b/ssl/s23_srvr.c index 65ce6e1..70e6961 100644 --- a/ssl/s23_srvr.c +++ b/ssl/s23_srvr.c
@@ -381,6 +381,11 @@ /* Ready to switch versions. */ s->state = SSL23_ST_SR_SWITCH_VERSION; } + else + { + OPENSSL_PUT_ERROR(SSL, ssl23_get_client_hello, SSL_R_UNKNOWN_PROTOCOL); + goto err; + } return 1; err:
diff --git a/ssl/test/runner/runner.go b/ssl/test/runner/runner.go index 5fed62b..5605966 100644 --- a/ssl/test/runner/runner.go +++ b/ssl/test/runner/runner.go
@@ -515,6 +515,13 @@ expectedError: ":HTTPS_PROXY_REQUEST:", }, { + testType: serverTest, + name: "Garbage", + sendPrefix: "blah", + shouldFail: true, + expectedError: ":UNKNOWN_PROTOCOL:", + }, + { name: "SkipCipherVersionCheck", config: Config{ CipherSuites: []uint16{TLS_RSA_WITH_AES_128_GCM_SHA256},