From 55434f83e2d6de7cc10089e45d6eced2b058416c Mon Sep 17 00:00:00 2001 From: knarf Date: Sat, 19 Sep 2009 00:55:23 +0000 Subject: 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 --- src/Topology.c | 11 +++++++---- 1 file 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; } -- cgit v1.2.3