summaryrefslogtreecommitdiffstats
path: root/net/mac80211/cfg.c
diff options
context:
space:
mode:
authorMax Stepanov <Max.Stepanov@intel.com>2013-12-08 06:30:52 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-12-16 09:10:10 -0500
commit354e159d8c9970969873d66a789d3ac4528c44ff (patch)
treee4952fce57368a9dbc3b56861643d8d091b7a0f7 /net/mac80211/cfg.c
parentdddd586bee9325e890a671f8e24ae39418338295 (diff)
mac80211: check pairwise key_idx on get_key call
Verify that a pairwise key index value on ieee80211_get_key call doesn't exceed the boundaries of the pairwise key array. Signed-off-by: Max Stepanov <Max.Stepanov@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r--net/mac80211/cfg.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 35bb71be72bb..0962c77f013e 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -301,9 +301,9 @@ static int ieee80211_get_key(struct wiphy *wiphy, struct net_device *dev,
301 if (!sta) 301 if (!sta)
302 goto out; 302 goto out;
303 303
304 if (pairwise) 304 if (pairwise && key_idx < NUM_DEFAULT_KEYS)
305 key = rcu_dereference(sta->ptk[key_idx]); 305 key = rcu_dereference(sta->ptk[key_idx]);
306 else if (key_idx < NUM_DEFAULT_KEYS) 306 else if (!pairwise && key_idx < NUM_DEFAULT_KEYS)
307 key = rcu_dereference(sta->gtk[key_idx]); 307 key = rcu_dereference(sta->gtk[key_idx]);
308 } else 308 } else
309 key = rcu_dereference(sdata->keys[key_idx]); 309 key = rcu_dereference(sdata->keys[key_idx]);