Mail::SRS::Daemon::run() currently makes warnings fatal, so the warn()
in hash_verify() propagates up through parse() to reverse(), where it
kills the daemon.
So, after twelve years, I think it's time to stop making warnings fatal:
diff -r a/usr/share/perl5/Mail/SRS/Daemon.pm
b/usr/share/perl5/Mail/SRS/Daemon.pm
72,75d71
< # Until we decide that forward() and reverse() can die, this will
< # allow us to trap the error messages from those subroutines.
< local $SIG{__WARN__} = sub { die @_; };
<
Note that warnings will still go to the syslog and journal:
# echo 'FORWARD [email protected] forwarding-service.tld' | srsc
SRS0=D4BWnURvl4EWeb6+2Vl/[email protected]
# echo 'REVERSE
SRS0=D4BWnURvl4EWeb6+2Vl/[email protected]'
| srsc
[email protected]
# echo 'REVERSE
srs0=d4bwnurvl4eweb6+2vl/[email protected]'
| srsc
[email protected]
# journalctl -u srsd -l | tail -n1
Jun 07 22:54:40 london.dah31.org srsd[7793]: SRS: Case insensitive
hash match detected. Someone smashed case in the local-part. at
/usr/share/perl5/Mail/SRS.pm line 421, <GEN7> line 1.
Cheers,
--
Dave Norman
[email protected]