Skip to content

Commit

Permalink
[PATCH] Check ieee80211softmac_auth_resp kmalloc result
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Arnaldo Carvalho de Melo authored and Jeff Garzik committed Dec 2, 2006
1 parent 8e87295 commit 571d6ee
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 deletions.
5 changes: 1 addition & 4 deletions net/ieee80211/ieee80211_module.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,17 +67,14 @@ static int ieee80211_networks_allocate(struct ieee80211_device *ieee)
return 0;

ieee->networks =
kmalloc(MAX_NETWORK_COUNT * sizeof(struct ieee80211_network),
kzalloc(MAX_NETWORK_COUNT * sizeof(struct ieee80211_network),
GFP_KERNEL);
if (!ieee->networks) {
printk(KERN_WARNING "%s: Out of memory allocating beacons\n",
ieee->dev->name);
return -ENOMEM;
}

memset(ieee->networks, 0,
MAX_NETWORK_COUNT * sizeof(struct ieee80211_network));

return 0;
}

Expand Down
7 changes: 3 additions & 4 deletions net/ieee80211/ieee80211_rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1304,12 +1304,11 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element
case MFIE_TYPE_IBSS_DFS:
if (network->ibss_dfs)
break;
network->ibss_dfs =
kmalloc(info_element->len, GFP_ATOMIC);
network->ibss_dfs = kmemdup(info_element->data,
info_element->len,
GFP_ATOMIC);
if (!network->ibss_dfs)
return 1;
memcpy(network->ibss_dfs, info_element->data,
info_element->len);
network->flags |= NETWORK_HAS_IBSS_DFS;
break;

Expand Down
14 changes: 10 additions & 4 deletions net/ieee80211/softmac/ieee80211softmac_auth.c
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,16 @@ ieee80211softmac_auth_resp(struct net_device *dev, struct ieee80211_auth *auth)
net->challenge_len = *data++;
if (net->challenge_len > WLAN_AUTH_CHALLENGE_LEN)
net->challenge_len = WLAN_AUTH_CHALLENGE_LEN;
if (net->challenge != NULL)
kfree(net->challenge);
net->challenge = kmalloc(net->challenge_len, GFP_ATOMIC);
memcpy(net->challenge, data, net->challenge_len);
kfree(net->challenge);
net->challenge = kmemdup(data, net->challenge_len,
GFP_ATOMIC);
if (net->challenge == NULL) {
printkl(KERN_NOTICE PFX "Shared Key "
"Authentication failed due to "
"memory shortage.\n");
spin_unlock_irqrestore(&mac->lock, flags);
break;
}
aq->state = IEEE80211SOFTMAC_AUTH_SHARED_RESPONSE;

/* We reuse the work struct from the auth request here.
Expand Down

0 comments on commit 571d6ee

Please sign in to comment.