From 7effba0f71f475dbaa54f0b0982eaaeb0d9383b9 Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Thu, 27 Feb 2014 14:19:01 +0100 Subject: [PATCH] Fix return codes from LUKS_set_key. --- lib/setup.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/setup.c b/lib/setup.c index 9201be78..a0ac57fd 100644 --- a/lib/setup.c +++ b/lib/setup.c @@ -1657,14 +1657,15 @@ int crypt_keyslot_add_by_passphrase(struct crypt_device *cd, r = LUKS_set_key(keyslot, new_password, new_passwordLen, &cd->u.luks1.hdr, vk, cd->iteration_time, &cd->u.luks1.PBKDF2_per_sec, cd); - if(r < 0) goto out; + if(r < 0) + goto out; r = 0; out: if (!new_passphrase) crypt_safe_free(new_password); crypt_free_volume_key(vk); - return r ?: keyslot; + return r < 0 ? r : keyslot; } int crypt_keyslot_change_by_passphrase(struct crypt_device *cd, @@ -1713,10 +1714,10 @@ int crypt_keyslot_change_by_passphrase(struct crypt_device *cd, if (keyslot_old == keyslot_new) { if (r >= 0) - log_verbose(cd, _("Key slot %d changed.\n"), r); + log_verbose(cd, _("Key slot %d changed.\n"), keyslot_new); } else { if (r >= 0) { - log_verbose(cd, _("Replaced with key slot %d.\n"), r); + log_verbose(cd, _("Replaced with key slot %d.\n"), keyslot_new); r = crypt_keyslot_destroy(cd, keyslot_old); } } @@ -1724,7 +1725,7 @@ int crypt_keyslot_change_by_passphrase(struct crypt_device *cd, log_err(cd, _("Failed to swap new key slot.\n")); out: crypt_free_volume_key(vk); - return r ?: keyslot_new; + return r < 0 ? r : keyslot_new; } int crypt_keyslot_add_by_keyfile_offset(struct crypt_device *cd,