summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Berg <bberg@redhat.com>2021-12-29 05:05:32 +0100
committerChristoph Reiter <reiter.christoph@gmail.com>2022-04-24 11:32:50 +0200
commit13c6e76d0ebf40d1577658c214f42615606a89d3 (patch)
treed0e6bf951db6eacd097b61377b9b39e2f7311f73
parentff94738f090461ee44c71e635facbbe9ab4b876c (diff)
downloadpygobject-13c6e76d0ebf40d1577658c214f42615606a89d3.tar.gz
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).
-rw-r--r--gi/pygi-hashtable.c2
1 files changed, 0 insertions, 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_);