summaryrefslogtreecommitdiff
path: root/net/wireless/wext-compat.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2014-09-10 14:39:56 +0400
committerJohannes Berg <johannes.berg@intel.com>2014-09-11 14:07:28 +0400
commit538c9eb8b3fd33d3a0722b2c04ec4f574eaa6e9f (patch)
tree738b71b941b78e7708c158eb79b7fabeddf480f4 /net/wireless/wext-compat.c
parent29c3f9c3996abea060fa6e0b9e6a30d3f0cc828c (diff)
downloadlinux-538c9eb8b3fd33d3a0722b2c04ec4f574eaa6e9f.tar.xz
cfg80211: clear wext keys when freeing and removing them
When freeing the keys stored for wireless extensions, clear the memory to avoid having the key material stick around in memory "forever". Similarly, when userspace overwrites a key, actually clear it instead of just setting the key length to zero. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/wext-compat.c')
-rw-r--r--net/wireless/wext-compat.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/wireless/wext-compat.c b/net/wireless/wext-compat.c
index 11120bb14162..0f47948c572f 100644
--- a/net/wireless/wext-compat.c
+++ b/net/wireless/wext-compat.c
@@ -496,6 +496,8 @@ static int __cfg80211_set_encryption(struct cfg80211_registered_device *rdev,
err = 0;
if (!err) {
if (!addr) {
+ memset(wdev->wext.keys->data[idx], 0,
+ sizeof(wdev->wext.keys->data[idx]));
wdev->wext.keys->params[idx].key_len = 0;
wdev->wext.keys->params[idx].cipher = 0;
}