diff --git a/src/connection.c b/src/connection.c index 1f2f96cc..b6ce517e 100644 --- a/src/connection.c +++ b/src/connection.c @@ -79,15 +79,25 @@ void free_connection(connection_t *c) { cp(); - if(c) { - free(c->hostname); - free(c->inkey); - free(c->outkey); - free(c->mychallenge); - free(c->hischallenge); - event_del(&c->ev); - } + if(!c) + return; + if(c->hostname) + free(c->hostname); + + if(c->inkey) + free(c->inkey); + + if(c->outkey) + free(c->outkey); + + if(c->mychallenge) + free(c->mychallenge); + + if(c->hischallenge) + free(c->hischallenge); + + event_del(&c->ev); free(c); }