From d99bee7c9fb1211efc8e8e85083f0ca46c784500 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 30 May 2008 06:49:47 +0000 Subject: [PATCH] Issue 2855: Fix obscure crasher by slowing down the entire module. Mimics what was done to dictionaries in r59223. --- Objects/setobject.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Objects/setobject.c b/Objects/setobject.c index f63aa7587b..5e8e05dd89 100644 --- a/Objects/setobject.c +++ b/Objects/setobject.c @@ -94,7 +94,9 @@ set_lookkey(PySetObject *so, PyObject *key, register long hash) else { if (entry->hash == hash) { startkey = entry->key; + Py_INCREF(startkey); cmp = PyObject_RichCompareBool(startkey, key, Py_EQ); + Py_DECREF(startkey); if (cmp < 0) return NULL; if (table == so->table && entry->key == startkey) { @@ -125,7 +127,9 @@ set_lookkey(PySetObject *so, PyObject *key, register long hash) break; if (entry->hash == hash && entry->key != dummy) { startkey = entry->key; + Py_INCREF(startkey); cmp = PyObject_RichCompareBool(startkey, key, Py_EQ); + Py_DECREF(startkey); if (cmp < 0) return NULL; if (table == so->table && entry->key == startkey) { -- 2.50.0