summaryrefslogtreecommitdiffstats
path: root/Modules/_testcapimodule.c
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2013-07-26 12:52:18 (GMT)
committerChristian Heimes <christian@cheimes.de>2013-07-26 12:52:18 (GMT)
commitff369a5595976f8318b7418a817c850998a26233 (patch)
tree47afecbfbc061db5873e951e1cb0cf8887f36760 /Modules/_testcapimodule.c
parenta956e645c10051cada87abc90248b112df7e1974 (diff)
downloadcpython-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.c8
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);