[Python-checkins] bpo-46881: Fix refleak from GH-31616 (GH-31805)

Fidget-Spinner webhook-mailer at python.org
Fri Mar 11 04:05:17 EST 2022


https://github.com/python/cpython/commit/54ab9ad312ea53db40e31712454272e1d4c0315f
commit: 54ab9ad312ea53db40e31712454272e1d4c0315f
branch: main
author: Jelle Zijlstra <jelle.zijlstra at gmail.com>
committer: Fidget-Spinner <kenjin4096 at gmail.com>
date: 2022-03-11T17:05:08+08:00
summary:

bpo-46881: Fix refleak from GH-31616 (GH-31805)

files:
M Objects/unicodeobject.c

diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 9052c53f11b8e..2261b9a031625 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -677,10 +677,12 @@ unicode_result_ready(PyObject *unicode)
         if (kind == PyUnicode_1BYTE_KIND) {
             const Py_UCS1 *data = PyUnicode_1BYTE_DATA(unicode);
             Py_UCS1 ch = data[0];
-            if (unicode != LATIN1(ch)) {
+            PyObject *latin1_char = LATIN1(ch);
+            if (unicode != latin1_char) {
+                Py_INCREF(latin1_char);
                 Py_DECREF(unicode);
             }
-            return get_latin1_char(ch);
+            return latin1_char;
         }
     }
 



More information about the Python-checkins mailing list