]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-116099: Fix refcounting bug in `_queueobj_shared()` (gh-116164)
authorBrett Simmers <swtaarrs@users.noreply.github.com>
Fri, 1 Mar 2024 01:02:12 +0000 (17:02 -0800)
committerGitHub <noreply@github.com>
Fri, 1 Mar 2024 01:02:12 +0000 (01:02 +0000)
commit2e94a6687c1a9750e9d2408a8dff0a422aeaf0e4
treeaf6383add3321e0395156b5b37572b77b21b629a
parentd7ddd90308324340855ddb9cc8dda2c1ee3a5944
gh-116099: Fix refcounting bug in `_queueobj_shared()` (gh-116164)

This code decrefs `qidobj` twice in some paths. Since `qidobj` isn't used after
the first `Py_DECREF()`, remove the others, and replace the `Py_DECREF()` with
`Py_CLEAR()` to make it clear that the variable is dead.

With this fix, `python -mtest test_interpreters -R 3:3 -mtest_queues` no longer
fails with `_Py_NegativeRefcount: Assertion failed: object has negative ref
count`.
Modules/_xxinterpqueuesmodule.c