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
[email protected]
http://linux.kernel.org/mailman/listinfo/mon