]> arthur.barton.de Git - bup.git/commitdiff
PackWriter open: clean up fd if fdopen fails
authorRob Browning <rlb@defaultvalue.org>
Sun, 3 Jan 2016 17:44:13 +0000 (11:44 -0600)
committerRob Browning <rlb@defaultvalue.org>
Mon, 18 Jan 2016 17:30:01 +0000 (11:30 -0600)
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
lib/bup/git.py

index 5710f054515be18ac3e77d5172edb1b7b609fb5c..bbac79fab6340d7414d24b54388b217c1e348135 100644 (file)
@@ -582,7 +582,11 @@ class PackWriter:
     def _open(self):
         if not self.file:
             (fd,name) = tempfile.mkstemp(suffix='.pack', dir=repo('objects'))
-            self.file = os.fdopen(fd, 'w+b')
+            try:
+                self.file = os.fdopen(fd, 'w+b')
+            except:
+                os.close(fd)
+                raise
             assert(name.endswith('.pack'))
             self.filename = name[:-5]
             self.file.write('PACK\0\0\0\2\0\0\0\0')