svn commit: r1936423 - spamassassin/trunk/lib/Mail/SpamAssassin

[email protected] Tue, 21 Jul 2026 15:27:05 -0000
Newsgroups gmane.mail.spam.spamassassin.cvs
Message-ID <178464762552.3934990.3124707485988463987@svn03-he-fi>
Author: gbechis
Date: Tue Jul 21 15:27:05 2026
New Revision: 1936423

Log:
limit base64 decoding based on scan size, we do not need to decode a big message
just to discard it later

Modified:
   spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm	Tue Jul 21 14:33:38 2026	(r1936422)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm	Tue Jul 21 15:27:05 2026	(r1936423)
@@ -1535,7 +1535,10 @@ sub get_decoded_body_text_array {
     # and not displayed
     next if ($parts[$pt]->effective_type() eq 'text/calendar');
 
-    my $rawbody = $parts[$pt]->decode();
+    # Bound base64 decoding to the scan size (plus boundary slack for the
+    # truncate-at-boundary search below) so oversized base64-encoded parts
+    # aren't fully decoded just to be thrown away.
+    my $rawbody = $parts[$pt]->decode($scansize ? $scansize + 1024 : undef);
     my $rawlen = length($rawbody);
 
     # Truncate to rawbody_part_scan_size