···447447 tristate "Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards"448448 depends on NET_RADIO && PCMCIA && (BROKEN || !M32R)449449 select CRYPTO450450+ select CRYPTO_AES450451 ---help---451452 This is the standard Linux driver to support Cisco/Aironet PCMCIA452453 802.11 wireless cards. This driver is the same as the Aironet
···28752875 if (orinoco_lock(priv, &flags) != 0)28762876 return -EBUSY;2877287728782878- if (erq->pointer) {28782878+ if (erq->length > 0) {28792879 if ((index < 0) || (index >= ORINOCO_MAX_KEYS))28802880 index = priv->tx_key;28812881···29182918 if (erq->flags & IW_ENCODE_RESTRICTED)29192919 restricted = 1;2920292029212921- if (erq->pointer) {29212921+ if (erq->pointer && erq->length > 0) {29222922 priv->keys[index].len = cpu_to_le16(xlen);29232923 memset(priv->keys[index].data, 0,29242924 sizeof(priv->keys[index].data));
+2
drivers/net/wireless/zd1201.c
···18201820 zd->dev->name);1821182118221822 usb_set_intfdata(interface, zd);18231823+ zd1201_enable(zd); /* zd1201 likes to startup enabled, */18241824+ zd1201_disable(zd); /* interfering with all the wifis in range */18231825 return 0;1824182618251827err_net:
+1
net/ieee80211/Kconfig
···5858 depends on IEEE80211 && NET_RADIO5959 select CRYPTO6060 select CRYPTO_MICHAEL_MIC6161+ select CRC326162 ---help---6263 Include software based cipher suites in support of IEEE 802.11i6364 (aka TGi, WPA, WPA2, WPA-PSK, etc.) for use with TKIP enabled
+22-6
net/ieee80211/softmac/ieee80211softmac_auth.c
···116116 kfree(auth);117117}118118119119+/* Sends a response to an auth challenge (for shared key auth). */120120+static void121121+ieee80211softmac_auth_challenge_response(void *_aq)122122+{123123+ struct ieee80211softmac_auth_queue_item *aq = _aq;124124+125125+ /* Send our response */126126+ ieee80211softmac_send_mgt_frame(aq->mac, aq->net, IEEE80211_STYPE_AUTH, aq->state);127127+}128128+119129/* Handle the auth response from the AP120130 * This should be registered with ieee80211 as handle_auth 121131 */···207197 case IEEE80211SOFTMAC_AUTH_SHARED_CHALLENGE:208198 /* Check to make sure we have a challenge IE */209199 data = (u8 *)auth->info_element;210210- if(*data++ != MFIE_TYPE_CHALLENGE){200200+ if (*data++ != MFIE_TYPE_CHALLENGE) {211201 printkl(KERN_NOTICE PFX "Shared Key Authentication failed due to a missing challenge.\n");212202 break; 213203 }214204 /* Save the challenge */215205 spin_lock_irqsave(&mac->lock, flags);216206 net->challenge_len = *data++; 217217- if(net->challenge_len > WLAN_AUTH_CHALLENGE_LEN)207207+ if (net->challenge_len > WLAN_AUTH_CHALLENGE_LEN)218208 net->challenge_len = WLAN_AUTH_CHALLENGE_LEN;219219- if(net->challenge != NULL)209209+ if (net->challenge != NULL)220210 kfree(net->challenge);221211 net->challenge = kmalloc(net->challenge_len, GFP_ATOMIC);222212 memcpy(net->challenge, data, net->challenge_len);223213 aq->state = IEEE80211SOFTMAC_AUTH_SHARED_RESPONSE; 224224- spin_unlock_irqrestore(&mac->lock, flags);225214226226- /* Send our response */227227- ieee80211softmac_send_mgt_frame(mac, aq->net, IEEE80211_STYPE_AUTH, aq->state);215215+ /* We reuse the work struct from the auth request here.216216+ * It is safe to do so as each one is per-request, and217217+ * at this point (dealing with authentication response)218218+ * we have obviously already sent the initial auth219219+ * request. */220220+ cancel_delayed_work(&aq->work);221221+ INIT_WORK(&aq->work, &ieee80211softmac_auth_challenge_response, (void *)aq);222222+ schedule_work(&aq->work);223223+ spin_unlock_irqrestore(&mac->lock, flags);228224 return 0;229225 case IEEE80211SOFTMAC_AUTH_SHARED_PASS:230226 kfree(net->challenge);