[pygobject/benzea/pypy-fixes: 13/14] hashtable: Fix refcount of key/value in error case when marshalling




commit bab52da8bff7f5057594c7fa9b6798b8553a89b3
Author: Benjamin Berg <bberg redhat com>
Date:   Wed Dec 29 05:05:32 2021 +0100

    hashtable: Fix refcount of key/value in error case when marshalling
    
    PyList_GET_ITEM only returns a borrowed reference. In the unlikely event
    of an error converting the key or value, the reference would be
    unintentionally decremented. This could cause random failures later on
    (and was indeed causing the PyPy test to fail randomly later on).

 gi/pygi-hashtable.c | 2 --
 1 file changed, 2 deletions(-)
---
diff --git a/gi/pygi-hashtable.c b/gi/pygi-hashtable.c
index 285eca19..26d5f61c 100644
--- a/gi/pygi-hashtable.c
+++ b/gi/pygi-hashtable.c
@@ -139,8 +139,6 @@ _pygi_marshal_from_py_ghash (PyGIInvokeState   *state,
         continue;
 err:
         /* FIXME: cleanup hash keys and values */
-        Py_XDECREF (py_key);
-        Py_XDECREF (py_value);
         Py_DECREF (py_keys);
         Py_DECREF (py_values);
         g_hash_table_unref (hash_);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]