From: Christopher Faulet Date: Thu, 7 May 2020 13:41:39 +0000 (+0200) Subject: MINOR: checks: Make matching on HTTP headers for expect rules less obscure X-Git-Tag: v2.2-dev8~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=083eff37348f9bae8157af93c27f4d6bc89877e5;p=thirdparty%2Fhaproxy.git MINOR: checks: Make matching on HTTP headers for expect rules less obscure A default statement in the switch testing the header name has been added to be sure it is impossible to eval the value pattern on an uninitialized header value. It should never happen of course. But this way, it is explicit. And a comment has been added to make clear that ctx.value is always defined when it is evaluated. This patch fixes the issue #619. --- diff --git a/src/checks.c b/src/checks.c index b59c6b7e97..bb78cc845f 100644 --- a/src/checks.c +++ b/src/checks.c @@ -2296,8 +2296,16 @@ static enum tcpcheck_eval_ret tcpcheck_eval_expect_http(struct check *check, str if (!http_match_header(htx, expect->hdr.name_re, &ctx, full)) goto end_of_match; break; + default: + /* should never happen */ + goto end_of_match; } + /* A header has matched the name pattern, let's test its + * value now (always defined from there). If there is no + * value pattern, it is a good match. + */ + if (expect->flags & TCPCHK_EXPT_FL_HTTP_HVAL_NONE) { match = 1; goto end_of_match;