From: Dragan Dosen Date: Mon, 25 May 2015 08:02:11 +0000 (+0200) Subject: BUG/MEDIUM: http: fix the url_param fetch X-Git-Tag: v1.6-dev2~98 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26f77e534c68388a55838f299719e25976a81fe8;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: http: fix the url_param fetch The "name" and "name_len" arguments in function "smp_fetch_url_param" could be left uninitialized for subsequent calls. [wt: no backport needed, this is an 1.6 regression introduced by commit 4fdc74c ("MINOR: http: split the url_param in two parts") ] --- diff --git a/src/proto_http.c b/src/proto_http.c index fa3be6a917..3d41c562b2 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -11762,22 +11762,22 @@ smp_fetch_url_param(const struct arg *args, struct sample *smp, const char *kw, const char *name; int name_len; - if (!smp->ctx.a[0]) { // first call, find the query string - if (!args || - (args[0].type && args[0].type != ARGT_STR) || - (args[1].type && args[1].type != ARGT_STR)) - return 0; + if (!args || + (args[0].type && args[0].type != ARGT_STR) || + (args[1].type && args[1].type != ARGT_STR)) + return 0; - if (args[1].type) - delim = *args[1].data.str.str; + name = ""; + name_len = 0; + if (args->type == ARGT_STR) { + name = args->data.str.str; + name_len = args->data.str.len; + } - name = ""; - name_len = 0; - if (args->type == ARGT_STR) { - name = args->data.str.str; - name_len = args->data.str.len; - } + if (args[1].type) + delim = *args[1].data.str.str; + if (!smp->ctx.a[0]) { // first call, find the query string CHECK_HTTP_MESSAGE_FIRST(); msg = &smp->strm->txn->req;