You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2014/12/18 14:24:51 UTC
svn commit: r1646455 - /spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
Author: mmartinec
Date: Thu Dec 18 13:24:51 2014
New Revision: 1646455
URL: http://svn.apache.org/r1646455
Log:
fix SA::Util::qp_decode for compliance with RFC 2045 (trailing whitespace must be deleted before decoding), add comments
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm?rev=1646455&r1=1646454&r2=1646455&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm Thu Dec 18 13:24:51 2014
@@ -727,8 +727,16 @@ sub base64_decode {
sub qp_decode {
local $_ = shift;
- s/\=\r?\n//gs;
- s/\=([0-9a-fA-F]{2})/chr(hex($1))/ge;
+ # RFC 2045: when decoding a Quoted-Printable body, any trailing
+ # white space on a line must be deleted
+ s/[ \t]+(?=\r?\n)//gs;
+
+ # RFC 2045 explicitly prohibits lowercase characters a-f in QP encoding
+ # do we really want to allow them???
+ s/=([0-9a-fA-F]{2})/chr(hex($1))/ge;
+
+ s/=\r?\n//gs; # soft line breaks
+
return $_;
}