From: Alvaro Herrera Date: Wed, 11 Jan 2012 21:46:18 +0000 (-0300) Subject: Validate number of steps specified in permutation X-Git-Tag: REL9_2_BETA1~594 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=50363c8f86f89fe611ba417575218978917f1ac0;p=postgresql 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. --- 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(); } }