Skip to content

Commit 394dc0d

Browse files
[3.8] bpo-39831: Fix a reference leak in PyErr_WarnEx(). (GH-18750) (GH-18761)
(cherry picked from commit 2d2f855) Co-authored-by: Serhiy Storchaka <[email protected]>
1 parent 0d20364 commit 394dc0d

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

Python/_warnings.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -856,11 +856,11 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
856856
int rc;
857857

858858
if (PyErr_Occurred()) {
859-
return 0;
859+
goto handle_error;
860860
}
861861
*registry = PyDict_New();
862862
if (*registry == NULL)
863-
return 0;
863+
goto handle_error;
864864

865865
rc = _PyDict_SetItemId(globals, &PyId___warningregistry__, *registry);
866866
if (rc < 0)
@@ -890,6 +890,7 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
890890
dangling reference. */
891891
Py_XDECREF(*registry);
892892
Py_XDECREF(*module);
893+
Py_XDECREF(*filename);
893894
return 0;
894895
}
895896

0 commit comments

Comments
 (0)