[nagiosplug] Fix Debian bug #545940: Failure when run via ePN

Holger Weiss hweiss at users.sourceforge.net
Mon Apr 12 16:02:46 CEST 2010


 Module: nagiosplug
 Branch: master
 Commit: 7a661c7aed2a0bad4ce1e3786bc707cd2b07c128
 Author: Holger Weiss <holger at zedat.fu-berlin.de>
   Date: Mon Apr 12 15:36:33 2010 +0200
    URL: http://nagiosplug.git.sf.net/git/gitweb.cgi?p=nagiosplug/nagiosplug;a=commit;h=7a661c7

Fix Debian bug #545940: Failure when run via ePN

If Perl's "shift" function is called outside of a subroutine and without
any argument, it usually shifts @ARGV.  However, if a plugin is executed
via ePN, such a call will shift @_ instead, so we must explicitly
specify @ARGV for this to work as expected.

This fixes Debian bug #545940, see: http://bugs.debian.org/545940

Commit de7191e3424e02ba278a39b86e8b1906a25d0362 fixed the same issue for
check_disk_smb.

(Reported by Hendrik Jaeger, forwarded by Jan Wagner.)

---

 NEWS                          |    2 +-
 plugins-scripts/check_ircd.pl |    8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/NEWS b/NEWS
index 99d48e9..62a1acb 100644
--- a/NEWS
+++ b/NEWS
@@ -16,7 +16,7 @@ This file documents the major additions and syntax changes between releases.
 	Fix regression introduced in #1867716 where partially valid performance strings would not be printed anymore
 	Fix regression in check_http ssl checks on some servers - make SNI an option
 	Fix guest mode support in check_disk_smb
-	Fix check_disk_smb failure when run via ePN
+	Fix check_disk_smb and check_ircd failures when run via ePN
 	check_ldap now allows for specifying an empty LDAP base
 	WARNINGS
 	Updated developer documentation to say that performance labels should not have an equals sign or
diff --git a/plugins-scripts/check_ircd.pl b/plugins-scripts/check_ircd.pl
index 3fbce2e..42a9bca 100755
--- a/plugins-scripts/check_ircd.pl
+++ b/plugins-scripts/check_ircd.pl
@@ -187,19 +187,19 @@ MAIN:
 
 	if ($opt_h) {print_help(); exit $ERRORS{'OK'};}
 
-	($opt_H) || ($opt_H = shift) || usage("Host name/address not specified\n");
+	($opt_H) || ($opt_H = shift @ARGV) || usage("Host name/address not specified\n");
 	my $remotehost = $1 if ($opt_H =~ /([-.A-Za-z0-9]+)/);
 	($remotehost) || usage("Invalid host: $opt_H\n");
 
-	($opt_w) || ($opt_w = shift) || ($opt_w = 50);
+	($opt_w) || ($opt_w = shift @ARGV) || ($opt_w = 50);
 	my $warn = $1 if ($opt_w =~ /^([0-9]+)$/);
 	($warn) || usage("Invalid warning threshold: $opt_w\n");
 
-	($opt_c) || ($opt_c = shift) || ($opt_c = 100);
+	($opt_c) || ($opt_c = shift @ARGV) || ($opt_c = 100);
 	my $crit = $1 if ($opt_c =~ /^([0-9]+)$/);
 	($crit) || usage("Invalid critical threshold: $opt_c\n");
 
-	($opt_p) || ($opt_p = shift) || ($opt_p = 6667);
+	($opt_p) || ($opt_p = shift @ARGV) || ($opt_p = 6667);
 	my $remoteport = $1 if ($opt_p =~ /^([0-9]+)$/);
 	($remoteport) || usage("Invalid port: $opt_p\n");
 





More information about the Commits mailing list