aboutsummaryrefslogtreecommitdiffstats
path: root/net/ieee80211/softmac
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2006-11-20 22:26:49 -0500
committerJeff Garzik <jeff@garzik.org>2006-12-02 00:12:05 -0500
commit571d6eee9b5bce28fcbeb7588890ad5ca3f8c718 (patch)
tree38ad5d544dc9c14fc49a03957c24ee7a2e450b60 /net/ieee80211/softmac
parent8e87295b9578fa46b5f325a7dc42ddbbdad6e0d0 (diff)
[PATCH] Check ieee80211softmac_auth_resp kmalloc result
And use kmemdup and kzalloc where applicable Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/ieee80211/softmac')
-rw-r--r--net/ieee80211/softmac/ieee80211softmac_auth.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_auth.c b/net/ieee80211/softmac/ieee80211softmac_auth.c
index 95e5287e12bb..0612015f1c78 100644
--- a/net/ieee80211/softmac/ieee80211softmac_auth.c
+++ b/net/ieee80211/softmac/ieee80211softmac_auth.c
@@ -216,10 +216,16 @@ ieee80211softmac_auth_resp(struct net_device *dev, struct ieee80211_auth *auth)
216 net->challenge_len = *data++; 216 net->challenge_len = *data++;
217 if (net->challenge_len > WLAN_AUTH_CHALLENGE_LEN) 217 if (net->challenge_len > WLAN_AUTH_CHALLENGE_LEN)
218 net->challenge_len = WLAN_AUTH_CHALLENGE_LEN; 218 net->challenge_len = WLAN_AUTH_CHALLENGE_LEN;
219 if (net->challenge != NULL) 219 kfree(net->challenge);
220 kfree(net->challenge); 220 net->challenge = kmemdup(data, net->challenge_len,
221 net->challenge = kmalloc(net->challenge_len, GFP_ATOMIC); 221 GFP_ATOMIC);
222 memcpy(net->challenge, data, net->challenge_len); 222 if (net->challenge == NULL) {
223 printkl(KERN_NOTICE PFX "Shared Key "
224 "Authentication failed due to "
225 "memory shortage.\n");
226 spin_unlock_irqrestore(&mac->lock, flags);
227 break;
228 }
223 aq->state = IEEE80211SOFTMAC_AUTH_SHARED_RESPONSE; 229 aq->state = IEEE80211SOFTMAC_AUTH_SHARED_RESPONSE;
224 230
225 /* We reuse the work struct from the auth request here. 231 /* We reuse the work struct from the auth request here.