bpo-34190: Fix reference leak in call_function() (GH-8413)

This commit is contained in:
jdemeyer 2018-07-23 18:41:20 +02:00 committed by Victor Stinner
parent caa331d492
commit 147d95511f
1 changed files with 8 additions and 5 deletions

View File

@ -4576,12 +4576,15 @@ call_function(PyObject ***pp_stack, Py_ssize_t oparg, PyObject *kwnames)
profiling. */
PyObject *self = stack[0];
func = Py_TYPE(func)->tp_descr_get(func, self, (PyObject*)Py_TYPE(self));
if (func == NULL) {
return NULL;
if (func != NULL) {
C_TRACE(x, _PyCFunction_FastCallKeywords(func,
stack+1, nargs-1,
kwnames));
Py_DECREF(func);
}
else {
x = NULL;
}
C_TRACE(x, _PyCFunction_FastCallKeywords(func, stack+1, nargs-1,
kwnames));
Py_DECREF(func);
}
else {
x = _PyMethodDescr_FastCallKeywords(func, stack, nargs, kwnames);