From: Dong-hee Na Date: Thu, 22 Oct 2020 09:44:18 +0000 (+0900) Subject: _testmultiphase: Fix possible ref leak (GH-22881) X-Git-Tag: v3.10.0a2~111 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8a9463f2d4044506910e26a8ed42e2bc9fc3e0f8;p=thirdparty%2FPython%2Fcpython.git _testmultiphase: Fix possible ref leak (GH-22881) This is just test code, but sometimes external contributors reference the code snippets from test code. `PyModule_AddObject` should be handled in the proper way. https://docs.python.org/3/c-api/module.html#c.PyModule_AddObject --- diff --git a/Modules/_testmultiphase.c b/Modules/_testmultiphase.c index d69ae628fa7a..8bba077be9bb 100644 --- a/Modules/_testmultiphase.c +++ b/Modules/_testmultiphase.c @@ -359,6 +359,7 @@ static int execfunc(PyObject *m) goto fail; } if (PyModule_AddObject(m, "Example", temp) != 0) { + Py_DECREF(temp); goto fail; } @@ -369,6 +370,7 @@ static int execfunc(PyObject *m) goto fail; } if (PyModule_AddObject(m, "error", temp) != 0) { + Py_DECREF(temp); goto fail; } @@ -378,6 +380,7 @@ static int execfunc(PyObject *m) goto fail; } if (PyModule_AddObject(m, "Str", temp) != 0) { + Py_DECREF(temp); goto fail; } @@ -807,6 +810,7 @@ meth_state_access_exec(PyObject *m) return -1; } if (PyModule_AddObject(m, "StateAccessType", temp) != 0) { + Py_DECREF(temp); return -1; }