From 083eff37348f9bae8157af93c27f4d6bc89877e5 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 7 May 2020 15:41:39 +0200 Subject: [PATCH] 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. --- src/checks.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/checks.c b/src/checks.c index b59c6b7e9..bb78cc845 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;