Commit 50363c8f authored by Alvaro Herrera's avatar Alvaro Herrera

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.
parent 1b9dea04
...@@ -395,6 +395,12 @@ run_named_permutations(TestSpec * testspec) ...@@ -395,6 +395,12 @@ run_named_permutations(TestSpec * testspec)
Permutation *p = testspec->permutations[i]; Permutation *p = testspec->permutations[i];
Step **steps; 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 *)); steps = malloc(p->nsteps * sizeof(Step *));
/* Find all the named steps from the lookup table */ /* Find all the named steps from the lookup table */
...@@ -404,7 +410,8 @@ run_named_permutations(TestSpec * testspec) ...@@ -404,7 +410,8 @@ run_named_permutations(TestSpec * testspec)
sizeof(Step *), &step_bsearch_cmp)); sizeof(Step *), &step_bsearch_cmp));
if (steps[j] == NULL) 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(); exit_nicely();
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment