From 50363c8f86f89fe611ba417575218978917f1ac0 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Wed, 11 Jan 2012 18:46:18 -0300 Subject: [PATCH] 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. --- src/test/isolation/isolationtester.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c index 38f1e78dc5..1d339e9c57 100644 --- a/src/test/isolation/isolationtester.c +++ b/src/test/isolation/isolationtester.c @@ -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(); } }