]> granicus.if.org Git - python/commitdiff
Issue 2855: Fix obscure crasher by slowing down the entire module. Mimics what was...
authorRaymond Hettinger <python@rcn.com>
Fri, 30 May 2008 06:49:47 +0000 (06:49 +0000)
committerRaymond Hettinger <python@rcn.com>
Fri, 30 May 2008 06:49:47 +0000 (06:49 +0000)
Objects/setobject.c

index f63aa7587bbb540cfa7de25ccaf06a36a6cee6d4..5e8e05dd897f3fc3570ff52d5a66b6a88ff77305 100644 (file)
@@ -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) {