diff options
author | Kasoju Mallikarjun <mkasoju@nvidia.com> | 2011-12-27 18:29:40 +0530 |
---|---|---|
committer | Varun Wadekar <vwadekar@nvidia.com> | 2012-01-06 18:02:35 +0530 |
commit | 5db23a4930bf48b01fe6cd42586a4ac15c0099aa (patch) | |
tree | 448046f64661cb6c414c348513a61d71c29ce8a0 /drivers/md/dm-crypt.c | |
parent | 26209df8e14fb73a001eca512005d462091ea843 (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.c | 19 |
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) |