qtil
advanced-security/qtil-ruby 0.0.2
Search

Predicate SuccSplits::case2aFromRank

Case 2a.

As opposed to the other cases, in this case we need to construct a new set of splits succSplits. Since this involves constructing the very IPA type, we cannot recurse directly over the structure of succSplits. Instead, we recurse over the ranks of all splits that might be in succSplits.

  • Invariant 1 holds in the base case,
  • invariant 2 holds for all splits with rank at least rnk,
  • invariant 3 holds for all splits in predSplits,
  • invariant 4 holds for all splits in succSplits with rank at least rnk, and
  • invariant 4 holds for all splits in succSplits with rank at least rnk.

Import path

import codeql.ruby.controlflow.internal.ControlFlowGraphImplShared
predicate case2aFromRank(ControlFlowElement pred, Splits predSplits, ControlFlowElement succ, Splits succSplits, Completion c, int rnk)