From 5315de2b9ebb1e8d5dc63da3280ee7990d152a47 Mon Sep 17 00:00:00 2001 From: Harper Mann Date: Wed, 22 Dec 2004 23:02:10 +0000 Subject: [PATCH] Added check for "%" in COUNTER . If it exists, is used as an arg to asprintf. If it doesn't exist, 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 --- plugins/check_nt.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 \"\\\\\\\\counter\",\"\n\ The 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 does not include \"%%\", it is used as a label.\n\ Some examples:\n\ \"Paging file usage is %%.2f %%%%\"\n\ \"%%.f %%%% paging file used.\"\n")); -- 2.30.2