From fe24ab9dd5440562e27422cd38f7de03356bfd16 Mon Sep 17 00:00:00 2001 From: Mikhail Matrosov Date: Wed, 11 Mar 2015 00:55:42 +0300 Subject: [PATCH] [#8058] Close file handle before exec_file() routine returns. --- src/exec.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/exec.cpp b/src/exec.cpp index 0a4cafcd..2910db7c 100644 --- a/src/exec.cpp +++ b/src/exec.cpp @@ -96,10 +96,12 @@ object BOOST_PYTHON_DECL exec_file(str filename, object global, object local) FILE *fs = PyFile_AsFile(file.get()); #endif - PyObject* result = PyRun_File(fs, + int closeit = 1; // Close file before PyRun returns + PyObject* result = PyRun_FileEx(fs, f, Py_file_input, - global.ptr(), local.ptr()); + global.ptr(), local.ptr(), + closeit); if (!result) throw_error_already_set(); return object(detail::new_reference(result)); }