]> 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)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 29 Nov 2016 12:47:10 +0000 (14:47 +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 d8eacc51256ac454bedda76ff8d2abe0a6497585..a9855fd4575eadb9a775fc6167dd132614660799 100644 (file)
@@ -296,8 +296,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,