Validate number of steps specified in permutation

A permutation that specifies more steps than defined causes
isolationtester to crash, so avoid that.  Using less steps than defined
should probably not be a problem, but no spec currently does that.
This commit is contained in:
Alvaro Herrera 2012-01-11 18:46:18 -03:00
parent 1b9dea04b5
commit 50363c8f86
1 changed files with 8 additions and 1 deletions

View File

@ -395,6 +395,12 @@ run_named_permutations(TestSpec * testspec)
Permutation *p = testspec->permutations[i];
Step **steps;
if (p->nsteps != nallsteps)
{
fprintf(stderr, "invalid number of steps in permutation %d\n", i + 1);
exit_nicely();
}
steps = malloc(p->nsteps * sizeof(Step *));
/* Find all the named steps from the lookup table */
@ -404,7 +410,8 @@ run_named_permutations(TestSpec * testspec)
sizeof(Step *), &step_bsearch_cmp));
if (steps[j] == NULL)
{
fprintf(stderr, "undefined step \"%s\" specified in permutation\n", p->stepnames[j]);
fprintf(stderr, "undefined step \"%s\" specified in permutation\n",
p->stepnames[j]);
exit_nicely();
}
}