Code

In the CHECK_COUNTER block, there were several strcats writing to unallocated
authorHarper Mann <harpermann@users.sourceforge.net>
Wed, 19 Jan 2005 23:39:45 +0000 (23:39 +0000)
committerHarper Mann <harpermann@users.sourceforge.net>
Wed, 19 Jan 2005 23:39:45 +0000 (23:39 +0000)
memory.  Changed to asprintf. We're not freeing since plugin run is short.

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

plugins/check_nt.c

index cac826f5502a0eaa53abf4f18855d443e045b408..1bdddc45a4b1ce517fe16dcf8e8f0a982dfb79ed 100644 (file)
@@ -355,19 +355,18 @@ int main(int argc, char **argv){
                        if (allRight)
                        {
                                /* Let's format the output string, finally... */
-
                                        if (strstr(description, "%") == NULL) {
-                                               asprintf (&output_message, "%s = %.2f %s", description, counter_value, counter_unit);
+                                               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,
-                                                                  1, warning_value, 1, critical_value,
-                                                                  (!(isPercent) && (minval != NULL)), fminval,
-                                                                  (!(isPercent) && (minval != NULL)), fmaxval));
+                                       asprintf (&output_message, "%s |", output_message);
+                               asprintf (&output_message,"%s %s", output_message, 
+                                               fperfdata (description, counter_value, 
+                                                       counter_unit, 1, warning_value, 1, critical_value,
+                                                       (!(isPercent) && (minval != NULL)), fminval,
+                                                       (!(isPercent) && (minval != NULL)), fmaxval));
                        }
                }