From: Benjamin Mako Hill Date: Sat, 13 Jun 2009 20:06:35 +0000 (-0400) Subject: added two fixes from iain murray X-Git-Url: https://projects.mako.cc/source/attachcheck/commitdiff_plain/6d218b1151bdebf069401152960f6631d8d8b0f8?hp=509ea33ac1791ce3035b8cbc206910e84d1dc3e2 added two fixes from iain murray - fix to keep it from catching the message in quoted text - safer working with sendmail --- diff --git a/attachcheck b/attachcheck index 5864de0..e5ac549 100755 --- a/attachcheck +++ b/attachcheck @@ -35,8 +35,10 @@ ignored_types = ( "applica/pgp-signat", "application/pgp-signature" ) # list of regular expressions which we will view as being indicative # of an attachment attachment_regexes = [ r'\battach(ed|ment|ing)?\b(?im)', - r'\balleg(o|at[oaie]|ando)' ] + r'\balleg(o|at[oaie]|ando)(?im)' ] +# ignore quoted text (which might refer to attachments in previous emails) +attachment_regexes = [ r'(^|^[^\n>].*)' + x for x in attachment_regexes ] ### No Edit Below This Line ########################################### @@ -50,9 +52,13 @@ import re def send_message(): global sendmail - sendmail = sendmail + " " + " ".join( sys.argv[1:] ) - - mailpipe = os.popen("%s" % sendmail, 'w') + + # construct the sendmail pipe more safely (thanks iain murray!) + cmd = sys.argv[:] + cmd[0] = sendmail + + from subprocess import Popen, PIPE + mailpipe = Popen(cmd, stdin=PIPE).stdin mailpipe.write( message_string ) sys.exit( mailpipe.close() )