summaryrefslogtreecommitdiffstats
path: root/Objects/abstract.c
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-12-05 12:49:14 (GMT)
committerChristian Heimes <christian@cheimes.de>2007-12-05 12:49:14 (GMT)
commitfe4826f6ace6076b4ded9275b5ad5bdb04017b55 (patch)
tree9bdf0e23b4454b265e29e26140b9be89a1ba7cd6 /Objects/abstract.c
parent8f1fea50617766f79171102dd68449692d98fc1f (diff)
downloadcpython-fe4826f6ace6076b4ded9275b5ad5bdb04017b55.zip
cpython-fe4826f6ace6076b4ded9275b5ad5bdb04017b55.tar.gz
cpython-fe4826f6ace6076b4ded9275b5ad5bdb04017b55.tar.bz2
merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError
Diffstat (limited to 'Objects/abstract.c')
-rw-r--r--Objects/abstract.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Objects/abstract.c b/Objects/abstract.c
index 46288dd..1cb4ef8 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1507,8 +1507,9 @@ PySequence_Tuple(PyObject *v)
/* Guess result size and allocate space. */
n = _PyObject_LengthHint(v);
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;
}