From fcfc89e045edd4d15f369d98c156be6df754d535 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Wed, 7 Sep 2022 08:10:29 +0200 Subject: [PATCH 2/2] base: prevent leak of opened fieldfile in export_json (#66533) --- passerelle/base/models.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/passerelle/base/models.py b/passerelle/base/models.py index e77007f3..a0693d05 100644 --- a/passerelle/base/models.py +++ b/passerelle/base/models.py @@ -370,11 +370,12 @@ class BaseResource(models.Model): if isinstance(field, BASE_EXPORT_FIELDS): d[field.name] = value elif isinstance(field, models.FileField): - if value: - d[field.name] = { - 'name': os.path.basename(value.name), - 'content': force_str(base64.b64encode(value.read())), - } + if value.name: + with value as fd: + d[field.name] = { + 'name': os.path.basename(value.name), + 'content': force_str(base64.b64encode(fd.read())), + } else: d[field.name] = None elif isinstance(field, SFTPField): -- 2.37.2