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]

Reply via email to