From 8219d2b7dd633f6d62e5f7a9369479d1e02d2001 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Fri, 30 Sep 2022 17:05:47 +0300 Subject: [PATCH] PASN: Fix CONFIG_PASN=y build without CONFIG_IEEE80211R=y Do not try to use variables that are not defined without CONFIG_IEEE80211R=y and add the forgotten "inline" for the function wrapper. Fixes: 5c65ad6c0b08 ("PASN: Support PASN with FT key derivation") Signed-off-by: Jouni Malinen --- src/rsn_supp/wpa.h | 5 +++-- wpa_supplicant/pasn_supplicant.c | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/rsn_supp/wpa.h b/src/rsn_supp/wpa.h index 80262a23c..8449db761 100644 --- a/src/rsn_supp/wpa.h +++ b/src/rsn_supp/wpa.h @@ -509,8 +509,9 @@ wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies, size_t ies_len, #ifdef CONFIG_PASN -int wpa_pasn_ft_derive_pmk_r1(struct wpa_sm *sm, int akmp, const u8 *r1kh_id, - u8 *pmk_r1, size_t *pmk_r1_len, u8 *pmk_r1_name) +static inline int +wpa_pasn_ft_derive_pmk_r1(struct wpa_sm *sm, int akmp, const u8 *r1kh_id, + u8 *pmk_r1, size_t *pmk_r1_len, u8 *pmk_r1_name) { return -1; } diff --git a/wpa_supplicant/pasn_supplicant.c b/wpa_supplicant/pasn_supplicant.c index 2e6d9a7d4..7bd8443fa 100644 --- a/wpa_supplicant/pasn_supplicant.c +++ b/wpa_supplicant/pasn_supplicant.c @@ -969,6 +969,7 @@ static struct wpabuf * wpas_pasn_build_auth_1(struct wpa_supplicant *wpa_s, pmkid = NULL; if (wpa_key_mgmt_ft(pasn->akmp)) { +#ifdef CONFIG_IEEE80211R ret = wpa_pasn_ft_derive_pmk_r1(wpa_s->wpa, pasn->akmp, pasn->bssid, pasn->pmk_r1, @@ -981,6 +982,9 @@ static struct wpabuf * wpas_pasn_build_auth_1(struct wpa_supplicant *wpa_s, } pmkid = pasn->pmk_r1_name; +#else /* CONFIG_IEEE80211R */ + goto fail; +#endif /* CONFIG_IEEE80211R */ } else if (wrapped_data != WPA_PASN_WRAPPED_DATA_NO) { struct rsn_pmksa_cache_entry *pmksa;