From: Brandt Bucher Date: Tue, 4 Jul 2023 10:03:57 +0000 (-0700) Subject: GH-106008: Fix refleak when peepholing `None` comparisons (#106367) X-Git-Tag: v3.13.0a1~1526 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e4ba71fe4b32ae0d7fb3319d697616470fba1e58;p=thirdparty%2FPython%2Fcpython.git GH-106008: Fix refleak when peepholing `None` comparisons (#106367) --- diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-07-03-11-38-43.gh-issue-106008.HDf1zd.rst b/Misc/NEWS.d/next/Core and Builtins/2023-07-03-11-38-43.gh-issue-106008.HDf1zd.rst new file mode 100644 index 000000000000..a57b892fd532 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2023-07-03-11-38-43.gh-issue-106008.HDf1zd.rst @@ -0,0 +1,2 @@ +Fix possible reference leaks when failing to optimize comparisons with +:const:`None` in the bytecode compiler. diff --git a/Python/flowgraph.c b/Python/flowgraph.c index 213c993bb863..e159a4356dfe 100644 --- a/Python/flowgraph.c +++ b/Python/flowgraph.c @@ -1377,9 +1377,9 @@ optimize_basic_block(PyObject *const_cache, basicblock *bb, PyObject *consts) goto error; } if (!Py_IsNone(cnt)) { + Py_DECREF(cnt); break; } - Py_DECREF(cnt); if (bb->b_iused <= i + 2) { break; }