aboutsummaryrefslogtreecommitdiffstats
path: root/src/eapol_supp
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2013-10-04 10:23:25 -0700
committerDmitry Shmidt <dimitrysh@google.com>2013-10-04 10:26:29 -0700
commit5605286c30e1701491bd3af974ae423727750edd (patch)
tree3b4995a1afd08923f29fe964e650b389d3c6b469 /src/eapol_supp
parent73b28cc4bd1d5efa3534ad9e28365fea9a62ffd3 (diff)
downloadandroid_external_wpa_supplicant_8-5605286c30e1701491bd3af974ae423727750edd.tar.gz
android_external_wpa_supplicant_8-5605286c30e1701491bd3af974ae423727750edd.tar.bz2
android_external_wpa_supplicant_8-5605286c30e1701491bd3af974ae423727750edd.zip
Cumulative patch from commit 8b3b803ab9fe69650da7e3b2ee9e44f0f054ee0a
8b3b803 Include Extended Capabilities element based on scan results 6903ee6 P2P Extend postponing of concurrent scans for persistent GO 77e3094 hlr_auc_gw: Fix max_chal value validation 3e6547b hlr_auc_gw: Add support for processing command line operations 2b5b875 EAP-AKA server: Fix AUTS processing 9a50ee6 hlr_auc_gw: Update file comments to mention Milenage 5388dc9 Document use of Linux capabilities instead of privileged process a771c07 Add driver status information to control interface 739faee nl80211: Add some more debug prints for mgmt frame TX f78f278 nl80211: Fix off-channel Action frame TX from GO with use_monitor 298f518 Get rid of compiler warning in no-CONFIG_CTRL_IFACE builds ea61aa1 Add no_ctrl_interface config param to clear ctrl_interface 25b65a1 Make sure updated BSS entry does not get added twice to the list bbc6c72 P2P: Use group formation timeout on persistent group GO 41f8532 P2P: Extend group formation timeout on GO to first data connection 20625e9 P2P: Remove P2P groups on process termination 76fe79e Register wpa_msg callback even if only global ctrl_iface is used af96448 nl80211: Add more debug prints for send_mlme operations 5d4c78f nl80211: Reset nlmode to station on leaving IBSS 0249c12 Avoid compiler warning with CONFIG_NO_STDOUT_DEBUG=y ed1bf01 Allow hostapd config file for dynamically added interface 97bacf7 Do not clear hostapd configuration parameters on disable-iface 66f4dd1 hostapd: Fix couple of deinit path cases to clear pointers f18b781 nl80211: Print more debug info on management frame RX information 89286e9 Re-open ctrl_iface socket on some failure cases as a workaround 3ca96df atheros: Compile fix for driver code not defining IEEE80211_APPIE_FRAME_WNM 762c92a OpenSSL: Split OCSP peer_cert/peer_issuer debug output into parts f224cf0 HS 2.0: Allow printf format parsing with language:name strings 913c19c Fix wpa_config_parse_string() to null terminate printf decoded values 04e533e Fix language string length validation in parse_lang_string() 742e715 Simplify ctrl_iface sendto() use 6668efd Clear frequency list on empty value 1a9f247 Make scan_freq field to be saved by save_config aa78cd3 Drop EAP packet with code 10 before EAPOL state machine processing 3cc247a Use configured sched_scan interval for the PNO scan d047ae6 WPS: Ignore PBC-to-PIN change from M1 to M2 as a workaround 79986bf Print ctrl_iface sendto() failures into debug log eab2b50 P2P: Cancel group formation timeout on client connection 00eb299 P2P: Fix operation channel configuration update Change-Id: I9269e23bc8019b951c2a2d3c707562b2e006148b Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'src/eapol_supp')
-rw-r--r--src/eapol_supp/eapol_supp_sm.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/eapol_supp/eapol_supp_sm.c b/src/eapol_supp/eapol_supp_sm.c
index 9b054fcd..c4475e57 100644
--- a/src/eapol_supp/eapol_supp_sm.c
+++ b/src/eapol_supp/eapol_supp_sm.c
@@ -1257,6 +1257,24 @@ int eapol_sm_rx_eapol(struct eapol_sm *sm, const u8 *src, const u8 *buf,
switch (hdr->type) {
case IEEE802_1X_TYPE_EAP_PACKET:
+ if (sm->conf.workaround) {
+ /*
+ * An AP has been reported to send out EAP message with
+ * undocumented code 10 at some point near the
+ * completion of EAP authentication. This can result in
+ * issues with the unexpected EAP message triggering
+ * restart of EAPOL authentication. Avoid this by
+ * skipping the message without advancing the state
+ * machine.
+ */
+ const struct eap_hdr *ehdr =
+ (const struct eap_hdr *) (hdr + 1);
+ if (plen >= sizeof(*ehdr) && ehdr->code == 10) {
+ wpa_printf(MSG_DEBUG, "EAPOL: Ignore EAP packet with unknown code 10");
+ break;
+ }
+ }
+
if (sm->cached_pmk) {
/* Trying to use PMKSA caching, but Authenticator did
* not seem to have a matching entry. Need to restart