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.
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 5cf7c33..bcd1ca9 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -431,6 +431,7 @@
}
flush_io();
if (v == NULL) {
+ Py_CLEAR(m);
PyErr_Print();
goto done;
}
@@ -439,7 +440,7 @@
done:
if (set_file_name && PyDict_DelItemString(d, "__file__"))
PyErr_Clear();
- Py_DECREF(m);
+ Py_XDECREF(m);
return ret;
}