From: Nikos Skalkotos Date: Tue, 25 Jun 2013 15:25:51 +0000 (+0300) Subject: Always close fds returned by tempfile.mkstemp() X-Git-Tag: 0.5~1^2~13^2~34 X-Git-Url: https://code.grnet.gr/git/snf-image-creator/commitdiff_plain/b0369791570d7af4f9996c2cbb29b8e93f761bbe Always close fds returned by tempfile.mkstemp() --- diff --git a/image_creator/bundle_volume.py b/image_creator/bundle_volume.py index eec084f..215afb2 100644 --- a/image_creator/bundle_volume.py +++ b/image_creator/bundle_volume.py @@ -267,8 +267,11 @@ class BundleVolume(object): name = os.path.basename(dev) + "_" + uuid.uuid4().hex tablefd, table = tempfile.mkstemp() try: - size = end - start + 1 - os.write(tablefd, "0 %d linear %s %d" % (size, dev, start)) + try: + size = end - start + 1 + os.write(tablefd, "0 %d linear %s %d" % (size, dev, start)) + finally: + os.close(tablefd) dmsetup('create', "%sp%d" % (name, num), table) finally: os.unlink(table) diff --git a/image_creator/disk.py b/image_creator/disk.py index 76a53aa..5806d6f 100644 --- a/image_creator/disk.py +++ b/image_creator/disk.py @@ -174,11 +174,14 @@ class Disk(object): snapshot = uuid.uuid4().hex tablefd, table = tempfile.mkstemp() try: - os.write(tablefd, "0 %d snapshot %s %s n 8" % - (int(size), sourcedev, cowdev)) + try: + os.write(tablefd, "0 %d snapshot %s %s n 8" % + (int(size), sourcedev, cowdev)) + finally: + os.close(tablefd) + dmsetup('create', snapshot, table) self._add_cleanup(try_fail_repeat, dmsetup, 'remove', snapshot) - finally: os.unlink(table) self.out.success('done')