[monitoring-plugins] Document new np_add_regex more and add error ...
Lorenz Kästle
git at monitoring-plugins.org
Thu Oct 5 11:00:13 CEST 2023
Module: monitoring-plugins
Branch: master
Commit: 51aa8b2d9d3812b74fb4d15da712a31d549d928b
Author: Lorenz Kästle <12514511+RincewindsHat at users.noreply.github.com>
Date: Sat Sep 30 12:55:49 2023 +0200
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=51aa8b2
Document new np_add_regex more and add error handling
---
lib/utils_disk.c | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/lib/utils_disk.c b/lib/utils_disk.c
index 34401e2..884f005 100644
--- a/lib/utils_disk.c
+++ b/lib/utils_disk.c
@@ -41,15 +41,40 @@ np_add_name (struct name_list **list, const char *name)
*list = new_entry;
}
-/* Initialises a new regex at the begin of list via regcomp(3) */
+/* @brief Initialises a new regex at the begin of list via regcomp(3)
+ *
+ * @details if the regex fails to compile the error code of regcomp(3) is returned
+ * and list is not modified, otherwise list is modified to point to the new
+ * element
+ * @param list Pointer to a linked list of regex_list elements
+ * @param regex the string containing the regex which should be inserted into the list
+ * @param clags the cflags parameter for regcomp(3)
+ */
int
np_add_regex (struct regex_list **list, const char *regex, int cflags)
{
struct regex_list *new_entry = (struct regex_list *) malloc (sizeof *new_entry);
- new_entry->next = *list;
- *list = new_entry;
- return regcomp(&new_entry->regex, regex, cflags);
+ if (new_entry == NULL) {
+ die(STATE_UNKNOWN, _("Cannot allocate memory: %s"),
+ strerror(errno));
+ }
+
+ int regcomp_result = regcomp(&new_entry->regex, regex, cflags);
+
+ if (!regcomp_result) {
+ // regcomp succeded
+ new_entry->next = *list;
+ *list = new_entry;
+
+ return 0;
+ } else {
+ // regcomp failed
+ free(new_entry);
+
+ return regcomp_result;
+ }
+
}
/* Initialises a new parameter at the end of list */
More information about the Commits
mailing list