public inbox for kernel-janitors@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] iwmc3200wifi: add a range check to iwm_cfg80211_get_key()
@ 2011-10-12  8:10 Dan Carpenter
  2011-10-12  8:26 ` Samuel Ortiz
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2011-10-12  8:10 UTC (permalink / raw)
  To: Samuel Ortiz
  Cc: Intel Linux Wireless, John W. Linville, linux-wireless,
	kernel-janitors

Smatch complains that "key_index" is capped at 5 in nl80211_get_key()
but iwm->keys[] only has 4 elements.  I don't know if this is really
needed, but the other ->get_key() implementations seemed to check
for overflows so I've added a check here.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

diff --git a/drivers/net/wireless/iwmc3200wifi/cfg80211.c b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
index ed57e44..c42be81 100644
--- a/drivers/net/wireless/iwmc3200wifi/cfg80211.c
+++ b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
@@ -187,13 +187,17 @@ static int iwm_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
 						 struct key_params*))
 {
 	struct iwm_priv *iwm = ndev_to_iwm(ndev);
-	struct iwm_key *key = &iwm->keys[key_index];
+	struct iwm_key *key;
 	struct key_params params;
 
 	IWM_DBG_WEXT(iwm, DBG, "Getting key %d\n", key_index);
 
+	if (key_index >= IWM_NUM_KEYS)
+		return -ENOENT;
+
 	memset(&params, 0, sizeof(params));
 
+	key = &iwm->keys[key_index];
 	params.cipher = key->cipher;
 	params.key_len = key->key_len;
 	params.seq_len = key->seq_len;

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-10-18  8:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-12  8:10 [patch] iwmc3200wifi: add a range check to iwm_cfg80211_get_key() Dan Carpenter
2011-10-12  8:26 ` Samuel Ortiz
2011-10-18  6:50   ` [patch] iwmc3200wifi: add some more range checks Dan Carpenter
2011-10-18  8:39     ` Samuel Ortiz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox