Просмотр исходного кода

change ssprintf to asprintf
back out change at line 225 in r1.4
(values were mismatched to format string, so output was nonsense)
(I left a comment showing a construct that should work, but it fails for PHBs:
if my disk gets nearly full, they want 'CRITICAL - 99%' not 'CRITICAL - Gauge32: 99')
(If someine has a rationale for the change, maybe it could be done as an option? - it seems
fairly clear that the Web display should be sensible to PHBs so long as there's no real loss)


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

Karl DeBisschop 23 лет назад
Родитель
Сommit
a396d21778
1 измененных файлов с 8 добавлено и 11 удалено
  1. 8 11
      plugins/check_snmp.c

+ 8 - 11
plugins/check_snmp.c

@@ -144,8 +144,8 @@ main (int argc, char **argv)
 		usage ("Incorrect arguments supplied\n");
 
 	/* create the command line to execute */
-	command_line = ssprintf
-		(command_line,
+	asprintf
+		(&command_line,
 		 "%s -p %s -m ALL -v 1 %s -c %s %s",
 		 PATH_TO_SNMPGET, port, server_address, community, oid);
 
@@ -221,8 +221,8 @@ main (int argc, char **argv)
 			p2 = strpbrk (p2, "0123456789");
 			response_value[i] = strtoul (p2, NULL, 10);
 			iresult = check_num (i);
-			/*For consistency- full SNMP response every time */
-			show = ssprintf (show, "%d", response);
+			asprintf (&show, "%lu", response_value[i]);
+			/*asprintf (&show, "%s", response); */
 		}
 
 		else if (eval_method[i] & CRIT_STRING) {
@@ -264,21 +264,18 @@ main (int argc, char **argv)
 		result = max_state (result, iresult);
 
 		if (nlabels > 1 && i < nlabels && labels[i] != NULL)
-			outbuff = ssprintf
-				(outbuff,
+			asprintf
+				(&outbuff,
 				 "%s%s%s %s%s%s",
 				 outbuff,
 				 (i == 0) ? " " : output_delim,
 				 labels[i], mark (iresult), show, mark (iresult));
 		else
-			outbuff = ssprintf
-				(outbuff,
-				 "%s%s%s%s%s",
-				 outbuff,
+			asprintf (&outbuff, "%s%s%s%s%s", outbuff,
 				 (i == 0) ? " " : output_delim, mark (iresult), show, mark (iresult));
 
 		if (nunits > 0 && i < nunits)
-			outbuff = ssprintf (outbuff, "%s %s", outbuff, unitv[i]);
+			asprintf (&outbuff, "%s %s", outbuff, unitv[i]);
 
 		i++;