diff options
author | Mark Sapiro <mark@msapiro.net> | 2017-03-15 20:39:27 -0700 |
---|---|---|
committer | Mark Sapiro <mark@msapiro.net> | 2017-03-15 20:39:27 -0700 |
commit | bb0383b9174e1afb5939928539bfd9c20c8829f2 (patch) | |
tree | d1a4ccae12e97b64be9ed8cdf952abed56266a43 | |
parent | 94a83e81638064e6d70fafe02a9b14b8866635e3 (diff) | |
download | mailman2-bb0383b9174e1afb5939928539bfd9c20c8829f2.tar.gz mailman2-bb0383b9174e1afb5939928539bfd9c20c8829f2.tar.xz mailman2-bb0383b9174e1afb5939928539bfd9c20c8829f2.zip |
Treat message and digest headers and footers as empty if they contain
only whitespace.
-rw-r--r-- | Mailman/Handlers/Decorate.py | 8 | ||||
-rw-r--r-- | Mailman/Handlers/ToDigest.py | 10 | ||||
-rw-r--r-- | NEWS | 3 |
3 files changed, 14 insertions, 7 deletions
diff --git a/Mailman/Handlers/Decorate.py b/Mailman/Handlers/Decorate.py index de8b44e6..d1c8c5b4 100644 --- a/Mailman/Handlers/Decorate.py +++ b/Mailman/Handlers/Decorate.py @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2008 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2017 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -210,7 +210,11 @@ def process(mlist, msg, msgdata): def decorate(mlist, template, what, extradict=None): # `what' is just a descriptive phrase used in the log message - # + + # If template is only whitespace, ignore it. + if len(re.sub('\s', '', template)) == 0: + return '' + # BAW: We've found too many situations where Python can be fooled into # interpolating too much revealing data into a format string. For # example, a footer of "% silly %(real_name)s" would give a header diff --git a/Mailman/Handlers/ToDigest.py b/Mailman/Handlers/ToDigest.py index 02965f82..046cbaba 100644 --- a/Mailman/Handlers/ToDigest.py +++ b/Mailman/Handlers/ToDigest.py @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2016 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2017 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -215,8 +215,8 @@ def send_i18n_digests(mlist, mboxfp): # RFC 1153 print >> plainmsg, mastheadtxt print >> plainmsg - # Now add the optional digest header - if mlist.digest_header: + # Now add the optional digest header but only if more than whitespace. + if re.sub('\s', '', mlist.digest_header): headertxt = decorate(mlist, mlist.digest_header, _('digest header')) # MIME header = MIMEText(headertxt, _charset=lcset) @@ -365,8 +365,8 @@ def send_i18n_digests(mlist, mboxfp): print >> plainmsg, payload if not payload.endswith('\n'): print >> plainmsg - # Now add the footer - if mlist.digest_footer: + # Now add the footer but only if more than whitespace. + if re.sub('\s', '', mlist.digest_footer): footertxt = decorate(mlist, mlist.digest_footer, _('digest footer')) # MIME footer = MIMEText(footertxt, _charset=lcset) @@ -26,6 +26,9 @@ Here is a history of user visible changes to Mailman. Bug fixes and other patches + - Treat message and digest headers and footers as empty if they contain + only whitespace. (LP: #1673307) + - Ensured that added message and digest headers and footers always have a terminating new-line. (LP: #1670033) |