summaryrefslogtreecommitdiff
path: root/drivers/md/dm-crypt.c
diff options
context:
space:
mode:
authorKasoju Mallikarjun <mkasoju@nvidia.com>2011-12-27 18:29:40 +0530
committerVarun Wadekar <vwadekar@nvidia.com>2012-01-06 18:02:35 +0530
commit5db23a4930bf48b01fe6cd42586a4ac15c0099aa (patch)
tree448046f64661cb6c414c348513a61d71c29ce8a0 /drivers/md/dm-crypt.c
parent26209df8e14fb73a001eca512005d462091ea843 (diff)
Revert "dm crypt: wipe keys string immediately after key is set"
This reverts commit de8be5ac70f50a2340f24fd769a1aafa5a51ae34. Change-Id: I4d2788550ab382ec248c7a2fa10b4cb4e2766283 Reviewed-on: http://git-master/r/72232 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mallikarjun Kasoju <mkasoju@nvidia.com> Tested-by: Mallikarjun Kasoju <mkasoju@nvidia.com> Tested-by: Ahung Cheng <ahcheng@nvidia.com> Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'drivers/md/dm-crypt.c')
-rw-r--r--drivers/md/dm-crypt.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 8c2a000cf3f5..44cd2f8f83a2 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -1323,29 +1323,20 @@ static int crypt_setkey_allcpus(struct crypt_config *cc)
static int crypt_set_key(struct crypt_config *cc, char *key)
{
- int r = -EINVAL;
- int key_string_len = strlen(key);
-
/* The key size may not be changed. */
- if (cc->key_size != (key_string_len >> 1))
- goto out;
+ if (cc->key_size != (strlen(key) >> 1))
+ return -EINVAL;
/* Hyphen (which gives a key_size of zero) means there is no key. */
if (!cc->key_size && strcmp(key, "-"))
- goto out;
+ return -EINVAL;
if (cc->key_size && crypt_decode_key(cc->key, key, cc->key_size) < 0)
- goto out;
+ return -EINVAL;
set_bit(DM_CRYPT_KEY_VALID, &cc->flags);
- r = crypt_setkey_allcpus(cc);
-
-out:
- /* Hex key string not needed after here, so wipe it. */
- memset(key, '0', key_string_len);
-
- return r;
+ return crypt_setkey_allcpus(cc);
}
static int crypt_wipe_key(struct crypt_config *cc)