From: Raymond Hettinger Date: Fri, 30 May 2008 06:49:47 +0000 (+0000) Subject: Issue 2855: Fix obscure crasher by slowing down the entire module. Mimics what was... X-Git-Tag: v2.6b1~199 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d99bee7c9fb1211efc8e8e85083f0ca46c784500;p=python Issue 2855: Fix obscure crasher by slowing down the entire module. Mimics what was done to dictionaries in r59223. --- 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) {