diff options
author | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2005-06-07 16:07:55 +0000 |
---|---|---|
committer | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2005-06-07 16:07:55 +0000 |
commit | d62d68836486adbc9b2bda053aed17b4443e59bd (patch) | |
tree | 61d94579b01546242e6d11fb3c4ed5e87c7d9e06 /src | |
parent | c4b2160a13bba1efcbe7639bde3a5f7f550126fa (diff) |
Check group/variable name/index argument in CCTK_ActiveTimeLevels*().
This closes PR Cactus/1945: "CCTK_ActiveTimeLevels does not check its arguments".
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4075 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src')
-rw-r--r-- | src/main/GroupsOnGH.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/main/GroupsOnGH.c b/src/main/GroupsOnGH.c index 75556de4..5c8f087c 100644 --- a/src/main/GroupsOnGH.c +++ b/src/main/GroupsOnGH.c @@ -529,6 +529,12 @@ int CCTK_ActiveTimeLevels(const cGH *GH, const char *groupname) int increase=0; gindex = CCTK_GroupIndex(groupname); + if (gindex < 0) + { + CCTK_VWarn (1, __LINE__, __FILE__, "Cactus", + "CCTK_ActiveTimeLevels: invalid group name '%s'", groupname); + return (-1); + } timelevels = CCTK_GroupStorageIncrease(GH, 1, &gindex, &increase, NULL); @@ -583,6 +589,14 @@ int CCTK_ActiveTimeLevelsGI(const cGH *GH, int gindex) int increase=0; int timelevels; + if (gindex < 0 || gindex >= CCTK_NumGroups (GH)) + { + CCTK_VWarn (1, __LINE__, __FILE__, "Cactus", + "CCTK_ActiveTimeLevelsGI: invalid group index %d given", + gindex); + return (-1); + } + timelevels = CCTK_GroupStorageIncrease(GH, 1, &gindex, &increase, NULL); return timelevels; @@ -610,7 +624,13 @@ int CCTK_ActiveTimeLevelsVN(const cGH *GH, const char *varname) int gindex; gindex = CCTK_GroupIndexFromVar(varname); - + if (gindex < 0) + { + CCTK_VWarn (1, __LINE__, __FILE__, "Cactus", + "CCTK_ActiveTimeLevelsVN: invalid variable name '%s'", varname); + return (-1); + } + timelevels = CCTK_ActiveTimeLevelsGI(GH, gindex); return timelevels; @@ -640,6 +660,13 @@ int CCTK_ActiveTimeLevelsVI(const cGH *GH, int vindex) int gindex; gindex = CCTK_GroupIndexFromVarI(vindex); + if (gindex < 0) + { + CCTK_VWarn (1, __LINE__, __FILE__, "Cactus", + "CCTK_ActiveTimeLevelsGI: invalid variable index %d", vindex); + return (-1); + } + timelevels = CCTK_ActiveTimeLevelsGI(GH, gindex); return timelevels; |