From bb0383b9174e1afb5939928539bfd9c20c8829f2 Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Wed, 15 Mar 2017 20:39:27 -0700 Subject: Treat message and digest headers and footers as empty if they contain only whitespace. --- Mailman/Handlers/Decorate.py | 8 ++++++-- Mailman/Handlers/ToDigest.py | 10 +++++----- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'Mailman') 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) -- cgit v1.2.3