aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2015-05-02 19:26:28 +0300
committerGerrit - the friendly Code Review server <code-review@localhost>2015-05-31 16:06:17 -0700
commit7fcbd0b0827354a213dc43575bfed8980a32d781 (patch)
tree1bb8873f6942086e768c2d8f4962cd92c5de7d68
parent803f4d734eddebf95cd306e7a6e94ba62e36fcb9 (diff)
downloadandroid_external_wpa_supplicant_8-7fcbd0b0827354a213dc43575bfed8980a32d781.tar.gz
android_external_wpa_supplicant_8-7fcbd0b0827354a213dc43575bfed8980a32d781.tar.bz2
android_external_wpa_supplicant_8-7fcbd0b0827354a213dc43575bfed8980a32d781.zip
EAP-pwd peer: Fix asymmetric fragmentation behavior.
The L (Length) and M (More) flags needs to be cleared before deciding whether the locally generated response requires fragmentation. This fixes an issue where these flags from the server could have been invalid for the following message. In some cases, this could have resulted in triggering the wpabuf security check that would terminate the process due to invalid buffer allocation. CRs-Fixed: 833592 Git-commit: 28a069a545b06b99eb55ad53f63f2c99e65a98f6 Git-repo : git://w1.fi/srv/git/hostap.git Signed-off-by: Jouni Malinen <j@w1.fi> Change-Id: I29254a57c259c492f061a62657981f36bee8ca59
-rw-r--r--src/eap_peer/eap_pwd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c
index 4642527c..ac0db995 100644
--- a/src/eap_peer/eap_pwd.c
+++ b/src/eap_peer/eap_pwd.c
@@ -914,6 +914,7 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret,
/*
* we have output! Do we need to fragment it?
*/
+ lm_exch = EAP_PWD_GET_EXCHANGE(lm_exch);
len = wpabuf_len(data->outbuf);
if ((len + EAP_PWD_HDR_SIZE) > data->mtu) {
resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_PWD, data->mtu,