merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError
diff --git a/Objects/listobject.c b/Objects/listobject.c
index deb3ca5..8389a86 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -796,8 +796,9 @@
/* Guess a result list size. */
n = _PyObject_LengthHint(b);
if (n < 0) {
- if (!PyErr_ExceptionMatches(PyExc_TypeError) &&
- !PyErr_ExceptionMatches(PyExc_AttributeError)) {
+ if (PyErr_Occurred()
+ && !PyErr_ExceptionMatches(PyExc_TypeError)
+ && !PyErr_ExceptionMatches(PyExc_AttributeError)) {
Py_DECREF(it);
return NULL;
}