Snap for 8948084 from 0d29af0577e86424b4a6b4ea56e180680e46554e to mainline-appsearch-release
Change-Id: I590a2337c7e27624c502aba0152ca41722af3eaf
diff --git a/src/eap_peer/eap_aka.c b/src/eap_peer/eap_aka.c
index 8c475f1..ee7010d 100644
--- a/src/eap_peer/eap_aka.c
+++ b/src/eap_peer/eap_aka.c
@@ -385,6 +385,7 @@
size_t identity_len = 0;
const u8 *realm = NULL;
size_t realm_len = 0;
+ struct eap_peer_config *config = eap_get_config(sm);
wpa_hexdump_ascii(MSG_DEBUG,
"EAP-AKA: (encr) AT_NEXT_PSEUDONYM",
@@ -400,6 +401,17 @@
break;
}
}
+ // If no realm from the permanent identity, look for the
+ // realm of the anonymous identity.
+ if (realm_len == 0 && config && config->anonymous_identity
+ && config->anonymous_identity_len > 0) {
+ for (realm = config->anonymous_identity,
+ realm_len = config->anonymous_identity_len;
+ realm_len > 0; realm_len--, realm++) {
+ if (*realm == '@')
+ break;
+ }
+ }
data->pseudonym = os_malloc(attr->next_pseudonym_len +
realm_len);
if (data->pseudonym == NULL) {
diff --git a/src/eap_peer/eap_sim.c b/src/eap_peer/eap_sim.c
index 0986627..de423e8 100644
--- a/src/eap_peer/eap_sim.c
+++ b/src/eap_peer/eap_sim.c
@@ -407,6 +407,7 @@
size_t identity_len = 0;
const u8 *realm = NULL;
size_t realm_len = 0;
+ struct eap_peer_config *config = eap_get_config(sm);
wpa_hexdump_ascii(MSG_DEBUG,
"EAP-SIM: (encr) AT_NEXT_PSEUDONYM",
@@ -422,6 +423,17 @@
break;
}
}
+ // If no realm from the permanent identity, look for the
+ // realm of the anonymous identity.
+ if (realm_len == 0 && config && config->anonymous_identity
+ && config->anonymous_identity_len > 0) {
+ for (realm = config->anonymous_identity,
+ realm_len = config->anonymous_identity_len;
+ realm_len > 0; realm_len--, realm++) {
+ if (*realm == '@')
+ break;
+ }
+ }
data->pseudonym = os_malloc(attr->next_pseudonym_len +
realm_len);
if (data->pseudonym == NULL) {
diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c
index dde2f44..2112ecd 100644
--- a/wpa_supplicant/scan.c
+++ b/wpa_supplicant/scan.c
@@ -1380,26 +1380,13 @@
is_6ghz_supported(wpa_s)) {
int i;
- /* Exclude 5 GHz channels from the full scan for P2P connection
+ /* Exclude 6 GHz channels from the full scan for P2P connection
* since the 6 GHz band is disabled for P2P uses. */
wpa_printf(MSG_DEBUG,
"P2P: 6 GHz disabled - update the scan frequency list");
- for (i = 0; i < wpa_s->hw.num_modes; i++) {
- if (wpa_s->hw.modes[i].num_channels == 0)
- continue;
- if (wpa_s->hw.modes[i].mode == HOSTAPD_MODE_IEEE80211G)
- wpa_add_scan_freqs_list(
- wpa_s, HOSTAPD_MODE_IEEE80211G,
- ¶ms, false);
- if (wpa_s->hw.modes[i].mode == HOSTAPD_MODE_IEEE80211A)
- wpa_add_scan_freqs_list(
- wpa_s, HOSTAPD_MODE_IEEE80211A,
- ¶ms, false);
- if (wpa_s->hw.modes[i].mode == HOSTAPD_MODE_IEEE80211AD)
- wpa_add_scan_freqs_list(
- wpa_s, HOSTAPD_MODE_IEEE80211AD,
- ¶ms, false);
- }
+ wpa_add_scan_freqs_list(wpa_s, HOSTAPD_MODE_IEEE80211G, ¶ms, false);
+ wpa_add_scan_freqs_list(wpa_s, HOSTAPD_MODE_IEEE80211A, ¶ms, false);
+ wpa_add_scan_freqs_list(wpa_s, HOSTAPD_MODE_IEEE80211AD, ¶ms, false);
}
#endif /* CONFIG_P2P */