You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2007/01/22 16:29:13 UTC

svn commit: r498650 - /spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm

Author: jm
Date: Mon Jan 22 07:29:12 2007
New Revision: 498650

URL: http://svn.apache.org/viewvc?view=rev&rev=498650
Log:
bug 5300: DKIM signature verification would fail to verify if a message contained DOS-style line endings.  fix from Jason Long <jlong at messiah.edu>

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm?view=diff&rev=498650&r1=498649&r2=498650
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm Mon Jan 22 07:29:12 2007
@@ -244,26 +244,17 @@
   $scan->{dkim_testing} = 0;
   $scan->{dkim_signall} = 0;
 
-  my $header = $scan->{msg}->get_pristine_header();
-  my $body = $scan->{msg}->get_body();
-
   my $message = Mail::DKIM::Verifier->new_object();
   if (!$message) {
     dbg("dkim: cannot create Mail::DKIM::Verifier");
     return;
   }
 
-  # headers, line-by-line with \r\n endings, as per Mail::DKIM API
-  foreach my $line (split(/\r?\n/s, $header)) {  # split lines, deleting endings and final empty line
-    $line =~ s/$/\r\n/s;  # add back a standard \r\n ending
-    $message->PRINT($line);
-  }
-  $message->PRINT("\r\n");
-
-  # body, line-by-line with \r\n endings.
+  # feed content of message into verifier, using \r\n endings,
+  # required by Mail::DKIM API (see bug 5300)
   eval {
-    foreach my $line (@{$body}) {
-      $line =~ s/\r?\n$/\r\n/s;       # ensure \r\n ending
+    foreach my $line (split(/\n/s, $scan->{msg}->get_pristine)) {
+      $line =~ s/\r?$/\r\n/s;       # ensure \r\n ending
       $message->PRINT($line);
     }
   };