Revision: 2206
http://nagiosplug.svn.sourceforge.net/nagiosplug/?rev=2206&view=rev
Author: tonvoon
Date: 2009-06-05 17:01:21 +0000 (Fri, 05 Jun 2009)
Log Message:
-----------
Fixed parsing when two = signs within the performance data portion
Modified Paths:
--------------
Nagios-Plugin/trunk/Changes
Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm
Nagios-Plugin/trunk/lib/Nagios/Plugin/Performance.pm
Nagios-Plugin/trunk/lib/Nagios/Plugin.pm
Nagios-Plugin/trunk/t/Nagios-Plugin-Performance.t
Modified: Nagios-Plugin/trunk/Changes
===================================================================
--- Nagios-Plugin/trunk/Changes 2009-06-01 20:12:16 UTC (rev 2205)
+++ Nagios-Plugin/trunk/Changes 2009-06-05 17:01:21 UTC (rev 2206)
@@ -1,5 +1,8 @@
Revision history for Perl module Nagios::Plugin.
+0.33 5th June 2009
+ - Fixed infinite loop when invalid performance data with multiple = were present
+
0.32 3rd March 2009
- Handle performance data with quotes in the label (thanks to Kang)
- Die if default config file is not available and --extra-opts is set
Modified: Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm
===================================================================
--- Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm 2009-06-01 20:12:16 UTC (rev 2205)
+++ Nagios-Plugin/trunk/lib/Nagios/Plugin/Functions.pm 2009-06-05 17:01:21 UTC (rev 2206)
@@ -12,7 +12,7 @@
use Math::Calc::Units;
# Remember to update Nagios::Plugins as well
-our $VERSION = "0.32";
+our $VERSION = "0.33";
our @STATUS_CODES = qw(OK WARNING CRITICAL UNKNOWN DEPENDENT);
Modified: Nagios-Plugin/trunk/lib/Nagios/Plugin/Performance.pm
===================================================================
--- Nagios-Plugin/trunk/lib/Nagios/Plugin/Performance.pm 2009-06-01 20:12:16 UTC (rev 2205)
+++ Nagios-Plugin/trunk/lib/Nagios/Plugin/Performance.pm 2009-06-05 17:01:21 UTC (rev 2206)
@@ -87,7 +87,14 @@
# If there is more than 1 equals sign, split it out and parse individually
if (@{[$perfstring =~ /=/g]} > 1) {
$perfstring =~ s/^(.*?=.*?)\s//;
- $obj = $class->_parse($1);
+ if (defined $1) {
+ $obj = $class->_parse($1);
+ } else {
+ # This could occur if perfdata was soemthing=value=
+ # Since this is invalid, we reset the string and continue
+ $perfstring = "";
+ $obj = $class->_parse($perfstring);
+ }
} else {
$obj = $class->_parse($perfstring);
$perfstring = "";
Modified: Nagios-Plugin/trunk/lib/Nagios/Plugin.pm
===================================================================
--- Nagios-Plugin/trunk/lib/Nagios/Plugin.pm 2009-06-01 20:12:16 UTC (rev 2205)
+++ Nagios-Plugin/trunk/lib/Nagios/Plugin.pm 2009-06-05 17:01:21 UTC (rev 2206)
@@ -25,7 +25,7 @@
# CPAN stupidly won't index this module without a literal $VERSION here,
# so we're forced to duplicate it explicitly
# Make sure you update $Nagios::Plugin::Functions::VERSION too
-our $VERSION = "0.32";
+our $VERSION = "0.33";
sub new {
my $class = shift;
Modified: Nagios-Plugin/trunk/t/Nagios-Plugin-Performance.t
===================================================================
--- Nagios-Plugin/trunk/t/Nagios-Plugin-Performance.t 2009-06-01 20:12:16 UTC (rev 2205)
+++ Nagios-Plugin/trunk/t/Nagios-Plugin-Performance.t 2009-06-05 17:01:21 UTC (rev 2206)
@@ -1,4 +1,5 @@
+use warnings;
use strict;
use Test::More;
use Nagios::Plugin::Functions;
@@ -40,7 +41,7 @@
},
);
-plan tests => (11 * scalar @test) + 175;
+plan tests => (11 * scalar @test) + 176;
use_ok('Nagios::Plugin::Performance');
diag "\nusing Nagios::Plugin::Performance revision ". $Nagios::Plugin::Performance::VERSION . "\n" if $ENV{TEST_VERBOSE};
@@ -349,4 +350,7 @@
is( $p[2]->max, undef, "max ok");
+@p = Nagios::Plugin::Performance->parse_perfstring("processes=9;WKFLSV32.exe;9=");
+is_deeply( \@p, [], "Fails parsing correctly");
+
# add_perfdata tests in t/Nagios-Plugin-01.t
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises
looking to deploy the next generation of Solaris that includes the latest
innovations from Sun and the OpenSource community. Download a copy and
enjoy capabilities such as Networking, Storage and Virtualization.
Go to: http://p.sf.net/sfu/opensolaris-get
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.