From 26f77e534c68388a55838f299719e25976a81fe8 Mon Sep 17 00:00:00 2001 From: Dragan Dosen Date: Mon, 25 May 2015 10:02:11 +0200 Subject: [PATCH] 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") ] --- src/proto_http.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/proto_http.c b/src/proto_http.c index fa3be6a91..3d41c562b 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 (!args || + (args[0].type && args[0].type != ARGT_STR) || + (args[1].type && args[1].type != ARGT_STR)) + return 0; + + 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 - 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; - } - CHECK_HTTP_MESSAGE_FIRST(); msg = &smp->strm->txn->req;