mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-16 16:34:42 +00:00
BUG/MINOR: cli: make sure the "getsock" command is only called on connections
Theorically nothing would prevent a front applet form connecting to a stats socket, and if a "getsock" command was issued, it would cause a crash. Right now nothing in the code does this so in its current form there is no impact. It may or may not be backported to 1.8.
This commit is contained in:
parent
4c0fcc2314
commit
c2b7f80a91
13
src/cli.c
13
src/cli.c
@ -1376,11 +1376,18 @@ static int _getsocks(char **args, char *payload, struct appctx *appctx, void *pr
|
||||
int tot_fd_nb = 0;
|
||||
struct proxy *px;
|
||||
int i = 0;
|
||||
int fd = remote->handle.fd;
|
||||
int fd = -1;
|
||||
int curoff = 0;
|
||||
int old_fcntl;
|
||||
int old_fcntl = -1;
|
||||
int ret;
|
||||
|
||||
if (!remote) {
|
||||
ha_warning("Only works on real connections\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
fd = remote->handle.fd;
|
||||
|
||||
/* Temporary set the FD in blocking mode, that will make our life easier */
|
||||
old_fcntl = fcntl(fd, F_GETFL);
|
||||
if (old_fcntl < 0) {
|
||||
@ -1529,7 +1536,7 @@ static int _getsocks(char **args, char *payload, struct appctx *appctx, void *pr
|
||||
}
|
||||
|
||||
out:
|
||||
if (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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user