Description: Limit checked mime parts
Origin: upstream, https://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Message.pm?r1=1866128&r2=1866127&pathrev=1866128&view=patch
Forwarded: not-needed
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
Index: spamassassin-3.4.2/lib/Mail/SpamAssassin/Message.pm
===================================================================
--- spamassassin-3.4.2.orig/lib/Mail/SpamAssassin/Message.pm
+++ spamassassin-3.4.2/lib/Mail/SpamAssassin/Message.pm
@@ -896,6 +896,7 @@ sub _parse_multipart {
   my $header;
   my $part_array;
   my $found_end_boundary;
+  my $partcnt = 0;
 
   my $line_count = @{$body};
   foreach ( @{$body} ) {
@@ -968,6 +969,13 @@ sub _parse_multipart {
 	}
       }
 
+      # Maximum parts to process
+      if (++$partcnt == 1000) {
+        dbg("message: mimepart limit exceeded, stopping parsing");
+        $self->{'mimepart_limit_exceeded'} = 1;
+        return;
+      }
+
       # make sure we start with a new clean node
       $in_body  = 0;
       $part_msg = Mail::SpamAssassin::Message::Node->new({ normalize=>$self->{normalize} });
