[monitoring-plugins] check_snmp: disable multiplier when unused

Sven Nierlein git at monitoring-plugins.org
Mon Mar 27 13:20:11 CEST 2023


 Module: monitoring-plugins
 Branch: master
 Commit: c874f950e8e5b6a805d8adf759d521501b22c7ce
 Author: Sven Nierlein <Sven.Nierlein at consol.de>
   Date: Wed Mar 15 09:51:18 2023 +0100
    URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=c874f95

check_snmp: disable multiplier when unused

 - if no multiplier is set, simply return the given string. Otherwise we would strip off the unit.
 - if used, allocate new space to hold the result which might be larger than the initial input

Signed-off-by: Sven Nierlein <sven at consol.de>

---

 plugins/check_snmp.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c
index d3968a2..c4ddd0e 100644
--- a/plugins/check_snmp.c
+++ b/plugins/check_snmp.c
@@ -46,6 +46,7 @@ const char *email = "devel at monitoring-plugins.org";
 #define DEFAULT_PRIV_PROTOCOL "DES"
 #define DEFAULT_DELIMITER "="
 #define DEFAULT_OUTPUT_DELIMITER " "
+#define DEFAULT_BUFFER_SIZE 100
 
 #define mark(a) ((a)!=0?"*":"")
 
@@ -157,6 +158,7 @@ int perf_labels = 1;
 char* ip_version = "";
 double multiplier = 1.0;
 char *fmtstr = "";
+char buffer[DEFAULT_BUFFER_SIZE];
 
 static char *fix_snmp_range(char *th)
 {
@@ -1169,6 +1171,9 @@ multiply (char *str)
 	double val;
 	char *conv = "%f";
 
+	if(multiplier == 1)
+		return(str);
+
 	if(verbose>2)
 		printf("    multiply input: %s\n", str);
 
@@ -1187,15 +1192,15 @@ multiply (char *str)
 		conv = fmtstr;
 	}
 	if (val == (int)val) {
-		sprintf(str, "%.0f", val);
+		snprintf(buffer, DEFAULT_BUFFER_SIZE, "%.0f", val);
 	} else {
 		if(verbose>2)
 			printf("    multiply using format: %s\n", conv);
-		sprintf(str, conv, val);
+		snprintf(buffer, DEFAULT_BUFFER_SIZE, conv, val);
 	}
 	if(verbose>2)
-		printf("    multiply result: %s\n", str);
-	return str;
+		printf("    multiply result: %s\n", buffer);
+	return buffer;
 }
 
 



More information about the Commits mailing list