WPS ER: Fix Credential to use correct Enrollee MAC Address
When starting the protocol run with an Enrollee, clone the AP Settings and replace the AP MAC Address with the Enrollee MAC Address so that the correct value is then used in the Credential attribute in M8.
This commit is contained in:
parent
ed7a09f914
commit
826fe5fec3
2 changed files with 13 additions and 0 deletions
|
@ -85,6 +85,7 @@ static void wps_er_sta_free(struct wps_er_sta *sta)
|
|||
os_free(sta->dev_name);
|
||||
http_client_free(sta->http);
|
||||
eloop_cancel_timeout(wps_er_sta_timeout, sta, NULL);
|
||||
os_free(sta->cred);
|
||||
os_free(sta);
|
||||
}
|
||||
|
||||
|
@ -953,6 +954,17 @@ static void wps_er_sta_start(struct wps_er_sta *sta, struct wpabuf *msg)
|
|||
return;
|
||||
sta->wps->er = 1;
|
||||
sta->wps->use_cred = sta->ap->ap_settings;
|
||||
if (sta->ap->ap_settings) {
|
||||
os_free(sta->cred);
|
||||
sta->cred = os_malloc(sizeof(*sta->cred));
|
||||
if (sta->cred) {
|
||||
os_memcpy(sta->cred, sta->ap->ap_settings,
|
||||
sizeof(*sta->cred));
|
||||
sta->cred->cred_attr = NULL;
|
||||
os_memcpy(sta->cred->mac_addr, sta->addr, ETH_ALEN);
|
||||
sta->wps->use_cred = sta->cred;
|
||||
}
|
||||
}
|
||||
|
||||
wps_er_sta_process(sta, msg, WSC_MSG);
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ struct wps_er_sta {
|
|||
char *dev_name;
|
||||
struct wps_data *wps;
|
||||
struct http_client *http;
|
||||
struct wps_credential *cred;
|
||||
};
|
||||
|
||||
struct wps_er_ap {
|
||||
|
|
Loading…
Reference in a new issue