From: Aki Tuomi Date: Fri, 25 Mar 2022 12:07:40 +0000 (+0200) Subject: mail-crypt: Do not attempt to load empty keys X-Git-Tag: 2.4.0~4204 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4f2e25726affbc2f6630dddc5c156b97769dd121;p=thirdparty%2Fdovecot%2Fcore.git mail-crypt: Do not attempt to load empty keys --- diff --git a/src/plugins/mail-crypt/mail-crypt-pluginenv.c b/src/plugins/mail-crypt/mail-crypt-pluginenv.c index 68cf94fc6f..101e508d61 100644 --- a/src/plugins/mail-crypt/mail-crypt-pluginenv.c +++ b/src/plugins/mail-crypt/mail-crypt-pluginenv.c @@ -68,7 +68,8 @@ mail_crypt_load_global_private_keys(const struct fs_crypt_settings *set, while ((key_data = mail_crypt_plugin_getenv(set, str_c(set_key))) != NULL) { const char *set_pw = t_strconcat(str_c(set_key), "_password", NULL); const char *password = mail_crypt_plugin_getenv(set, set_pw); - if (mail_crypt_load_global_private_key(str_c(set_key), key_data, + if (*key_data != '\0' && + mail_crypt_load_global_private_key(str_c(set_key), key_data, set_pw, password, global_keys, error_r) < 0) return -1; @@ -89,7 +90,7 @@ int mail_crypt_global_keys_load_pluginenv(const char *set_prefix, int ret = 0; mail_crypt_global_keys_init(global_keys_r); - if (key_data != NULL) { + if (key_data != NULL && *key_data != '\0') { if (mail_crypt_load_global_public_key(set_key, key_data, global_keys_r, error_r) < 0) ret = -1; diff --git a/src/plugins/mail-crypt/mail-crypt-userenv.c b/src/plugins/mail-crypt/mail-crypt-userenv.c index b152a7f01c..1899d9fdba 100644 --- a/src/plugins/mail-crypt/mail-crypt-userenv.c +++ b/src/plugins/mail-crypt/mail-crypt-userenv.c @@ -22,7 +22,8 @@ mail_crypt_load_global_private_keys(struct mail_user *user, while ((key_data = mail_user_plugin_getenv(user, str_c(set_key))) != NULL) { const char *set_pw = t_strconcat(str_c(set_key), "_password", NULL); const char *password = mail_user_plugin_getenv(user, set_pw); - if (mail_crypt_load_global_private_key(str_c(set_key), key_data, + if (*key_data != '\0' && + mail_crypt_load_global_private_key(str_c(set_key), key_data, set_pw, password, global_keys, error_r) < 0) { @@ -51,7 +52,7 @@ int mail_crypt_global_keys_load(struct mail_user *user, const char *set_prefix, const char *key_data = mail_user_plugin_getenv(user, set_key); mail_crypt_global_keys_init(global_keys_r); - if (key_data != NULL) { + if (key_data != NULL && *key_data != '\0') { if (mail_crypt_load_global_public_key(set_key, key_data, global_keys_r,