From: Stoiko Ivanov Date: Mon, 26 Feb 2024 15:37:32 +0000 (+0100) Subject: dkim: signer: header: rework early exits on multiple from addresses X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=e065addf325b8dbbf9403551fd7f3a4c5bc134dd;p=pmg-api.git dkim: signer: header: rework early exits on multiple from addresses Signed-off-by: Stoiko Ivanov --- diff --git a/src/PMG/DKIMSign.pm b/src/PMG/DKIMSign.pm index 3e4c515..6f309c8 100644 --- a/src/PMG/DKIMSign.pm +++ b/src/PMG/DKIMSign.pm @@ -97,18 +97,17 @@ sub parse_headers_for_signing { # [1] https://datatracker.ietf.org/doc/html/rfc7489#section-6.6.1 my ($entity) = @_; - my $from_count = 0; my $domain; my @from_headers = $entity->head->get('from'); foreach my $from_header (@from_headers) { my @addresses = Email::Address::XS::parse_email_addresses($from_header); - $from_count += scalar(@addresses); - $domain = $addresses[0]->host() if scalar(@addresses) > 0; + die "there is more than one sender in the header\n" + if defined($domain) || scalar(@addresses) > 1; + $domain = $addresses[0]->host(); } - die "there is more than one sender in the header\n" if $from_count > 1; - die "there is no sender in the header\n" if $from_count == 0; + die "there is no sender in the header\n" if !defined($domain); return $domain; }