]> projects.mako.cc - attachcheck/commitdiff
added two fixes from iain murray
authorBenjamin Mako Hill <mako@atdot.cc>
Sat, 13 Jun 2009 20:06:35 +0000 (16:06 -0400)
committerBenjamin Mako Hill <mako@atdot.cc>
Sat, 13 Jun 2009 20:06:35 +0000 (16:06 -0400)
- fix to keep it from catching the message in quoted text
- safer working with sendmail

attachcheck

index 5864de09e1ae0e4d89960e6ad81cbf124b58a17d..e5ac549ed9be819b9dcf9c54d7d57e76587b4483 100755 (executable)
@@ -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)',
 # 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
 ###########################################
 
 ### No Edit Below This Line
 ###########################################
@@ -50,9 +52,13 @@ import re
 def send_message(): 
 
     global sendmail
 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() )
 
     mailpipe.write( message_string )
     sys.exit( mailpipe.close() )
 

Benjamin Mako Hill || Want to submit a patch?