]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-client-connection - Prevent duplicate registrations for extra capabili...
authorStephan Bosch <stephan.bosch@open-xchange.com>
Tue, 30 Mar 2021 19:45:33 +0000 (21:45 +0200)
committerMarkus Valentin <markus.valentin@open-xchange.com>
Tue, 20 Apr 2021 10:30:17 +0000 (12:30 +0200)
src/lib-smtp/smtp-client-connection.c

index 0ecb39a3a4018d0c91e2b136d278363e090985d2..27e1bc03f9272ae40c5edf58b560f1979ff4f7ed 100644 (file)
@@ -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);
 }