From 75e8c8ed330f2ad1b6b33630efebb5041af3d5e9 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 6 Feb 2025 15:37:52 +0100 Subject: [PATCH] BUG/MINOR: cli: Fix a possible infinite loop in _getsocks() In _getsocks() functuoin, when we failed to set the unix socket in non-blocking mode, a goto to "out" label led to loop infinitly. To fix the issue, we must only let the function exit. This patch should be backported to all stable versions. --- src/cli.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/cli.c b/src/cli.c index 63d6a3d55..4c21c124d 100644 --- a/src/cli.c +++ b/src/cli.c @@ -2438,10 +2438,8 @@ static int _getsocks(char **args, char *payload, struct appctx *appctx, void *pr } out: - if (fd >= 0 && old_fcntl >= 0 && fcntl(fd, F_SETFL, old_fcntl) == -1) { + if (fd >= 0 && old_fcntl >= 0 && fcntl(fd, F_SETFL, old_fcntl) == -1) ha_warning("Cannot make the unix socket non-blocking\n"); - goto out; - } applet_set_eoi(appctx); appctx->st0 = CLI_ST_END; free(cmsgbuf); -- 2.47.2