From: Raymond Hettinger Date: Wed, 23 Apr 2003 00:14:18 +0000 (+0000) Subject: PyObject_IsTrue() can return an error condition. X-Git-Tag: v2.3c1~1072 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9a9c436036dbd25d6ae42f67f22ccc5549b3c092;p=python PyObject_IsTrue() can return an error condition. Adding code to handle it properly. --- diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c index 00863b6691..1a004a9fe1 100644 --- a/Modules/_randommodule.c +++ b/Modules/_randommodule.c @@ -213,6 +213,7 @@ random_seed(RandomObject *self, PyObject *args) unsigned long *key = NULL; unsigned long keymax; /* # of allocated slots in key */ unsigned long keyused; /* # of used slots in key */ + int err; PyObject *arg = NULL; @@ -261,11 +262,13 @@ random_seed(RandomObject *self, PyObject *args) thirtytwo = PyInt_FromLong(32L); if (thirtytwo == NULL) goto Done; - while (PyObject_IsTrue(n)) { + while ((err=PyObject_IsTrue(n))) { PyObject *newn; PyObject *pychunk; unsigned long chunk; + if (err == -1) + goto Done; pychunk = PyNumber_And(n, masklower); if (pychunk == NULL) goto Done;