Browse Source

fixed out-of-bounds access in symbolic to explicit conversion of game-based abstraction

tempestpy_adaptions
dehnert 7 years ago
parent
commit
0a68d8afa2
  1. 2
      src/storm/abstraction/MenuGameRefiner.cpp
  2. 2
      src/storm/modelchecker/abstraction/GameBasedMdpModelChecker.cpp

2
src/storm/abstraction/MenuGameRefiner.cpp

@ -672,6 +672,8 @@ namespace storm {
if (!interpolant.isTrue() && !interpolant.isFalse()) { if (!interpolant.isTrue() && !interpolant.isFalse()) {
STORM_LOG_DEBUG("Derived new predicate (based on interpolation): " << interpolant); STORM_LOG_DEBUG("Derived new predicate (based on interpolation): " << interpolant);
interpolants.push_back(interpolant); interpolants.push_back(interpolant);
} else {
STORM_LOG_TRACE("Found interpolant is '" << interpolant << "'.");
} }
} }
return boost::make_optional(RefinementPredicates(RefinementPredicates::Source::Interpolation, interpolants)); return boost::make_optional(RefinementPredicates(RefinementPredicates::Source::Interpolation, interpolants));

2
src/storm/modelchecker/abstraction/GameBasedMdpModelChecker.cpp

@ -680,7 +680,7 @@ namespace storm {
std::vector<uint64_t> player2BackwardTransitions(transitionMatrix.getRowGroupCount()); std::vector<uint64_t> player2BackwardTransitions(transitionMatrix.getRowGroupCount());
uint64_t player2State = 0; uint64_t player2State = 0;
for (uint64_t player1State = 0; player1State < player2RowGrouping.size() - 1; ++player1State) {
for (uint64_t player1State = 0; player1State < player1RowGrouping.size() - 1; ++player1State) {
while (player1RowGrouping[player1State + 1] > player2RowGrouping[player2State]) { while (player1RowGrouping[player1State + 1] > player2RowGrouping[player2State]) {
player2BackwardTransitions[player2State] = player1State; player2BackwardTransitions[player2State] = player1State;
++player2State; ++player2State;

Loading…
Cancel
Save