ud-mailgate: use subprocess.Popen instead of os.popen.
authorJulien Cristau <jcristau@debian.org>
Fri, 11 Oct 2019 15:26:16 +0000 (17:26 +0200)
committerJulien Cristau <jcristau@debian.org>
Fri, 11 Oct 2019 15:26:16 +0000 (17:26 +0200)
debian/changelog
ud-mailgate

index cbb687c..936ed15 100644 (file)
@@ -22,6 +22,7 @@ userdir-ldap (0.3.97) UNRELEASED; urgency=medium
   * Stop using string exceptions.  They were removed in python 2.6.
   * Delete unmaintained/gpgwrapper.  8 years of non-maintenance ought to be enough.
   * Delete ud-emailmatcher.  Looks broken and unused.
+  * ud-mailgate: use subprocess.Popen instead of os.popen.
 
  -- Peter Palfrader <weasel@debian.org>  Sat, 06 Apr 2019 22:04:34 +0200
 
index 073ee4f..1f63e68 100755 (executable)
@@ -859,10 +859,10 @@ try:
 
     # Send the message through sendmail
     ErrMsg = "A problem occured while trying to send the reply"
-    Child = os.popen("/usr/sbin/sendmail -t", "w")
-    #   Child = os.popen("cat","w")
-    Child.write(Reply)
-    if Child.close() is not None:
+    Child = subprocess.Popen(['/usr/sbin/sendmail', '-t'], stdin=subprocess.PIPE)
+    Child.stdin.write(Reply)
+    Child.stdin.close()
+    if Child.wait() != 0:
         raise UDExecuteError("Sendmail gave a non-zero return code")
 
 except Exception:
@@ -888,10 +888,11 @@ except Exception:
     try:
         ErrReply = TemplateSubst(Subst, open(TemplatesDir + "error-reply", "r").read())
 
-        Child = os.popen("/usr/sbin/sendmail -t -oi -f ''", "w")
-        Child.write(ErrReplyHead)
-        Child.write(ErrReply)
-        if Child.close() is not None:
+        Child = subprocess.Popen(['/usr/sbin/sendmail', '-t', '-oi', '-f', ''], stdin=subprocess.PIPE)
+        Child.stdin.write(ErrReplyHead)
+        Child.stdin.write(ErrReply)
+        Child.stdin.close()
+        if Child.wait() != 0:
             raise UDExecuteError("Sendmail gave a non-zero return code")
     except Exception:
         sys.exit(EX_TEMPFAIL)