From 2d2f85517f8216146a2f888d1ad4d765b3be2339 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Mon, 2 Mar 2020 22:05:08 +0200 Subject: bpo-39831: Fix a reference leak in PyErr_WarnEx(). (GH-18750) --- Python/_warnings.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Python/_warnings.c') diff --git a/Python/_warnings.c b/Python/_warnings.c index 9ea81bbc6e..92378faa61 100644 --- a/Python/_warnings.c +++ b/Python/_warnings.c @@ -859,11 +859,11 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno, int rc; if (PyErr_Occurred()) { - return 0; + goto handle_error; } *registry = PyDict_New(); if (*registry == NULL) - return 0; + goto handle_error; rc = _PyDict_SetItemId(globals, &PyId___warningregistry__, *registry); if (rc < 0) @@ -893,6 +893,7 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno, dangling reference. */ Py_XDECREF(*registry); Py_XDECREF(*module); + Py_XDECREF(*filename); return 0; } -- cgit v1.2.1