diff options
author | knarf <knarf@b61c5cb5-eaca-4651-9a7a-d64986f99364> | 2009-09-19 00:55:23 +0000 |
---|---|---|
committer | knarf <knarf@b61c5cb5-eaca-4651-9a7a-d64986f99364> | 2009-09-19 00:55:23 +0000 |
commit | 55434f83e2d6de7cc10089e45d6eced2b058416c (patch) | |
tree | 45a98c535b964fe99e69eafecc035e47a7604651 | |
parent | ab65ac40746215424100ed2e3979ebde333a3384 (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.c | 11 |
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; } |