summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/check_snmp.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c
index 7ba96847..1e1657b4 100644
--- a/plugins/check_snmp.c
+++ b/plugins/check_snmp.c
@@ -96,8 +96,8 @@ char regex_expect[MAX_INPUT_BUFFER] = "";
96regex_t preg; 96regex_t preg;
97regmatch_t pmatch[10]; 97regmatch_t pmatch[10];
98char timestamp[10] = ""; 98char timestamp[10] = "";
99char errbuf[MAX_INPUT_BUFFER]; 99char errbuf[MAX_INPUT_BUFFER] = "";
100char perfstr[MAX_INPUT_BUFFER]; 100char perfstr[MAX_INPUT_BUFFER] = "";
101int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE; 101int cflags = REG_EXTENDED | REG_NOSUB | REG_NEWLINE;
102int eflags = 0; 102int eflags = 0;
103int errcode, excode; 103int errcode, excode;
@@ -154,8 +154,7 @@ main (int argc, char **argv)
154 char *ptr = NULL; 154 char *ptr = NULL;
155 char *p2 = NULL; 155 char *p2 = NULL;
156 char *show = NULL; 156 char *show = NULL;
157 char type[8]; 157 char type[8] = "";
158 char *str[MAX_INPUT_BUFFER];
159 158
160 setlocale (LC_ALL, ""); 159 setlocale (LC_ALL, "");
161 bindtextdomain (PACKAGE, LOCALEDIR); 160 bindtextdomain (PACKAGE, LOCALEDIR);
@@ -257,6 +256,10 @@ main (int argc, char **argv)
257 } 256 }
258 257
259 /* We strip out the datatype indicator for PHBs */ 258 /* We strip out the datatype indicator for PHBs */
259
260 /* Clean up type array - Sol10 does not necessarily zero it out */
261 bzero(type, sizeof(type));
262
260 if (strstr (response, "Gauge: ")) 263 if (strstr (response, "Gauge: "))
261 show = strstr (response, "Gauge: ") + 7; 264 show = strstr (response, "Gauge: ") + 7;
262 else if (strstr (response, "Gauge32: ")) 265 else if (strstr (response, "Gauge32: "))
@@ -348,8 +351,11 @@ main (int argc, char **argv)
348 351
349 i++; 352 i++;
350 353
351 asprintf(str, "=%s%s;;;; ", show, type ? type : ""); 354 strcat(perfstr, "=");
352 strcat(perfstr, *str); 355 strcat(perfstr, show);
356 if (type)
357 strcat(perfstr, type);
358 strcat(perfstr, " ");
353 359
354 } /* end while (ptr) */ 360 } /* end while (ptr) */
355 361