Don't acknowledge a servername following warning alert in servername cb
authorMatt Caswell <matt@openssl.org>
Mon, 2 Dec 2019 17:29:21 +0000 (17:29 +0000)
committerMatt Caswell <matt@openssl.org>
Thu, 30 Jan 2020 16:12:16 +0000 (16:12 +0000)
If the servername cb decides to send back a warning alert then the
handshake continues, but we should not signal to the client that the
servername has been accepted.

Reviewed-by: Ben Kaduk <kaduk@mit.edu>
(Merged from https://github.com/openssl/openssl/pull/10018)

(cherry picked from commit cd624ccd41ac3ac779c1c7a7a1e63427ce9588dd)

ssl/statem/extensions.c

index f6a1cd7dd26a6968b4314d9f84b62787e52e2ce0..44d8a2591a56df4f030a2c6665f5a754152a5ab9 100644 (file)
@@ -1010,6 +1010,7 @@ static int final_server_name(SSL *s, unsigned int context, int sent)
         /* TLSv1.3 doesn't have warning alerts so we suppress this */
         if (!SSL_IS_TLS13(s))
             ssl3_send_alert(s, SSL3_AL_WARNING, altmp);
+        s->servername_done = 0;
         return 1;
 
     case SSL_TLSEXT_ERR_NOACK: