From d8cba5d16f1333fd625726fc72e66afbd45b8d00 Mon Sep 17 00:00:00 2001 From: Zackery Spytz Date: Tue, 3 Jul 2018 13:47:22 -0600 Subject: bpo-24596: Decref module in PyRun_SimpleFileExFlags() on SystemExit (GH-7918) PyErr_Print() will not return when the exception is a SystemExit, so decref the __main__ module object in that case. --- Python/pythonrun.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Python/pythonrun.c') diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 5cf7c33c93..bcd1ca931d 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -431,6 +431,7 @@ PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit, } flush_io(); if (v == NULL) { + Py_CLEAR(m); PyErr_Print(); goto done; } @@ -439,7 +440,7 @@ PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit, done: if (set_file_name && PyDict_DelItemString(d, "__file__")) PyErr_Clear(); - Py_DECREF(m); + Py_XDECREF(m); return ret; } -- cgit v1.2.1