From 0f17d74f0faa90d66ed1e39a34d9310a5051b105 Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Wed, 24 Jan 2018 13:06:10 +0100 Subject: [PATCH] tempfile.mkstemp() actually returns a file descriptor which should be closed. (#35263) --- lib/ansible/modules/web_infrastructure/letsencrypt.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/ansible/modules/web_infrastructure/letsencrypt.py b/lib/ansible/modules/web_infrastructure/letsencrypt.py index 0c8b406a65f..cc979ac3271 100644 --- a/lib/ansible/modules/web_infrastructure/letsencrypt.py +++ b/lib/ansible/modules/web_infrastructure/letsencrypt.py @@ -315,12 +315,16 @@ def write_file(module, dest, content): has changed. ''' changed = False - # create a tempfile with some test content - _, tmpsrc = tempfile.mkstemp() - f = open(tmpsrc, 'wb') + # create a tempfile + fd, tmpsrc = tempfile.mkstemp(text=False) + f = os.fdopen(fd, 'wb') try: f.write(content) except Exception as err: + try: + f.close() + except: + pass os.remove(tmpsrc) module.fail_json(msg="failed to create temporary content file: %s" % to_native(err), exception=traceback.format_exc()) f.close()