On 2011-07-27 16:55:29, Davide Brini wrote: > Hi, I'm using the stable mon-1.2.0-1 under Ubuntu 11.04 (Perl 5.10.1), and I > noticed that mon wasn't logging anything at all in syslog. Further > inspection revealed that the problem seems to be in the redefined syslog() > function: > > no warnings; # Redefining syslog > sub syslog { > eval { > local $SIG{"__DIE__"}= sub { }; > my @log = map { s/\%//mg; } @_; > Sys::Syslog::syslog(@log); > } > } > > since $_ is aliased in a map {} block, when the function is passed constant > strings, the map {} on @_ fails with a "modification of a read-only value > attempted". However this is not apparent, not even in debug mode, since it > happens inside the eval{} block. > > Suggested change (for example): > > no warnings; # Redefining syslog > sub syslog { > eval { > local $SIG{"__DIE__"}= sub { }; > my @log = @_; > s/\%//mg for (@log); > Sys::Syslog::syslog(@log); > } > }
Debian fixed this with Bug#611751 I believe. Surprised if that did not make it upstream. /Allan -- Allan Wind Life Integrity, LLC <http://lifeintegrity.com> _______________________________________________ mon mailing list mon@linux.kernel.org http://linux.kernel.org/mailman/listinfo/mon