diff options
Diffstat (limited to 'src/libcharon/plugins/eap_radius/radius_client.c')
-rw-r--r-- | src/libcharon/plugins/eap_radius/radius_client.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libcharon/plugins/eap_radius/radius_client.c b/src/libcharon/plugins/eap_radius/radius_client.c index 232b9135e..0d7276af4 100644 --- a/src/libcharon/plugins/eap_radius/radius_client.c +++ b/src/libcharon/plugins/eap_radius/radius_client.c @@ -128,6 +128,7 @@ METHOD(radius_client_t, get_msk, chunk_t, METHOD(radius_client_t, destroy, void, private_radius_client_t *this) { + this->server->destroy(this->server); chunk_clear(&this->msk); free(this->state.ptr); free(this); @@ -162,7 +163,8 @@ radius_client_t *radius_client_create() DBG2(DBG_CFG, "RADIUS server %H is candidate: %d", server->get_address(server), current); best = current; - this->server = server; + DESTROY_IF(this->server); + this->server = server->get_ref(server); } else { |