From c61076ac9d401f7abf65d5e1eac7f5a666a32ba4 Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Fri, 11 Oct 2019 15:31:03 +0200 Subject: [PATCH] ud-mailgate: use subprocess.Popen instead of os.popen. --- debian/changelog | 1 + ud-mailgate | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index b0a5686..d4f9404 100644 --- a/debian/changelog +++ b/debian/changelog @@ -16,6 +16,7 @@ userdir-ldap (0.3.97) UNRELEASED; urgency=medium * ud-generate: use subprocess.Popen instead of os.popen in GenCDB. * Use "not in" operator in various places ("foo not in bar" instead of "not foo in bar"). + * ud-mailgate: use subprocess.Popen instead of os.popen. -- Peter Palfrader Sat, 06 Apr 2019 22:04:34 +0200 diff --git a/ud-mailgate b/ud-mailgate index 30af583..073ee4f 100755 --- a/ud-mailgate +++ b/ud-mailgate @@ -331,10 +331,11 @@ def DoSSH(Str, Attrs, badkeys, uid): Subst["__ERROR__"] = "SSH key with fingerprint %s known as bad key" % (g[1]) ErrReply = TemplateSubst(Subst, open(TemplatesDir + "admin-info", "r").read()) - Child = os.popen("/usr/sbin/sendmail -t", "w") - Child.write(ErrReplyHead) - Child.write(ErrReply) - if Child.close() is not None: + Child = subprocess.Popen(['/usr/sbin/sendmail', '-t'], 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) -- 2.20.1