From 1c8980f9b54ceb2a35b0ecb9be71df6795773542 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 5 Nov 2017 09:58:50 +0100 Subject: [PATCH] BUG/MINOR: cli: do not perform an invalid action on "set server check-port" The "set server check-port" CLI handler forgot to return after detecting an error on the port number, and still proceeds with the action. This needs to be backported to 1.7. --- src/server.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server.c b/src/server.c index c96b096e2..326568041 100644 --- a/src/server.c +++ b/src/server.c @@ -4155,11 +4155,15 @@ static int cli_parse_set_server(char **args, struct appctx *appctx, void *privat appctx->ctx.cli.severity = LOG_ERR; appctx->ctx.cli.msg = "'set server check-port' expects an integer as argument.\n"; appctx->st0 = CLI_ST_PRINT; + SPIN_UNLOCK(SERVER_LOCK, &sv->lock); + return 1; } if ((i < 0) || (i > 65535)) { appctx->ctx.cli.severity = LOG_ERR; appctx->ctx.cli.msg = "provided port is not valid.\n"; appctx->st0 = CLI_ST_PRINT; + SPIN_UNLOCK(SERVER_LOCK, &sv->lock); + return 1; } /* prevent the update of port to 0 if MAPPORTS are in use */ if ((sv->flags & SRV_F_MAPPORTS) && (i == 0)) {