]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: cli: Properly handle too big payload on a command line
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 8 Apr 2026 08:28:25 +0000 (10:28 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 13 Apr 2026 13:18:47 +0000 (15:18 +0200)
When command line is parsed, when the payload was too big the error was not
properly handled. Instead of leaving the parsing function to print the
error, we looped infinitly trying to parse remaining data.

When the command line is too big, we must exit the parsing function in
CLI_ST_PRINT_ERR state. Instead of exiting the function, we only left the
while loop, setting this way the cli applet in CLI_ST_PROMPT state.

This patch must be backported as far as 3.2.

src/cli.c

index 8191eb09b6e1a65ec46596834c5d2b409d8b3453..e37276a1c27176f7895b47f18117b3cdfaf0762d 100644 (file)
--- a/src/cli.c
+++ b/src/cli.c
@@ -994,6 +994,7 @@ int cli_parse_cmdline(struct appctx *appctx)
                                cli_err(appctx, "The command line is too big for the buffer size. Please change tune.bufsize in the configuration to use a bigger command.\n");
                                applet_set_error(appctx);
                                b_reset(&appctx->inbuf);
+                               goto end;
                        }
                        break;
                }