From e69a9f9559ad6ac371ec5495636a8c1577003722 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Wed, 28 May 2014 13:56:32 +0300 Subject: [PATCH] silcclient: Fix error path memory freeing --- lib/silcclient/client.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; } -- 2.24.0