Skip to content

Commit cec6a51

Browse files
committed
fix a reference leak in raise E from T when T is an exception
subtype for which `T.__new__` does not return an exception instance.
1 parent d12cbf2 commit cec6a51

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Fix a reference leak when ``raise exc from cause`` fails. Patch by Bénédikt
2+
Tran.

Python/ceval.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2148,6 +2148,7 @@ do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
21482148
"calling %R should have returned an instance of "
21492149
"BaseException, not %R",
21502150
cause, Py_TYPE(fixed_cause));
2151+
Py_DECREF(fixed_cause);
21512152
goto raise_error;
21522153
}
21532154
Py_DECREF(cause);

0 commit comments

Comments
 (0)