diff options
Diffstat (limited to 'src/libcharon/plugins/eap_ttls/eap_ttls.c')
-rw-r--r-- | src/libcharon/plugins/eap_ttls/eap_ttls.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libcharon/plugins/eap_ttls/eap_ttls.c b/src/libcharon/plugins/eap_ttls/eap_ttls.c index d450c23d7..6b52acc56 100644 --- a/src/libcharon/plugins/eap_ttls/eap_ttls.c +++ b/src/libcharon/plugins/eap_ttls/eap_ttls.c @@ -126,6 +126,7 @@ static eap_ttls_t *eap_ttls_create(identification_t *server, { private_eap_ttls_t *this; size_t frag_size; + tls_t *tls; INIT(this, .public = { @@ -146,8 +147,13 @@ static eap_ttls_t *eap_ttls_create(identification_t *server, } frag_size = lib->settings->get_int(lib->settings, "charon.plugins.eap-ttls.fragment_size", MAX_FRAGMENT_LEN); - this->tls_eap = tls_eap_create(EAP_TTLS, is_server, server, peer, - application, frag_size); + tls = tls_create(is_server, server, peer, TLS_PURPOSE_EAP_TTLS, application); + if (!tls) + { + free(this); + return NULL; + } + this->tls_eap = tls_eap_create(EAP_TTLS, tls, frag_size); if (!this->tls_eap) { application->destroy(application); |