From: Grigorii Demidov Date: Mon, 8 Jan 2018 09:12:17 +0000 (+0100) Subject: daemon: avoid memory leaks under heavy load when using tls over outgoing tcp connection X-Git-Tag: v2.0.0~43^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cfea59cacb3b4e600e37592dc24856419970dd1a;p=thirdparty%2Fknot-resolver.git daemon: avoid memory leaks under heavy load when using tls over outgoing tcp connection --- diff --git a/daemon/tls.c b/daemon/tls.c index e9ffa9710..17e0bf5bb 100644 --- a/daemon/tls.c +++ b/daemon/tls.c @@ -1041,12 +1041,14 @@ int tls_client_set_hs_state(struct tls_client_ctx_t *ctx, tls_client_hs_state_t } int tls_client_ctx_set_params(struct tls_client_ctx_t *ctx, - const struct tls_client_paramlist_entry *entry) + const struct tls_client_paramlist_entry *entry, + struct session *session) { if (!ctx) { return kr_error(EINVAL); } ctx->params = entry; + ctx->session = session; return kr_ok(); } diff --git a/daemon/tls.h b/daemon/tls.h index d13b70ebf..b6a32c55d 100644 --- a/daemon/tls.h +++ b/daemon/tls.h @@ -115,4 +115,5 @@ tls_client_hs_state_t tls_client_get_hs_state(const struct tls_client_ctx_t *ctx int tls_client_set_hs_state(struct tls_client_ctx_t *ctx, tls_client_hs_state_t state); int tls_client_ctx_set_params(struct tls_client_ctx_t *ctx, - const struct tls_client_paramlist_entry *entry); + const struct tls_client_paramlist_entry *entry, + struct session *session); diff --git a/daemon/worker.c b/daemon/worker.c index aebeb8e2f..522e5803b 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1627,7 +1627,7 @@ static int qr_task_step(struct qr_task *task, subreq_finalize(task, packet_source, packet); return qr_task_step(task, NULL, NULL); } - tls_client_ctx_set_params(tls_ctx, entry); + tls_client_ctx_set_params(tls_ctx, entry, session); session->tls_client_ctx = tls_ctx; session->has_tls = true; }