From 3ede3478c55963e8a03433856ddf0b4476be1ee7 Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Thu, 30 Mar 2023 08:28:05 +0000 Subject: [PATCH] Adding d/p/16_check_snmp_disable_multiplier_when_unused from upstream --- ..._check_snmp_disable_multiplier_when_unused | 90 +++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 91 insertions(+) create mode 100644 debian/patches/16_check_snmp_disable_multiplier_when_unused diff --git a/debian/patches/16_check_snmp_disable_multiplier_when_unused b/debian/patches/16_check_snmp_disable_multiplier_when_unused new file mode 100644 index 0000000..9863c92 --- /dev/null +++ b/debian/patches/16_check_snmp_disable_multiplier_when_unused @@ -0,0 +1,90 @@ +From c874f950e8e5b6a805d8adf759d521501b22c7ce Mon Sep 17 00:00:00 2001 +From: Sven Nierlein +Date: Wed, 15 Mar 2023 09:51:18 +0100 +Subject: [PATCH 1/2] 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 +--- + 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 d3968a27d..c4ddd0edd 100644 +--- a/plugins/check_snmp.c ++++ b/plugins/check_snmp.c +@@ -46,6 +46,7 @@ const char *email = "devel@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; + } + + + +From 6e64973a4486248ff6c3de7d72637e44b6474c3e Mon Sep 17 00:00:00 2001 +From: Sven Nierlein +Date: Mon, 27 Mar 2023 12:59:53 +0200 +Subject: [PATCH 2/2] simplify code + +if statement is always true at this point, so remove it. +--- + plugins/check_snmp.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c +index c4ddd0edd..aefda3d29 100644 +--- a/plugins/check_snmp.c ++++ b/plugins/check_snmp.c +@@ -1179,10 +1179,7 @@ multiply (char *str) + + val = strtod (str, &endptr); + if ((val == 0.0) && (endptr == str)) { +- if(multiplier != 1) { +- die(STATE_UNKNOWN, _("multiplier set (%.1f), but input is not a number: %s"), multiplier, str); +- } +- return str; ++ die(STATE_UNKNOWN, _("multiplier set (%.1f), but input is not a number: %s"), multiplier, str); + } + + if(verbose>2) diff --git a/debian/patches/series b/debian/patches/series index 3e14114..ae89285 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -7,3 +7,4 @@ 13_check_icmp_improvements 14_check_curl_fix_SSL_with_multiple_IPs 15_check_swap_remove_includes +16_check_snmp_disable_multiplier_when_unused