static void * eap_mschapv2_init(struct eap_sm *sm) { struct eap_mschapv2_data *data; data = wpa_zalloc(sizeof(*data)); if (data == NULL) return NULL; data->full_key = sm->mschapv2_full_key; if (sm->peer_challenge) { data->full_key = 1; data->peer_challenge = malloc(16); if (data->peer_challenge == NULL) { eap_mschapv2_deinit(sm, data); return NULL; } memcpy(data->peer_challenge, sm->peer_challenge, 16); } if (sm->auth_challenge) { data->auth_challenge = malloc(16); if (data->auth_challenge == NULL) { eap_mschapv2_deinit(sm, data); return NULL; } memcpy(data->auth_challenge, sm->auth_challenge, 16); } data->phase2 = sm->init_phase2; return data; }
static void * eap_mschapv2_init(struct eap_sm *sm) { struct eap_mschapv2_data *data; data = os_zalloc(sizeof(*data)); if (data == NULL) return NULL; if (sm->peer_challenge) { data->peer_challenge = os_malloc(MSCHAPV2_CHAL_LEN); if (data->peer_challenge == NULL) { eap_mschapv2_deinit(sm, data); return NULL; } os_memcpy(data->peer_challenge, sm->peer_challenge, MSCHAPV2_CHAL_LEN); } if (sm->auth_challenge) { data->auth_challenge = os_malloc(MSCHAPV2_CHAL_LEN); if (data->auth_challenge == NULL) { eap_mschapv2_deinit(sm, data); return NULL; } os_memcpy(data->auth_challenge, sm->auth_challenge, MSCHAPV2_CHAL_LEN); } data->phase2 = sm->init_phase2; return data; }