]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: When duplicating SSL settings set empty values NULL
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 14 Nov 2018 12:43:52 +0000 (14:43 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Thu, 21 Mar 2019 08:02:24 +0000 (10:02 +0200)
Otherwise default CA is not used for client connections.

Broken in 30dca954

src/lib-master/master-service-ssl-settings.c

index 06aeb9d861f6c5c17baff686d7183d803f634108..7b480378e2f0782a48b494104277c8ddfeb7adb4 100644 (file)
@@ -178,7 +178,7 @@ void master_service_ssl_settings_to_iostream_set(
        set_r->cipher_list = p_strdup(pool, ssl_set->ssl_cipher_list);
        /* NOTE: It's a bit questionable whether ssl_ca should be used for
           clients. But at least for now it's needed for login-proxy. */
-       set_r->ca = p_strdup(pool, ssl_set->ssl_ca);
+       set_r->ca = p_strdup_empty(pool, ssl_set->ssl_ca);
 
        switch (type) {
        case MASTER_SERVICE_SSL_SETTINGS_TYPE_SERVER:
@@ -194,8 +194,8 @@ void master_service_ssl_settings_to_iostream_set(
                set_r->allow_invalid_cert = !set_r->verify_remote_cert;
                break;
        case MASTER_SERVICE_SSL_SETTINGS_TYPE_CLIENT:
-               set_r->ca_file = p_strdup(pool, ssl_set->ssl_client_ca_file);
-               set_r->ca_dir = p_strdup(pool, ssl_set->ssl_client_ca_dir);
+               set_r->ca_file = p_strdup_empty(pool, ssl_set->ssl_client_ca_file);
+               set_r->ca_dir = p_strdup_empty(pool, ssl_set->ssl_client_ca_dir);
                set_r->cert.cert = p_strdup_empty(pool, ssl_set->ssl_client_cert);
                set_r->cert.key = p_strdup_empty(pool, ssl_set->ssl_client_key);
                set_r->verify_remote_cert = ssl_set->ssl_client_require_valid_cert;