A Py_DECREF(f) is missing in PyFrame_New for the error case when
the `builtins' initialization fails. Vladimir Marangozov.
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index 5d85445..64fc52f 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -204,11 +204,11 @@
if (builtins == NULL) {
/* No builtins! Make up a minimal one. */
builtins = PyDict_New();
- if (builtins == NULL)
+ if (builtins == NULL || /* Give them 'None', at least. */
+ PyDict_SetItemString(builtins, "None", Py_None) < 0) {
+ Py_DECREF(f);
return NULL;
- /* Give them 'None', at least. */
- if (PyDict_SetItemString(builtins, "None", Py_None) < 0)
- return NULL;
+ }
}
else
Py_XINCREF(builtins);