From 68a4b72c37a16f578e88f8bdef5bacf362a90bb9 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 29 Apr 2019 05:00:56 -0400 Subject: [PATCH] Use copyfileobj for temporary file in django_gpg Signed-off-by: Roberto Rosario --- mayan/apps/django_gpg/managers.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mayan/apps/django_gpg/managers.py b/mayan/apps/django_gpg/managers.py index 604410049c..abdb70ac8a 100644 --- a/mayan/apps/django_gpg/managers.py +++ b/mayan/apps/django_gpg/managers.py @@ -2,11 +2,11 @@ from __future__ import absolute_import, unicode_literals import io import logging -import os +import shutil from django.db import models -from mayan.apps.storage.utils import mkstemp +from mayan.apps.storage.utils import NamedTemporaryFile from .classes import KeyStub, SignatureVerification from .exceptions import ( @@ -98,9 +98,10 @@ class KeyManager(models.Manager): if signature_file: # Save the original data and invert the argument order # Signature first, file second - temporary_file_object, temporary_filename = mkstemp() - os.write(temporary_file_object, file_object.read()) - os.close(temporary_file_object) + temporary_file_object = NamedTemporaryFile() + temporary_filename = temporary_file_object.name + shutil.copyfileobj(fsrc=file_object, fdst=temporary_file_object) + temporary_file_object.seek(0) signature_file_buffer = io.BytesIO() signature_file_buffer.write(signature_file.read()) @@ -111,7 +112,7 @@ class KeyManager(models.Manager): data_filename=temporary_filename, keys=keys ) signature_file_buffer.close() - os.unlink(temporary_filename) + temporary_file_object.close() else: verify_result = gpg_backend.verify_file( file_object=file_object, keys=keys