9f6ef3
commit 9e885a707d604e9528b5491b78fb9c00f41193fc
9f6ef3
Author: Tomas Mraz <tmraz@fedoraproject.org>
9f6ef3
Date:   Thu Mar 26 15:59:00 2020 +0100
9f6ef3
9f6ef3
    s_server: Properly indicate ALPN protocol mismatch
9f6ef3
    
9f6ef3
    Return SSL_TLSEXT_ERR_ALERT_FATAL from alpn_select_cb so that
9f6ef3
    an alert is sent to the client on ALPN protocol mismatch.
9f6ef3
    
9f6ef3
    Fixes: #2708
9f6ef3
    
9f6ef3
    Reviewed-by: Matt Caswell <matt@openssl.org>
9f6ef3
    (Merged from https://github.com/openssl/openssl/pull/11415)
9f6ef3
9f6ef3
diff --git a/apps/s_server.c b/apps/s_server.c
9f6ef3
index bcc83e562c..591c6c19c5 100644
9f6ef3
--- a/apps/s_server.c
9f6ef3
+++ b/apps/s_server.c
9f6ef3
@@ -707,7 +707,7 @@ static int alpn_cb(SSL *s, const unsigned char **out, unsigned char *outlen,
9f6ef3
     if (SSL_select_next_proto
9f6ef3
         ((unsigned char **)out, outlen, alpn_ctx->data, alpn_ctx->len, in,
9f6ef3
          inlen) != OPENSSL_NPN_NEGOTIATED) {
9f6ef3
-        return SSL_TLSEXT_ERR_NOACK;
9f6ef3
+        return SSL_TLSEXT_ERR_ALERT_FATAL;
9f6ef3
     }
9f6ef3
 
9f6ef3
     if (!s_quiet) {