After Miha did the security review, he found that dmarc_receive was failing. It wasn't covered here as dmarc's binary scripts are not used by spamassassin, but I thought it was worth checking.
The steps to reproduce (thanks Miha!) were: 1) Create dmarc xml based on google's example 2) Convert to gzipped base64 $ cat dmarc_example.xml | gzip | base64 > dmarc_example.xml.gz.base64 3) Copy base64 into example email (test_email.eml) from https://datatracker.ietf.org/doc/html/rfc7489#appendix-B.5 4) Run dmarc_receive $ dmarc_receive --file test_mail.eml &> out.txt The bad output contains "Can't locate object method "getline" via package "From: dmarc-reporting@mail.receiver.example ..." I caught the bug and amended it: diff -Nru libmail-dmarc-perl-1.20230215/debian/patches/use-MIME-Entity-and-MIME-Parser-from-libmime-tools-p.patch libmail-dmarc-perl-1.20230215/debian/patches/use-MIME-Entity-and-MIME-Parser-from-libmime-tools-p.patch --- libmail-dmarc-perl-1.20230215/debian/patches/use-MIME-Entity-and-MIME-Parser-from-libmime-tools-p.patch 2023-12-11 14:43:31.000000000 +0000 +++ libmail-dmarc-perl-1.20230215/debian/patches/use-MIME-Entity-and-MIME-Parser-from-libmime-tools-p.patch 2023-12-11 14:43:31.000000000 +0000 @@ -125,7 +125,7 @@ - foreach my $part ( Email::MIME->new( $email->as_string )->parts ) { - my ($c_type) = split /;/, $part->content_type || ''; + my $parser = MIME::Parser->new; -+ foreach my $part ( $parser->parse( $email->as_string )->parts_DFS ) { ++ foreach my $part ( $parser->parse_data( $email->as_string )->parts_DFS ) { + next if defined(!$part->bodyhandle); # something to process + my ($c_type) = split /;/, $part->effective_type || ''; next if $c_type eq 'text/plain'; dmarc building tests are passing [1] and also autopkgtests that cover the splitting: autopkgtest [14:02:18]: test splitting-check: [----------------------- autopkgtest [14:03:08]: test splitting-check: -----------------------] autopkgtest [14:03:09]: test splitting-check: - - - - - - - - - - results - - - - - - - - - - splitting-check PASS autopkgtest [14:03:10]: @@@@@@@@@@@@@@@@@@@@ summary splitting-check PASS Spamassassin test for dmarc also passes: root@NDmarc-spamassassin-tests:~/spamassassin# make test TEST_FILES="t/dmarc.t" "/usr/bin/perl" build/mkrules --exit_on_no_src --src rulesrc --out rules --manifest MANIFEST --manifestskip MANIFEST.SKIP mkrules: no rules updated "/usr/bin/perl" build/preprocessor -Mvars -DVERSION="4.000000" -DPREFIX="/usr/local" -DDEF_RULES_DIR="/usr/local/share/spamassassin" -DLOCAL_RULES_DIR="/etc/mail/spamassassin" -DLOCAL_STATE_DIR="/var/lib/spamassassin" -DINSTALLSITELIB="/usr/local/share/perl/5.38.2" -DCONTACT_ADDRESS="the administrator of that system" -DRE2C_BIN="re2c" -Msharpbang -Mconditional -DPERL_BIN=""/usr/bin/perl"" -DPERL_WARN="" -DPERL_TAINT="" -m755 -isa-update.raw -osa-update cp sa-update blib/script/sa-update "/usr/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/sa-update PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/dmarc.t t/dmarc.t .. Apr 9 12:29:54.780 [9230] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. 1/18 Apr 9 12:29:59.035 [9232] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. 3/18 Apr 9 12:30:03.208 [9234] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. 5/18 Apr 9 12:30:06.210 [9236] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. 7/18 Apr 9 12:30:09.197 [9238] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. 9/18 Apr 9 12:30:12.643 [9240] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. 11/18 Apr 9 12:30:17.225 [9242] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. 13/18 Apr 9 12:30:21.491 [9244] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. 15/18 Apr 9 12:30:25.294 [9246] warn: deprecated method; size() is an alias of "UDPsize()" at ../blib/lib/Mail/SpamAssassin/DnsResolver.pm line 602. t/dmarc.t .. ok All tests successful. Files=1, Tests=18, 34 wallclock secs ( 0.02 usr 0.00 sys + 12.72 cusr 1.55 csys = 14.29 CPU) Result: PASS I upload the fixed package at https://launchpad.net/~mirespace/+archive/ubuntu/libmail-dmarc-perl- suggested/ as I've been doing (fixed package is ~mirespace10) [1] https://launchpadlibrarian.net/723909463/buildlog_ubuntu-noble- amd64.libmail-dmarc-perl_1.20230215-1ubuntu1~mirespace10_BUILDING.txt.gz -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2023971 Title: [MIR] libmail-dmarc-perl To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libmail-dmarc-perl/+bug/2023971/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs