From: Christopher Faulet Date: Wed, 11 Dec 2024 08:09:26 +0000 (+0100) Subject: BUG/MINOR: http-fetch: Ignore empty argument string for query() X-Git-Tag: v3.2-dev1~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1525e7b8fa15c59c1c6fc4063b5218d134b7afb;p=thirdparty%2Fhaproxy.git BUG/MINOR: http-fetch: Ignore empty argument string for query() query() sample fetch function takes an optional argument string. During configuration parsing, empty string must be ignored. It is especially important when the sample is used with empty parenthesis. The argument is optional and it is a list of options to configure the behavior of the sample fetch. So it is logical to ignore empty strings. This patch should fix the issue #2815. It must be backported to 3.1. --- diff --git a/src/http_fetch.c b/src/http_fetch.c index 28fe8ae7a3..ebba87519b 100644 --- a/src/http_fetch.c +++ b/src/http_fetch.c @@ -2229,6 +2229,8 @@ int val_hdr(struct arg *arg, char **err_msg) int val_query(struct arg *args, char **err_msg) { + int val = 0; + if (args[0].type == ARGT_STOP) return 1; @@ -2237,14 +2239,17 @@ int val_query(struct arg *args, char **err_msg) return 0; } - if (chunk_strcmp(&args[0].data.str, "with_qm") != 0) { - memprintf(err_msg, "supported options are: 'with_qm'"); - return 0; + if (args[0].data.str.data != 0) { + if (chunk_strcmp(&args[0].data.str, "with_qm") != 0) { + memprintf(err_msg, "supported options are: 'with_qm'"); + return 0; + } + val = 1; } chunk_destroy(&args[0].data.str); args[0].type = ARGT_SINT; - args[0].data.sint = 1; + args[0].data.sint = val; return 1; }