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:
Jouni Malinen 2010-05-27 15:22:44 +03:00 committed by Jouni Malinen
parent ed7a09f914
commit 826fe5fec3
2 changed files with 13 additions and 0 deletions

View file

@ -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);
}

View file

@ -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 {