Fix two crashers.

This commit is contained in:
Guido van Rossum 2008-01-23 20:19:01 +00:00
parent b2302ba977
commit 1d9a9eaa89
4 changed files with 11 additions and 44 deletions

View file

@ -1245,11 +1245,14 @@ min_max(PyObject *args, PyObject *kwds, int op)
"%s() got an unexpected keyword argument", name);
return NULL;
}
Py_INCREF(keyfunc);
}
it = PyObject_GetIter(v);
if (it == NULL)
if (it == NULL) {
Py_XDECREF(keyfunc);
return NULL;
}
maxitem = NULL; /* the result */
maxval = NULL; /* the value associated with the result */
@ -1298,6 +1301,7 @@ min_max(PyObject *args, PyObject *kwds, int op)
else
Py_DECREF(maxval);
Py_DECREF(it);
Py_XDECREF(keyfunc);
return maxitem;
Fail_it_item_and_val:
@ -1308,6 +1312,7 @@ Fail_it:
Py_XDECREF(maxval);
Py_XDECREF(maxitem);
Py_DECREF(it);
Py_XDECREF(keyfunc);
return NULL;
}

View file

@ -2066,6 +2066,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
"__import__ not found");
break;
}
Py_INCREF(x);
v = POP();
u = TOP();
if (PyInt_AsLong(u) != -1 || PyErr_Occurred())
@ -2087,11 +2088,14 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
Py_DECREF(u);
if (w == NULL) {
u = POP();
Py_DECREF(x);
x = NULL;
break;
}
READ_TIMESTAMP(intr0);
x = PyEval_CallObject(x, w);
v = x;
x = PyEval_CallObject(v, w);
Py_DECREF(v);
READ_TIMESTAMP(intr1);
Py_DECREF(w);
SET_TOP(x);