summaryrefslogtreecommitdiffstats
path: root/contrib/hostapd/eap_sim_common.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2008-03-24 21:06:16 +0000
committersam <sam@FreeBSD.org>2008-03-24 21:06:16 +0000
commit66e67b92fee232a5ee45d03750cad85026828945 (patch)
tree78bf17cbe16912111a6c13e5b474634183b11be0 /contrib/hostapd/eap_sim_common.c
parent1bf2fd00c50865c26197a0fb9ce70f417b9fa121 (diff)
downloadFreeBSD-src-66e67b92fee232a5ee45d03750cad85026828945.zip
FreeBSD-src-66e67b92fee232a5ee45d03750cad85026828945.tar.gz
Import of hostapd 0.5.10
Diffstat (limited to 'contrib/hostapd/eap_sim_common.c')
-rw-r--r--contrib/hostapd/eap_sim_common.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/contrib/hostapd/eap_sim_common.c b/contrib/hostapd/eap_sim_common.c
index dc8b2f6..cc43023 100644
--- a/contrib/hostapd/eap_sim_common.c
+++ b/contrib/hostapd/eap_sim_common.c
@@ -1,6 +1,6 @@
/*
* EAP peer: EAP-SIM/AKA shared routines
- * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2004-2008, Jouni Malinen <j@w1.fi>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -118,6 +118,11 @@ int eap_sim_derive_keys_reauth(u16 _counter,
const u8 *addr[4];
size_t len[4];
+ while (identity_len > 0 && identity[identity_len - 1] == 0) {
+ wpa_printf(MSG_DEBUG, "EAP-SIM: Workaround - drop null "
+ "character from the end of identity");
+ identity_len--;
+ }
addr[0] = identity;
len[0] = identity_len;
addr[1] = counter;
@@ -250,6 +255,10 @@ int eap_sim_parse_attr(const u8 *start, const u8 *end,
pos, pos[1] * 4, end);
return -1;
}
+ if (pos[1] == 0) {
+ wpa_printf(MSG_INFO, "EAP-SIM: Attribute underflow");
+ return -1;
+ }
apos = pos + 2;
alen = pos[1] * 4 - 2;
wpa_hexdump(MSG_MSGDUMP, "EAP-SIM: Attribute data",
OpenPOWER on IntegriCloud