[Python-checkins] bpo-34190: Fix reference leak in call_function() (GH-8413) (GH-8418)
Victor Stinner
webhook-mailer at python.org
Mon Jul 23 17:45:29 EDT 2018
https://github.com/python/cpython/commit/25b87d35675301a929982db6d37836666af4f715
commit: 25b87d35675301a929982db6d37836666af4f715
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: Victor Stinner <vstinner at redhat.com>
date: 2018-07-23T23:45:26+02:00
summary:
bpo-34190: Fix reference leak in call_function() (GH-8413) (GH-8418)
(cherry picked from commit 147d95511f59cfdd2d522f9d736f2335457bae20)
Co-authored-by: jdemeyer <jdemeyer at cage.ugent.be>
files:
M Python/ceval.c
diff --git a/Python/ceval.c b/Python/ceval.c
index 600147b7aaf2..0d1519bef4f0 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -4565,12 +4565,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);
More information about the Python-checkins
mailing list