From 90112bb9bbdc3b44876124654ccc82c1f478b0d0 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 14 Feb 2012 14:41:44 -0400 Subject: [PATCH] Explicitly close descriptors after verifying a file's signatures --- apps/document_signatures/managers.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/document_signatures/managers.py b/apps/document_signatures/managers.py index af546ac520..1a20aabe7e 100644 --- a/apps/document_signatures/managers.py +++ b/apps/document_signatures/managers.py @@ -52,13 +52,20 @@ class DocumentVersionSignatureManager(models.Manager): return document_signature.signature_file.storage.open(document_signature.signature_file.path) def verify_signature(self, document): + document_descriptor = document.open(raw=True) + detached_signature = None if self.has_detached_signature(document): logger.debug('has detached signature') - args = (document.open(raw=True), self.detached_signature(document)) + detached_signature = self.detached_signature(document) + args = (document_descriptor, detached_signature) else: - args = (document.open(raw=True),) + args = (document_descriptor,) try: return gpg.verify_file(*args, fetch_key=True) except GPGVerificationError: return None + finally: + document_descriptor.close() + if detached_signature: + detached_signature.close()