mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
fix a couple hundred deref-after-free bugs due to .c_str() on a temporary string
This commit is contained in:
parent
48a9defb0d
commit
23e6adcad3
64 changed files with 248 additions and 229 deletions
|
@ -42,7 +42,7 @@ void tst_expr_arith(unsigned num_files) {
|
|||
std::ostringstream buffer;
|
||||
buffer << "random_arith_" << i << ".smt2";
|
||||
std::cout << buffer.str() << "\n";
|
||||
std::ofstream file(buffer.str().c_str());
|
||||
std::ofstream file(buffer.str());
|
||||
pp.display_smt2(file, e.get());
|
||||
file.close();
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ void tst_expr_rand(unsigned num_files) {
|
|||
std::ostringstream buffer;
|
||||
buffer << "random_bv_" << i << ".smt2";
|
||||
std::cout << buffer.str() << "\n";
|
||||
std::ofstream file(buffer.str().c_str());
|
||||
std::ofstream file(buffer.str());
|
||||
pp.display_smt2(file, e.get());
|
||||
file.close();
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ expr_ref hilbert_basis_validate::mk_validate(hilbert_basis& hb) {
|
|||
name << "u" << i;
|
||||
increments.push_back(tmp);
|
||||
vars.push_back(var);
|
||||
names.push_back(symbol(name.str().c_str()));
|
||||
names.push_back(symbol(name.str()));
|
||||
sorts.push_back(a.mk_int());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ static void test1() {
|
|||
for (unsigned i = 0; i < N; ++i) {
|
||||
std::stringstream strm;
|
||||
strm << "b" << i;
|
||||
vars.push_back(m.mk_const(symbol(strm.str().c_str()), m.mk_bool_sort()));
|
||||
vars.push_back(m.mk_const(symbol(strm.str()), m.mk_bool_sort()));
|
||||
}
|
||||
|
||||
for (unsigned k = 1; k <= N; ++k) {
|
||||
|
@ -112,7 +112,7 @@ static void test2() {
|
|||
for (unsigned i = 0; i < N; ++i) {
|
||||
std::stringstream strm;
|
||||
strm << "b" << i;
|
||||
vars.push_back(m.mk_const(symbol(strm.str().c_str()), m.mk_bool_sort()));
|
||||
vars.push_back(m.mk_const(symbol(strm.str()), m.mk_bool_sort()));
|
||||
}
|
||||
for (unsigned coeff = 0; coeff < static_cast<unsigned>(1 << N); ++coeff) {
|
||||
vector<rational> coeffs;
|
||||
|
@ -181,7 +181,7 @@ static void test3() {
|
|||
for (unsigned i = 0; i < N; ++i) {
|
||||
std::stringstream strm;
|
||||
strm << "b" << i;
|
||||
vars.push_back(m.mk_const(symbol(strm.str().c_str()), m.mk_bool_sort()));
|
||||
vars.push_back(m.mk_const(symbol(strm.str()), m.mk_bool_sort()));
|
||||
}
|
||||
for (unsigned coeff = 0; coeff < static_cast<unsigned>(1 << N); ++coeff) {
|
||||
vector<rational> coeffs;
|
||||
|
|
|
@ -288,7 +288,7 @@ static void mk_var(unsigned x, app_ref& v) {
|
|||
arith_util a(m);
|
||||
std::ostringstream strm;
|
||||
strm << "v" << x;
|
||||
v = m.mk_const(symbol(strm.str().c_str()), a.mk_real());
|
||||
v = m.mk_const(symbol(strm.str()), a.mk_real());
|
||||
}
|
||||
|
||||
static void mk_term(vector<var_t> const& vars, rational const& coeff, app_ref& term) {
|
||||
|
|
|
@ -40,7 +40,7 @@ public:
|
|||
for (unsigned i = 0; i < N; ++i) {
|
||||
std::stringstream strm;
|
||||
strm << "b" << i;
|
||||
vars.push_back(m.mk_const(symbol(strm.str().c_str()), m.mk_bool_sort()));
|
||||
vars.push_back(m.mk_const(symbol(strm.str()), m.mk_bool_sort()));
|
||||
std::cout << "(declare-const " << strm.str() << " Bool)\n";
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue