diff options
author | Guilhem Moulin <guilhem@fripost.org> | 2014-07-07 05:29:09 +0200 |
---|---|---|
committer | Guilhem Moulin <guilhem@fripost.org> | 2015-06-07 02:52:35 +0200 |
commit | 8fdaba4d764b9e534a0343746a3e30cf3f68852e (patch) | |
tree | 4aea0cc8d0aa6c99c3f08c1650e1e5d5a86ddab7 | |
parent | 7c01a383fae4d84727d6a036d93117c761b98e10 (diff) |
Fix a corner case in reserved-alias.pl.
'if $l' is false when $l is 0, while 0@example.org is a perfectly valid
address.
-rwxr-xr-x | roles/MX/files/usr/local/sbin/reserved-alias.pl | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/roles/MX/files/usr/local/sbin/reserved-alias.pl b/roles/MX/files/usr/local/sbin/reserved-alias.pl index 2c86020..603d773 100755 --- a/roles/MX/files/usr/local/sbin/reserved-alias.pl +++ b/roles/MX/files/usr/local/sbin/reserved-alias.pl @@ -41,7 +41,7 @@ my $sender = shift; # The original recipient my $orig = shift; -$orig =~ /^([^@]+)\@(.+)$/ +$orig =~ /^(.+)\@([^@]+)$/ or warn "Warning: Non fully qualified: $orig"; my ($local,$domain) = ($1,$2); @@ -50,12 +50,7 @@ my @recipients = grep { $_ and $orig ne $_ } # add localparts to domain map { my $x = $_; if ($x =~ /^\@/) { - if ($local) { - $x = $local.$x; - } - else { - undef $x; - } + $x = (defined $local and $local ne '') ? $local.$x : undef; } $x } @@ -97,7 +92,7 @@ if (defined $domain) { my $dn2 = ldap_explode_dn($dn, casefold => 'lower'); my $l = $dn2->[0]->{fvl}; my $d = $dn2->[1]->{fvd}; - if ($l and $d) { + if ($l ne '' and $d ne '') { push @recipients, $l.'@'.$d; } else { |