From 096c50cafc88ffa422f142af4576e1cd32e3295d Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Tue, 22 Aug 2017 15:38:29 +0200 Subject: [PATCH] Fix memory leak during repeated password entry. --- src/cryptsetup.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/cryptsetup.c b/src/cryptsetup.c index 14b787b2..e1c166ff 100644 --- a/src/cryptsetup.c +++ b/src/cryptsetup.c @@ -916,6 +916,9 @@ static int action_open_luks(void) r = crypt_activate_by_passphrase(cd, activated_name, opt_key_slot, password, passwordLen, activate_flags); check_signal(&r); + + crypt_safe_free(password); + password = NULL; } while ((r == -EPERM || r == -ERANGE) && (--tries > 0)); } out: @@ -1358,12 +1361,15 @@ static int action_luksResume(void) r = tools_get_key(NULL, &password, &passwordLen, opt_keyfile_offset, opt_keyfile_size, opt_key_file, opt_timeout, _verify_passphrase(0), 0, cd); - if (r) + if (r < 0) goto out; r = crypt_resume_by_passphrase(cd, action_argv[0], CRYPT_ANY_SLOT, password, passwordLen); check_signal(&r); + + crypt_safe_free(password); + password = NULL; } while ((r == -EPERM || r == -ERANGE) && (--tries > 0)); out: crypt_safe_free(password);