From: Christian Heimes Date: Fri, 26 Jul 2013 13:03:50 +0000 (+0200) Subject: Fix memory leaks and add checks for failing malloc() calls to testcapi module X-Git-Tag: v3.4.0a1~78^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e138027ff22ab9a75a8af893caf3f698287df38;p=python Fix memory leaks and add checks for failing malloc() calls to testcapi module CID 1058288 --- diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 7a007c749d..6f87c130c5 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);