summaryrefslogtreecommitdiffstats
path: root/Modules/_testcapimodule.c
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2013-07-26 13:03:50 (GMT)
committerChristian Heimes <christian@cheimes.de>2013-07-26 13:03:50 (GMT)
commit7e138027ff22ab9a75a8af893caf3f698287df38 (patch)
tree832f5441c7e71ded950ba043765ad2d5ee03ee1f /Modules/_testcapimodule.c
parentff369a5595976f8318b7418a817c850998a26233 (diff)
downloadcpython-7e138027ff22ab9a75a8af893caf3f698287df38.zip
cpython-7e138027ff22ab9a75a8af893caf3f698287df38.tar.gz
cpython-7e138027ff22ab9a75a8af893caf3f698287df38.tar.bz2
Fix memory leaks and add checks for failing malloc() calls to testcapi module
CID 1058288
Diffstat (limited to 'Modules/_testcapimodule.c')
-rw-r--r--Modules/_testcapimodule.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 7a007c7..6f87c13 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -2183,6 +2183,8 @@ profile_int(PyObject *self, PyObject* args)
/* Test 3: Allocate a few integers, then release
them all simultaneously. */
multiple = malloc(sizeof(PyObject*) * 1000);
+ if (multiple == NULL)
+ return PyErr_NoMemory();
gettimeofday(&start, NULL);
for(k=0; k < 20000; k++) {
for(i=0; i < 1000; i++) {
@@ -2194,10 +2196,13 @@ profile_int(PyObject *self, PyObject* args)
}
gettimeofday(&stop, NULL);
print_delta(3, &start, &stop);
+ free(multiple);
/* Test 4: Allocate many integers, then release
them all simultaneously. */
multiple = malloc(sizeof(PyObject*) * 1000000);
+ if (multiple == NULL)
+ return PyErr_NoMemory();
gettimeofday(&start, NULL);
for(k=0; k < 20; k++) {
for(i=0; i < 1000000; i++) {
@@ -2209,9 +2214,12 @@ profile_int(PyObject *self, PyObject* args)
}
gettimeofday(&stop, NULL);
print_delta(4, &start, &stop);
+ free(multiple);
/* Test 5: Allocate many integers < 32000 */
multiple = malloc(sizeof(PyObject*) * 1000000);
+ if (multiple == NULL)
+ return PyErr_NoMemory();
gettimeofday(&start, NULL);
for(k=0; k < 10; k++) {
for(i=0; i < 1000000; i++) {
@@ -2223,6 +2231,7 @@ profile_int(PyObject *self, PyObject* args)
}
gettimeofday(&stop, NULL);
print_delta(5, &start, &stop);
+ free(multiple);
/* Test 6: Perform small int addition */
op1 = PyLong_FromLong(1);