Explicitly close descriptors after verifying a file's signatures

This commit is contained in:
Roberto Rosario
2012-02-14 14:41:44 -04:00
parent 6de85b9670
commit 90112bb9bb

View File

@@ -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()