summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2005-06-07 16:07:55 +0000
committertradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2005-06-07 16:07:55 +0000
commitd62d68836486adbc9b2bda053aed17b4443e59bd (patch)
tree61d94579b01546242e6d11fb3c4ed5e87c7d9e06 /src
parentc4b2160a13bba1efcbe7639bde3a5f7f550126fa (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.c29
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;