From 5315de2b9ebb1e8d5dc63da3280ee7990d152a47 Mon Sep 17 00:00:00 2001
From: Harper Mann <harpermann@users.sourceforge.net>
Date: Wed, 22 Dec 2004 23:02:10 +0000
Subject: Added check for "%" in COUNTER <description>.  If it exists,
 <description> is used as an arg to asprintf.  If it doesn't exist,
 <description> is used as a label.  If the formatting is wrong, the program
 will segv.

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

diff --git a/plugins/check_nt.c b/plugins/check_nt.c
index f76a52a..fa93fce 100644
--- a/plugins/check_nt.c
+++ b/plugins/check_nt.c
@@ -356,7 +356,12 @@ int main(int argc, char **argv){
 	    		{
 	      			/* Let's format the output string, finally... */
 
-	      			asprintf (&output_message, "%s = %.2f %s", description, counter_value, counter_unit);
+					if (strstr(description, "%") == NULL) {
+						asprintf (&output_message, "%s = %.2f %s", description, counter_value, counter_unit);
+					} else {
+						/* has formatting, will segv if wrong */
+	      				asprintf (&output_message, description, counter_value);
+					}
 	      			output_message = strcat (output_message, "|");
 	      			output_message = strcat (output_message,
 							fperfdata (description, counter_value, counter_unit,
@@ -672,7 +677,8 @@ Windows NT/2000/XP/2003 server.\n\n"));
      Request a -l parameters with the following syntax:\n\
 		 -l \"\\\\<performance object>\\\\counter\",\"<description>\n\
      The <description> parameter is optional and \n\
-     is given to a printf output command which require a float parameters.\n\
+     is given to a printf output command which requires a float parameter.\n\
+     If <description> does not include \"%%\", it is used as a label.\n\
      Some examples:\n\
        \"Paging file usage is %%.2f %%%%\"\n\
        \"%%.f %%%% paging file used.\"\n"));
-- 
cgit v0.10-9-g596f

