~ulrith/mailman/russian-2.1.20

« back to all changes in this revision

Viewing changes to Mailman/Handlers/SpamDetect.py

  • Committer: Mark Sapiro
  • Date: 2015-03-02 21:50:24 UTC
  • Revision ID: mark@msapiro.net-20150302215024-zanoi07dm94paxpx
A LookupError in SpamDetect on a message with RFC 2047 encoded headers
in an unknown character set is fixed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 1998-2013 by the Free Software Foundation, Inc.
 
1
# Copyright (C) 1998-2015 by the Free Software Foundation, Inc.
2
2
#
3
3
# This program is free software; you can redistribute it and/or
4
4
# modify it under the terms of the GNU General Public License
77
77
        for frag, cs in v:
78
78
            if not cs:
79
79
                cs = 'us-ascii'
80
 
            uvalue += unicode(frag, cs, 'replace')
 
80
            try:
 
81
                uvalue += unicode(frag, cs, 'replace')
 
82
            except LookupError:
 
83
                # The encoding charset is unknown.  At this point, frag
 
84
                # has been QP or base64 decoded into a byte string whose
 
85
                # charset we don't know how to handle.  We will try to
 
86
                # unicode it as iso-8859-1 which may result in a garbled
 
87
                # mess, but we have to do something.
 
88
                uvalue += unicode(frag, 'iso-8859-1', 'replace')
81
89
        headers += '%s: %s\n' % (h, uvalue.encode(cset, 'replace'))
82
90
    return headers
83
91