mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-06-09 08:42:17 -04:00
Fixed check_load argument handling when passing non triplet thresholds. Thanks to Jonathan Kamens (bug #1831890)
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1851 f882894a-f735-0410-b71e-b25c423dba1c
This commit is contained in:
parent
249bed27d5
commit
3bb4b6b336
3 changed files with 14 additions and 4 deletions
1
NEWS
1
NEWS
|
|
@ -15,6 +15,7 @@ This file documents the major additions and syntax changes between releases.
|
|||
implement stratum thresholds support (feature request #1703823).
|
||||
Fix check_disk reporting OK if disk usage grows over 100% (bug #1348746).
|
||||
The problem happens to be in Gnulib but a workaround have been implemented in check_disk.c
|
||||
Fix check_load argument handling when not passing triplets (bug #1831890)
|
||||
|
||||
1.4.10 28th September 2007
|
||||
Fix check_http buffer overflow vulnerability when following HTTP redirects
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ static void
|
|||
get_threshold(char *arg, double *th)
|
||||
{
|
||||
size_t i, n;
|
||||
int valid = 0;
|
||||
char *str = arg, *p;
|
||||
|
||||
n = strlen(arg);
|
||||
|
|
@ -84,12 +85,13 @@ get_threshold(char *arg, double *th)
|
|||
th[i] = strtod(str, &p);
|
||||
if(p == str) break;
|
||||
|
||||
valid = 1;
|
||||
str = p + 1;
|
||||
if(n <= (size_t)(str - arg)) break;
|
||||
}
|
||||
|
||||
/* empty argument or non-floatish, so warn about it and die */
|
||||
if(!i) usage (_("Warning threshold must be float or float triplet!\n"));
|
||||
if(!i && !valid) usage (_("Warning threshold must be float or float triplet!\n"));
|
||||
|
||||
if(i != 2) {
|
||||
/* one or more numbers were given, so fill array with last
|
||||
|
|
|
|||
|
|
@ -11,10 +11,11 @@ use NPTest;
|
|||
|
||||
my $res;
|
||||
|
||||
my $successOutput = '/^OK - load average: [0-9]+\.?[0-9]+, [0-9]+\.?[0-9]+, [0-9]+\.?[0-9]+/';
|
||||
my $failureOutput = '/^CRITICAL - load average: [0-9]+\.?[0-9]+, [0-9]+\.?[0-9]+, [0-9]+\.?[0-9]+/';
|
||||
my $loadValue = "[0-9]+\.?[0-9]+";
|
||||
my $successOutput = "/^OK - load average: $loadValue, $loadValue, $loadValue/";
|
||||
my $failureOutput = "/^CRITICAL - load average: $loadValue, $loadValue, $loadValue/";
|
||||
|
||||
plan tests => 6;
|
||||
plan tests => 11;
|
||||
|
||||
$res = NPTest->testCmd( "./check_load -w 100,100,100 -c 100,100,100" );
|
||||
cmp_ok( $res->return_code, 'eq', 0, "load not over 100");
|
||||
|
|
@ -28,3 +29,9 @@ $res = NPTest->testCmd( "./check_load -r -w 0,0,0 -c 0,0,0" );
|
|||
cmp_ok( $res->return_code, 'eq', 2, "Load over 0 with per cpu division");
|
||||
like( $res->output, $failureOutput, "Output OK");
|
||||
|
||||
$res = NPTest->testCmd( "./check_load -w 100 -c 100,110" );
|
||||
cmp_ok( $res->return_code, 'eq', 0, "Plugin can handle non-triplet-arguments");
|
||||
like( $res->output, $successOutput, "Output OK");
|
||||
like( $res->perf_output, "/load1=$loadValue;100.000;100.000/", "Test handling of non triplet thresholds (load1)");
|
||||
like( $res->perf_output, "/load5=$loadValue;100.000;110.000/", "Test handling of non triplet thresholds (load5)");
|
||||
like( $res->perf_output, "/load15=$loadValue;100.000;110.000/", "Test handling of non triplet thresholds (load15)");
|
||||
|
|
|
|||
Loading…
Reference in a new issue