determinize: work around overflow in reachability matrix indices

Fixes #541, reported by David Dokoupil.

* spot/twaalgos/determinize.cc: Disable use_simulation when the input
has more than 2^16 SCCs..  Also rework the reachability
matrix to store only its lower half triangle.
* spot/twaalgos/determinize.hh, NEWS: Mention the limitation of
use_simulation.
* THANKS: Add David.
This commit is contained in:
Alexandre Duret-Lutz 2023-09-04 17:51:26 +02:00
parent 110b052b7d
commit e2149fabf4
4 changed files with 91 additions and 59 deletions

8
NEWS
View file

@ -60,6 +60,14 @@ New in spot 2.11.6.dev (not yet released)
36 seconds; it now produce an AIG circuit with 53 nodes in only
0.1 second.
Bugs fixed:
- tgba_determinize()'s use_simulation option would cause it to
segfault on automata with more than 2^16 SCCs, due to overflows in
computations of indices in the reachability matrix for SCCs.
(Issue #541.) This has been fixed by disabled the use_simulation
optimization in this case.
New in spot 2.11.6 (2023-08-01)
Bug fixes: