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.
This commit is contained in:
Christopher Faulet 2025-02-06 15:37:52 +01:00
parent 372cc696d4
commit 75e8c8ed33

View File

@ -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);