From: Georg Brandl Date: Tue, 6 Mar 2007 12:17:50 +0000 (+0000) Subject: Bug #1674503: close the file opened by execfile() in an error condition. X-Git-Tag: v2.6a1~2106 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=098cd69ff9fe8f78753a86d0c17b0c87b0a13587;p=thirdparty%2FPython%2Fcpython.git Bug #1674503: close the file opened by execfile() in an error condition. --- diff --git a/Misc/NEWS b/Misc/NEWS index 894f1cbe5073..ed8cec403fc0 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,8 @@ What's New in Python 2.6 alpha 1? Core and builtins ----------------- +- Bug #1674503: close the file opened by execfile() in an error condition. + - Patch #1674228: when assigning a slice (old-style), check for the sq_ass_slice instead of the sq_slice slot. diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 98ae1151afea..3d0c68f2a74c 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -1251,12 +1251,12 @@ PyRun_FileExFlags(FILE *fp, const char *filename, int start, PyObject *globals, mod = PyParser_ASTFromFile(fp, filename, start, 0, 0, flags, NULL, arena); + if (closeit) + fclose(fp); if (mod == NULL) { PyArena_Free(arena); return NULL; } - if (closeit) - fclose(fp); ret = run_mod(mod, filename, globals, locals, flags, arena); PyArena_Free(arena); return ret;