From: Stephan Bosch Date: Tue, 30 Mar 2021 19:45:33 +0000 (+0200) Subject: lib-smtp: smtp-client-connection - Prevent duplicate registrations for extra capabili... X-Git-Tag: 2.3.15~60 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31fc079aa9a5e023a1100b849aa2c768b8682eec;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-client-connection - Prevent duplicate registrations for extra capabilities. --- diff --git a/src/lib-smtp/smtp-client-connection.c b/src/lib-smtp/smtp-client-connection.c index 0ecb39a3a4..27e1bc03f9 100644 --- a/src/lib-smtp/smtp-client-connection.c +++ b/src/lib-smtp/smtp-client-connection.c @@ -79,12 +79,16 @@ void smtp_client_connection_accept_extra_capability( struct smtp_client_connection *conn, const struct smtp_client_capability_extra *cap) { + i_assert(smtp_client_connection_find_extra_capability(conn, cap->name) + == NULL); + + if (!array_is_created(&conn->extra_capabilities)) + p_array_init(&conn->extra_capabilities, conn->pool, 8); + struct smtp_client_capability_extra cap_new = { .name = p_strdup(conn->pool, cap->name), }; - if (!array_is_created(&conn->extra_capabilities)) - p_array_init(&conn->extra_capabilities, conn->pool, 8); array_push_back(&conn->extra_capabilities, &cap_new); }