[monitoring-plugins] Fix some bugs after refactoring

Lorenz Kästle git at monitoring-plugins.org
Fri Nov 7 14:20:12 CET 2025


 Module: monitoring-plugins
 Branch: master
 Commit: fafaee5813830c5ad963f4855566be9a4a6dfc22
 Author: Lorenz Kästle <12514511+RincewindsHat at users.noreply.github.com>
   Date: Sat Oct 18 12:25:44 2025 +0200
    URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=fafaee58

Fix some bugs after refactoring

---

 plugins/check_dbi.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/plugins/check_dbi.c b/plugins/check_dbi.c
index 2e110ce3..786fc1b6 100644
--- a/plugins/check_dbi.c
+++ b/plugins/check_dbi.c
@@ -29,6 +29,7 @@
  *
  *****************************************************************************/
 
+#include "states.h"
 const char *progname = "check_dbi";
 const char *copyright = "2011-2024";
 const char *email = "devel at monitoring-plugins.org";
@@ -101,13 +102,15 @@ int main(int argc, char **argv) {
 		printf("Initializing DBI\n");
 	}
 
-	dbi_inst *instance_p = NULL;
-	if (dbi_initialize_r(NULL, instance_p) < 0) {
+	dbi_inst instance_p = NULL;
+	if (dbi_initialize_r(NULL, &instance_p) < 0) {
 		printf(
 			"UNKNOWN - failed to initialize DBI; possibly you don't have any drivers installed.\n");
 		return STATE_UNKNOWN;
 	}
 
+	dbi_set_verbosity_r(0, instance_p);
+
 	if (instance_p == NULL) {
 		printf("UNKNOWN - failed to initialize DBI.\n");
 		return STATE_UNKNOWN;
@@ -230,7 +233,6 @@ int main(int argc, char **argv) {
 		}
 	}
 
-
 	const char *query_val_str = NULL;
 	double query_val = 0.0;
 	double query_time = 0.0;
@@ -251,10 +253,15 @@ int main(int argc, char **argv) {
 					status = STATE_OK;
 				}
 			} else if (config.expect_re_str) {
-				int err;
-
+				int comp_err;
 				regex_t expect_re = {};
-				err = regexec(&expect_re, query_val_str, 0, NULL, /* flags = */ 0);
+				comp_err = regcomp(&expect_re, config.expect_re_str, config.expect_re_cflags);
+				if (comp_err != 0) {
+					// TODO error, failed to compile regex
+					return STATE_UNKNOWN;
+				}
+
+				int err = regexec(&expect_re, query_val_str, 0, NULL, /* flags = */ 0);
 				if (!err) {
 					status = STATE_OK;
 				} else if (err == REG_NOMATCH) {



More information about the Commits mailing list