BUG/MINOR: sink: free forward_px on deinit()
When a ring section is configured, a new sink is created and forward_px
proxy may be allocated and assigned to the sink.
Such sink-related proxies are added to the sink_proxies_list and thus
don't belong to the main proxy list which is cleaned up in
haproxy deinit() function.
We don't have to manually clean up sink_proxies_list in the main deinit()
func:
sink API already provides the sink_deinit() function so we just add the
missing free_proxy(sink->forward_px) there.
This could be backported up to 2.4.
[in 2.4, commit b0281a49 ("MINOR: proxy: check if p is NULL in free_proxy()")
must be backported first]
(cherry picked from commit 9b1d15f53a194a7704d7b8a1e27d8dd02fe2f17d)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 74f77097c7e360cdc84d495fdcc138ec87f647f6)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 1c41e3d4122c425d8cad5b84204f2549843c5ef3)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 8cc4ebdfe97f43231dd2fd0e94485ae03d9e3d25)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/sink.c b/src/sink.c
index b7f111c..896019a 100644
--- a/src/sink.c
+++ b/src/sink.c
@@ -1290,6 +1290,7 @@
ring_free(sink->ctx.ring);
LIST_DELETE(&sink->sink_list);
task_destroy(sink->forward_task);
+ free_proxy(sink->forward_px);
free(sink->name);
free(sink->desc);
free(sink);