From 561672d3d7ee76cb2a37a1c545803f0b50b23483 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Wed, 27 Jul 2016 20:09:16 +0200 Subject: [PATCH] lbtt: fix a memory leak detected by asan. * spot/twaalgos/lbtt.cc: Here. * NEWS: Mention it. --- NEWS | 3 +++ spot/twaalgos/lbtt.cc | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 871c158d5..a06421239 100644 --- a/NEWS +++ b/NEWS @@ -195,6 +195,9 @@ New in spot 2.0.3a (not yet released) * Fix some non-deterministic execution of minimize_wdba(), causing test-suite failures with the future G++ 7, and clang 3.9. + * print_lbtt() had a memory leak when printing states without + successors. + New in spot 2.0.3 (2016-07-11) Bug fixes: diff --git a/spot/twaalgos/lbtt.cc b/spot/twaalgos/lbtt.cc index 389de45bf..c96c599c7 100644 --- a/spot/twaalgos/lbtt.cc +++ b/spot/twaalgos/lbtt.cc @@ -51,7 +51,7 @@ namespace spot } acc_cond::mark_t - state_acc_sets(const state *s) const + state_acc_sets(const state* s) const { // If the automaton has a SBA type, it's easier to just query the // state_is_accepting() method. @@ -65,9 +65,9 @@ namespace spot // is not terribly efficient since we have to create the // iterator. twa_succ_iterator* it = aut_->succ_iter(s); - if (!it->first()) - return {}; - auto res = it->acc(); + acc_cond::mark_t res = 0U; + if (it->first()) + res = it->acc(); aut_->release_iter(it); return res; }