pld-builder.new: PLD_Builder/gpg.py Try to close all descriptors.

arekm arekm at pld-linux.org
Tue Nov 20 21:48:09 CET 2007


Author: arekm                        Date: Tue Nov 20 20:48:09 2007 GMT
Module: pld-builder.new               Tag: HEAD
---- Log message:
Try to close all descriptors.

---- Files affected:
pld-builder.new/PLD_Builder:
   gpg.py (1.12 -> 1.13) 

---- Diffs:

================================================================
Index: pld-builder.new/PLD_Builder/gpg.py
diff -u pld-builder.new/PLD_Builder/gpg.py:1.12 pld-builder.new/PLD_Builder/gpg.py:1.13
--- pld-builder.new/PLD_Builder/gpg.py:1.12	Fri Feb  9 15:08:00 2007
+++ pld-builder.new/PLD_Builder/gpg.py	Tue Nov 20 21:48:04 2007
@@ -15,10 +15,17 @@
     where signer-emails is lists of strings, and signed-body is StringIO
     object.
     """
+
+    def __close(descriptors):
+        for d in descriptors:
+            if not d.closed:
+                d.close()
+
     (gpg_out, gpg_in, gpg_err) = popen2.popen3("gpg --batch --no-tty --decrypt")
     try:
         body = pipeutil.rw_pipe(buf, gpg_in, gpg_out)
     except OSError, e:
+        __close([gpg_out, gpg_in, gpg_err])
         log.error("gnupg signing failed, does gpg binary exist? : %s" % e)
         raise
 
@@ -28,7 +35,7 @@
         m = rx.match(l)
         if m:
             emails.append(m.group(2))
-    gpg_err.close()
+    __close([gpg_out, gpg_in, gpg_err])
     return (emails, body)
 
 def sign(buf):
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-builder.new/PLD_Builder/gpg.py?r1=1.12&r2=1.13&f=u



More information about the pld-cvs-commit mailing list