]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-ssl-iostream: Set context application protocols only once
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 30 Jan 2025 11:57:08 +0000 (13:57 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:39:01 +0000 (12:39 +0200)
src/lib-ssl-iostream/iostream-openssl-context.c

index e6d47e8a2ea6d115666a5f5600a5495da559d04e..a6e0ef5296ab7cdd99da598011132bc421b494d3 100644 (file)
@@ -758,7 +758,7 @@ ssl_iostream_context_set(struct ssl_iostream_context *ctx,
                SSL_CTX_set_alpn_select_cb(ctx->ssl_ctx, openssl_iostream_alpn_select, ctx);
 #endif
        }
-       if (set->application_protocols != NULL) {
+       if (ctx->protos == NULL && set->application_protocols != NULL) {
                openssl_iostream_context_set_application_protocols(ctx,
                        set->application_protocols);
        }
@@ -787,6 +787,7 @@ ssl_proxy_ctx_set_crypto_params(SSL_CTX *ssl_ctx,
 void openssl_iostream_context_set_application_protocols(struct ssl_iostream_context *ctx,
                                                        const char *const *names)
 {
+       i_assert(ctx->protos == NULL);
        i_assert(names != NULL);
        ARRAY(struct ssl_alpn_protocol) protos;
        p_array_init(&protos, ctx->pool, str_array_length(names) + 1);