summaryrefslogtreecommitdiff
path: root/src/theory/bv/bitblast/eager_bitblaster.cpp
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2018-04-13 18:22:11 -0700
committerGitHub <noreply@github.com>2018-04-13 18:22:11 -0700
commit84ead159cfbb76c8a6195ed2a64102529a84bdac (patch)
tree740621df486464fc6284f4d19326c79705d9080d /src/theory/bv/bitblast/eager_bitblaster.cpp
parent10c36f53033aadb6e2f3bf16f2d7305b793fd0e4 (diff)
Fix use-after-free in eager bitblaster (#1772)
There was a use-after-free in the eager bitblaster: the context used by the SAT solver was destroyed before the solver. This lead to a use-after-free in the destructor of the SAT solver when destroying context-dependent objects. This commit fixes the issue by changing the desctruction order such that the context is destroyed after the SAT solver. Note: This issue was introduced in commit a917cc2ab4956b542b1f565abf0e62b197692f8d because d_nullContext and d_satSolver were changed to be std::unique_ptrs.
Diffstat (limited to 'src/theory/bv/bitblast/eager_bitblaster.cpp')
-rw-r--r--src/theory/bv/bitblast/eager_bitblaster.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/theory/bv/bitblast/eager_bitblaster.cpp b/src/theory/bv/bitblast/eager_bitblaster.cpp
index d49c1f432..08776e60d 100644
--- a/src/theory/bv/bitblast/eager_bitblaster.cpp
+++ b/src/theory/bv/bitblast/eager_bitblaster.cpp
@@ -32,9 +32,9 @@ namespace bv {
EagerBitblaster::EagerBitblaster(TheoryBV* theory_bv)
: TBitblaster<Node>(),
+ d_nullContext(new context::Context()),
d_satSolver(),
d_bitblastingRegistrar(new BitblastingRegistrar(this)),
- d_nullContext(new context::Context()),
d_cnfStream(),
d_bv(theory_bv),
d_bbAtoms(),
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback