diff options
author | Christian Heimes <christian@cheimes.de> | 2013-07-26 12:52:18 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2013-07-26 12:52:18 (GMT) |
commit | ff369a5595976f8318b7418a817c850998a26233 (patch) | |
tree | 47afecbfbc061db5873e951e1cb0cf8887f36760 /Modules/_testcapimodule.c | |
parent | a956e645c10051cada87abc90248b112df7e1974 (diff) | |
download | cpython-ff369a5595976f8318b7418a817c850998a26233.zip cpython-ff369a5595976f8318b7418a817c850998a26233.tar.gz cpython-ff369a5595976f8318b7418a817c850998a26233.tar.bz2 |
Fix possible NULL pointer dereferences in testcapi module
CID 1058280
CID 1058282
CID 1058284
Diffstat (limited to 'Modules/_testcapimodule.c')
-rw-r--r-- | Modules/_testcapimodule.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index ab10faa..7a007c7 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -120,6 +120,10 @@ test_dict_inner(int count) for (i = 0; i < count; i++) { v = PyLong_FromLong(i); + if (v == NULL) { + Py_DECREF(v); + return -1; + } if (PyDict_SetItem(dict, v, v) < 0) { Py_DECREF(v); return -1; @@ -1642,6 +1646,8 @@ test_long_numbits(PyObject *self) for (i = 0; i < Py_ARRAY_LENGTH(testcases); ++i) { PyObject *plong = PyLong_FromLong(testcases[i].input); + if (plong == NULL) + return NULL; size_t nbits = _PyLong_NumBits(plong); int sign = _PyLong_Sign(plong); @@ -2234,7 +2240,7 @@ profile_int(PyObject *self, PyObject* args) gettimeofday(&start, NULL); for(i=0; i < 10000000; i++) { result = PyNumber_Add(op1, op1); - Py_DECREF(result); + Py_XDECREF(result); } gettimeofday(&stop, NULL); Py_DECREF(op1); |