From 9eabd8d054f003960daa150324873474df7aab60 Mon Sep 17 00:00:00 2001
From: Holger Weiss <holger@zedat.fu-berlin.de>
Date: Tue, 2 Jun 2009 01:11:19 +0200
Subject: Fix the memory allocation for the thresholds data

Allocate the appropriate amount of memory for storing the thresholds
data.  Before, we allocated the amount of memory required for storing a
_pointer_ to the thresholds data.  This crashed (at least) check_mysql
when using its "-S" option on FreeBSD/amd64 (as reported and analyzed by
Nikita Kalabukhov - 2797757).

Signed-off-by: Holger Weiss <holger@zedat.fu-berlin.de>

diff --git a/THANKS.in b/THANKS.in
index 189ba26..aba48c6 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -254,3 +254,4 @@ Ben Timby
 Martin Foster
 Joe Presbrey
 Will Preston
+Nikita Kalabukhov
diff --git a/lib/utils_base.c b/lib/utils_base.c
index 77700f5..4303e15 100644
--- a/lib/utils_base.c
+++ b/lib/utils_base.c
@@ -101,7 +101,9 @@ _set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_st
 {
 	thresholds *temp_thresholds = NULL;
 
-	temp_thresholds = malloc(sizeof(temp_thresholds));
+	if ((temp_thresholds = malloc(sizeof(thresholds))) == NULL)
+		die(STATE_UNKNOWN, _("Cannot allocate memory: %s\n"),
+		    strerror(errno));
 
 	temp_thresholds->warning = NULL;
 	temp_thresholds->critical = NULL;
-- 
cgit v0.10-9-g596f

