]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mail-crypt: Fail if key is not found and save_version less than 2
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 28 Nov 2016 12:45:01 +0000 (14:45 +0200)
committerGitLab <gitlab@git.dovecot.net>
Mon, 28 Nov 2016 16:24:22 +0000 (18:24 +0200)
Fail if save version is set to 0 or 1, instead
of trying to use undefined value for public key.

src/plugins/mail-crypt/mail-crypt-plugin.c

index bd63935902d184ccd76471c72cf743474628b86d..a40ebc795e66b03afcd7cad3260bdac417c765e8 100644 (file)
@@ -292,8 +292,17 @@ mail_crypt_mail_save_begin(struct mail_save_context *ctx,
                                return ret;
                        }
 
-                       if (muser->save_version > 1 &&
-                           mail_crypt_box_generate_keypair(box, &pair, NULL,
+                       if (muser->save_version < 2) {
+                               mail_storage_set_error(box->storage,
+                                        MAIL_ERROR_PARAMS,
+                                        t_strdup_printf("generate_keypair(%s) failed: "
+                                                        "unsupported save_version=%d",
+                                                        mailbox_get_vname(box),
+                                                        muser->save_version));
+                                return -1;
+                       }
+
+                       if (mail_crypt_box_generate_keypair(box, &pair, NULL,
                                                            &pubid, &error) < 0) {
                                mail_storage_set_error(box->storage,
                                        MAIL_ERROR_PARAMS,