From 166ce184c67a95192de8ec7f862fd965ea672ba8 Mon Sep 17 00:00:00 2001 From: Lorenz Kästle <12514511+RincewindsHat@users.noreply.github.com> Date: Mon, 15 Sep 2025 00:22:35 +0200 Subject: Fix regex matching --- plugins/check_curl.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/plugins/check_curl.c b/plugins/check_curl.c index 7cb9745f..f8adc3d9 100644 --- a/plugins/check_curl.c +++ b/plugins/check_curl.c @@ -564,18 +564,24 @@ mp_subcheck check_http(const check_curl_config config, check_curl_working_state if (errcode == 0) { // got a match if (config.invert_regex) { - sc_body_regex = mp_set_subcheck_state(sc_body_regex, STATE_OK); - } else { sc_body_regex = mp_set_subcheck_state(sc_body_regex, config.state_regex); + } else { + sc_body_regex = mp_set_subcheck_state(sc_body_regex, STATE_OK); } - } else { + } else if (errcode == REG_NOMATCH) { xasprintf(&sc_body_regex.output, "%s not", sc_body_regex.output); // got no match if (config.invert_regex) { - sc_body_regex = mp_set_subcheck_state(sc_body_regex, config.state_regex); - } else { sc_body_regex = mp_set_subcheck_state(sc_body_regex, STATE_OK); + } else { + sc_body_regex = mp_set_subcheck_state(sc_body_regex, config.state_regex); } + } else { + // error in regexec + char error_buffer[DEFAULT_BUFFER_SIZE]; + regerror(errcode, &config.compiled_regex, &error_buffer[0], DEFAULT_BUFFER_SIZE); + xasprintf(&sc_body_regex.output, "regexec error: %s", error_buffer); + sc_body_regex = mp_set_subcheck_state(sc_body_regex, STATE_UNKNOWN); } mp_add_subcheck_to_subcheck(&sc_result, sc_body_regex); -- cgit v1.2.3-74-g34f1