From fe2e5f4aecab99a1c361994e4b678d6709d65f6c Mon Sep 17 00:00:00 2001
From: Thomas Guyot-Sionnest <dermoth@users.sourceforge.net>
Date: Wed, 13 Feb 2008 11:05:44 +0000
Subject: set_thresholds now let the user free the thresolds. (P.S.: When you
 set twice the thresholds for a path in check disk (like using -C followed by
 -p ) it overrides them. All new elements are created with np_add_parameter
 which initialises the thresholds to NULL.)

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1930 f882894a-f735-0410-b71e-b25c423dba1c

diff --git a/lib/utils_base.c b/lib/utils_base.c
index c0bc4dc..a36eb68 100644
--- a/lib/utils_base.c
+++ b/lib/utils_base.c
@@ -120,10 +120,6 @@ _set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_st
 		}
 	}
 
-	if (*my_thresholds > 0) {	/* Not sure why, but sometimes could be -1 */
-		/* printf("Freeing here: %d\n", *my_thresholds); */
-		free(*my_thresholds);
-	}
 	*my_thresholds = temp_thresholds;
 
 	return 0;
diff --git a/plugins/check_disk.c b/plugins/check_disk.c
index 363879c..29aec62 100644
--- a/plugins/check_disk.c
+++ b/plugins/check_disk.c
@@ -688,7 +688,7 @@ process_arguments (int argc, char **argv)
    	        printf("ignoring %s matching regex\n", temp_list->name);
 
               temp_list = np_del_parameter(temp_list, previous);
-              /* pointer to first element needs to be uüdated if first item gets deleted */
+              /* pointer to first element needs to be updated if first item gets deleted */
               if (previous == NULL)
                 path_select_list = temp_list;
           } else {
@@ -828,11 +828,17 @@ print_path (const char *mypath)
 void
 set_all_thresholds (struct parameter_list *path) 
 {
+		if (path->freespace_units != NULL) free(path->freespace_units);
     set_thresholds(&path->freespace_units, warn_freespace_units, crit_freespace_units);
+		if (path->freespace_percent != NULL) free (path->freespace_percent);
     set_thresholds(&path->freespace_percent, warn_freespace_percent, crit_freespace_percent);
+		if (path->usedspace_units != NULL) free (path->usedspace_units);
     set_thresholds(&path->usedspace_units, warn_usedspace_units, crit_usedspace_units);
+		if (path->usedspace_percent != NULL) free (path->usedspace_percent);
     set_thresholds(&path->usedspace_percent, warn_usedspace_percent, crit_usedspace_percent);
+		if (path->usedinodes_percent != NULL) free (path->usedinodes_percent);
     set_thresholds(&path->usedinodes_percent, warn_usedinodes_percent, crit_usedinodes_percent);
+		if (path->freeinodes_percent != NULL) free (path->freeinodes_percent);
     set_thresholds(&path->freeinodes_percent, warn_freeinodes_percent, crit_freeinodes_percent);
 }
 
-- 
cgit v0.10-9-g596f

