]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mail-crypt: Do not attempt to cache keys on failure
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 28 Nov 2016 21:05:16 +0000 (23:05 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 29 Nov 2016 12:49:09 +0000 (14:49 +0200)
src/plugins/mail-crypt/mail-crypt-key.c

index c104428fcad5c808033e1a0410e555e76c517302..76b92a9174d9f92fb658fc3fe5ab45ddc8d6570c 100644 (file)
@@ -1063,14 +1063,12 @@ int mail_crypt_box_generate_keypair(struct mailbox *box,
 
        ret = 0;
 
-       if (mail_crypt_generate_keypair(curve, pair, pubid_r, error_r) < 0)
-               ret = -1;
-       if (ret == 0 &&
-           mail_crypt_box_set_keys(box, *pubid_r,
-                                   pair->priv, user_key, pair->pub,
-                                   error_r) < 0) {
+       if ((ret = mail_crypt_generate_keypair(curve, pair, pubid_r, error_r)) < 0) {
+               /* failed */
+       } else if ((ret = mail_crypt_box_set_keys(box, *pubid_r,
+                                               pair->priv, user_key, pair->pub,
+                                               error_r)) < 0) {
                dcrypt_keypair_unref(pair);
-               ret = -1;
        } else {
                mail_crypt_put_key_cache(&muser->key_cache, *pubid_r, pair->priv,
                                         pair->pub);