[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