Moved proto == RSN validation from pmksa_cache.c into the caller
authorJouni Malinen <j@w1.fi>
Tue, 13 Jan 2009 18:15:06 +0000 (20:15 +0200)
committerJouni Malinen <j@w1.fi>
Tue, 13 Jan 2009 18:15:06 +0000 (20:15 +0200)
src/rsn_supp/pmksa_cache.c
src/rsn_supp/wpa.c

index f8373de..c38c9ab 100644 (file)
@@ -167,7 +167,7 @@ pmksa_cache_add(struct rsn_pmksa_cache *pmksa, const u8 *pmk, size_t pmk_len,
        struct rsn_pmksa_cache_entry *entry, *pos, *prev;
        struct os_time now;
 
-       if (pmksa->sm->proto != WPA_PROTO_RSN || pmk_len > PMK_LEN)
+       if (pmk_len > PMK_LEN)
                return NULL;
 
        entry = os_zalloc(sizeof(*entry));
index b221476..aa493f4 100644 (file)
@@ -246,9 +246,11 @@ static int wpa_supplicant_get_pmk(struct wpa_sm *sm,
                        wpa_hexdump_key(MSG_DEBUG, "WPA: PMK from EAPOL state "
                                        "machines", sm->pmk, pmk_len);
                        sm->pmk_len = pmk_len;
-                       pmksa_cache_add(sm->pmksa, sm->pmk, pmk_len, src_addr,
-                                       sm->own_addr, sm->network_ctx,
-                                       sm->key_mgmt);
+                       if (sm->proto == WPA_PROTO_RSN) {
+                               pmksa_cache_add(sm->pmksa, sm->pmk, pmk_len,
+                                               src_addr, sm->own_addr,
+                                               sm->network_ctx, sm->key_mgmt);
+                       }
                        if (!sm->cur_pmksa && pmkid &&
                            pmksa_cache_get(sm->pmksa, src_addr, pmkid)) {
                                wpa_printf(MSG_DEBUG, "RSN: the new PMK "