From 2c4943c18b8378d1314460ee1148fc90a6d51b67 Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Thu, 16 Nov 2023 16:18:14 +0100 Subject: [PATCH] BUG/MINOR: proxy/stktable: missing frees on proxy cleanup In 1b8e68e ("MEDIUM: stick-table: Stop handling stick-tables as proxies.") we forgot to free the table pointer which is now dynamically allocated. Let's take this opportunity to also fix a missing free in the table itself (the table expire task wasn't properly destroyed) This patch depends on: - "MINOR: stktable: add sktable_deinit function" It should be backported in every stable versions. --- src/proxy.c | 2 ++ src/stick_table.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/proxy.c b/src/proxy.c index 3407168d1..93f1403db 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -389,7 +389,9 @@ void free_proxy(struct proxy *p) pool_destroy(p->req_cap_pool); pool_destroy(p->rsp_cap_pool); + stktable_deinit(p->table); + ha_free(&p->table); HA_RWLOCK_DESTROY(&p->lbprm.lock); HA_RWLOCK_DESTROY(&p->lock); diff --git a/src/stick_table.c b/src/stick_table.c index 26ea97add..642756831 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -875,6 +875,7 @@ void stktable_deinit(struct stktable *t) { if (!t) return; + task_destroy(t->exp_task); pool_destroy(t->pool); }