X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcclient%2Fclient.c;h=1d64e02fd502848d099880b396bec665e42160b7;hb=e69a9f9559ad6ac371ec5495636a8c1577003722;hp=f2db81e04f2ae76ff3b7611f98589bac236bffe2;hpb=a0701bd8cb2ae882e844d4373b58c6b4ea6de0c6;p=silc.git 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; }