aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorknarf <knarf@b61c5cb5-eaca-4651-9a7a-d64986f99364>2009-09-19 00:55:23 +0000
committerknarf <knarf@b61c5cb5-eaca-4651-9a7a-d64986f99364>2009-09-19 00:55:23 +0000
commit55434f83e2d6de7cc10089e45d6eced2b058416c (patch)
tree45a98c535b964fe99e69eafecc035e47a7604651
parentab65ac40746215424100ed2e3979ebde333a3384 (diff)
check return value of malloc and free space for all cases
git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGH/trunk@499 b61c5cb5-eaca-4651-9a7a-d64986f99364
-rw-r--r--src/Topology.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/Topology.c b/src/Topology.c
index 4b4b460..77fa05d 100644
--- a/src/Topology.c
+++ b/src/Topology.c
@@ -252,6 +252,10 @@ static int FranksTopology(int dim,
nghostzones, nprocs);
}
my_nprocs = (int*)malloc(dim*sizeof(int));
+ if (!my_nprocs)
+ {
+ CCTK_WARN(0, "Out of memory, malloc returned NULL");
+ }
/* start with a single domain */
for (i = 0; i < dim; i++)
@@ -281,10 +285,7 @@ static int FranksTopology(int dim,
/* if no such direction is found: fall back giving a warning */
if (max_dir == -1)
{
- for (i = 0; i < dim; i++)
- {
- my_nprocs[i] = 0;
- }
+ free(my_nprocs);
CCTK_WARN(CCTK_WARN_COMPLAIN,
"Falling back to the old PUGH topology method");
return TraditionalTopology(dim, total_procs, nsize,
@@ -303,6 +304,7 @@ static int FranksTopology(int dim,
{
if (nprocs[i] && (nprocs[i]!=my_nprocs[i]) || (nsize[i]<1))
{
+ free(my_nprocs);
CCTK_WARN(CCTK_WARN_COMPLAIN,
"Falling back to the old PUGH topology method");
return TraditionalTopology(dim, total_procs, nsize,
@@ -313,6 +315,7 @@ static int FranksTopology(int dim,
{
nprocs[i] = my_nprocs[i];
}
+ free(my_nprocs);
/* success */
return 0;
}