From 8ec134109eb136432a29bdf5a14f8b1fd4e46208 Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Mon, 12 May 2025 18:47:00 +0200 Subject: flow: close socket fd on error In eea8a76caf85 ("flow: fix podman issue #26073"), we unregister the fd from epoll_ctl() in case of error, but we also need to close it. As flowside_sock_l4() also calls sock_l4_sa() via flowside_sock_splice() we can do it unconditionally. Fixes: eea8a76caf85 ("flow: fix podman issue #26073") Signed-off-by: Laurent Vivier Signed-off-by: Stefano Brivio --- udp_flow.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/udp_flow.c b/udp_flow.c index b3a13b7..4c6b3c2 100644 --- a/udp_flow.c +++ b/udp_flow.c @@ -88,8 +88,8 @@ static int udp_flow_sock(const struct ctx *c, if (flowside_connect(c, s, pif, side) < 0) { int rc = -errno; - if (pif == PIF_HOST) - epoll_del(c, s); + epoll_del(c, s); + close(s); flow_dbg_perror(uflow, "Couldn't connect flow socket"); return rc; -- cgit v1.2.3