From: Pekka Riikonen Date: Wed, 28 May 2014 10:56:32 +0000 (+0300) Subject: silcclient: Fix error path memory freeing X-Git-Url: http://git.silc.fi/gitweb/?a=commitdiff_plain;h=e69a9f9559ad6ac371ec5495636a8c1577003722;p=silc.git silcclient: Fix error path memory freeing --- diff --git a/lib/silcclient/client.c b/lib/silcclient/client.c index f2db81e0..1d64e02f 100644 --- a/lib/silcclient/client.c +++ b/lib/silcclient/client.c @@ -604,7 +604,7 @@ silc_client_add_connection(SilcClient client, SilcClientConnection conn; SilcFSMThread thread; - if (!callback) + if (!client || !callback || !remote_host) return NULL; SILC_LOG_DEBUG(("Adding new connection to %s:%d", remote_host, port)); @@ -624,6 +624,7 @@ silc_client_add_connection(SilcClient client, conn->internal = silc_calloc(1, sizeof(*conn->internal)); if (!conn->internal) { + silc_free(conn->remote_host); silc_free(conn); return NULL; } @@ -632,8 +633,9 @@ silc_client_add_connection(SilcClient client, silc_atomic_init16(&conn->internal->cmd_ident, 0); if (!silc_hash_alloc("sha1", &conn->internal->sha1hash)) { - silc_free(conn); + silc_free(conn->remote_host); silc_free(conn->internal); + silc_free(conn); return NULL; }