I've open a bug in which I noted my suspicion of what is happening.
https://bz.apache.org/SpamAssassin/show_bug.cgi?id=8245
If you have a sanitized email that consistently causes this to happen,
please attach it to the bug report.
As I said in the bug report, I suspect that an email that does not pass
a DMARC chack, has one or more Authentication-Results headers, and none
of them have an spf= field, would result in this error.
Sidney
Mateusz Krawczyk wrote on 20/04/24 1:07 am:
Hello,
after updating SA 4.0.0 to 4.0.1, (CentOS 7 - Perl version 5.16.3) I get
the following message in log regarding the DMARC plugin:
plugin: eval failed: Can't use an undefined value as an ARRAY reference
at /usr/share/perl5/Mail/SpamAssassin/Plugin/DMARC.pm line 336.
File "DMARC.pm":
my $dmarc_arc_verified = 0;
if (($result->result ne 'pass') and (ref($pms->{arc_verifier}) and
($pms->{arc_verifier}->result))) {
undef $result;
$dmarc_arc_verified = 1;
# if DMARC fails retry by reading data from AAR headers
# use Mail::SpamAssassin::Plugin::AuthRes if available to read ARC
signature details
_ my @spf_parsed = sort { ( $a->{authres_parsed}{spf}{arc_index} // 0
) <=> ( $b->{authres_parsed}{spf}{arc_index} // 0 ) }
@{$pms->{authres_parsed}{spf}};_
my $old_arc_index = 0;
Any ideas how to solve it ?
Regards,
Mateusz