From 807aef8a143638b7f6c88aa1008544a835806858 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sat, 15 Feb 2020 14:54:28 +0100 Subject: [PATCH] BUG/MINOR: arg: report an error if an argument is larger than bufsize Commit ef21facd99 ("MEDIUM: arg: make make_arg_list() support quotes in arguments") removed the chunk_strncpy() to fill the trash buffer as the input is being parsed, and accidently dropped the jump to the error path in case the argument is too large, which is now fixed. No backport is needed, this is for 2.2. This addresses issue #502. --- src/arg.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/arg.c b/src/arg.c index 3843a9b251..dffbb2efe9 100644 --- a/src/arg.c +++ b/src/arg.c @@ -213,6 +213,10 @@ int make_arg_list(const char *in, int len, uint64_t mask, struct arg **argp, } trash.data = out - trash.area; } + + if (len && *in) + goto buffer_err; + trash.area[trash.data] = 0; arg->type = (mask >> (pos * ARGT_BITS)) & ARGT_MASK; -- 2.39.5