Merged revisions 68560 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r68560 | amaury.forgeotdarc | 2009-01-13 00:36:55 +0100 (mar., 13 janv. 2009) | 6 lines

  #3720: Interpreter crashes when an evil iterator removes its own next function.

  Now the slot is filled with a function that always raises.

  Will not backport: extensions compiled with 2.6.x would not run on 2.6.0.
........
This commit is contained in:
Amaury Forgeot d'Arc 2009-01-12 23:58:21 +00:00
parent e5e298f875
commit f343e01c17
10 changed files with 47 additions and 67 deletions

View file

@ -375,7 +375,6 @@ filter_next(filterobject *lz)
long ok;
PyObject *(*iternext)(PyObject *);
assert(PyIter_Check(it));
iternext = *Py_TYPE(it)->tp_iternext;
for (;;) {
item = iternext(it);
@ -2144,7 +2143,6 @@ zip_next(zipobject *lz)
Py_INCREF(result);
for (i=0 ; i < tuplesize ; i++) {
it = PyTuple_GET_ITEM(lz->ittuple, i);
assert(PyIter_Check(it));
item = (*Py_TYPE(it)->tp_iternext)(it);
if (item == NULL) {
Py_DECREF(result);
@ -2160,7 +2158,6 @@ zip_next(zipobject *lz)
return NULL;
for (i=0 ; i < tuplesize ; i++) {
it = PyTuple_GET_ITEM(lz->ittuple, i);
assert(PyIter_Check(it));
item = (*Py_TYPE(it)->tp_iternext)(it);
if (item == NULL) {
Py_DECREF(result);