3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-27 16:38:45 +00:00

fix a couple hundred deref-after-free bugs due to .c_str() on a temporary string

This commit is contained in:
Nuno Lopes 2020-07-11 20:24:45 +01:00
parent 48a9defb0d
commit 23e6adcad3
64 changed files with 248 additions and 229 deletions

View file

@ -66,7 +66,8 @@ extern "C" {
Z3_TRY;
LOG_Z3_params_set_bool(c, p, k, v);
RESET_ERROR_CODE();
to_params(p)->m_params.set_bool(norm_param_name(to_symbol(k)).c_str(), v);
auto name = norm_param_name(to_symbol(k));
to_params(p)->m_params.set_bool(name.c_str(), v);
Z3_CATCH;
}
@ -77,7 +78,8 @@ extern "C" {
Z3_TRY;
LOG_Z3_params_set_uint(c, p, k, v);
RESET_ERROR_CODE();
to_params(p)->m_params.set_uint(norm_param_name(to_symbol(k)).c_str(), v);
auto name = norm_param_name(to_symbol(k));
to_params(p)->m_params.set_uint(name.c_str(), v);
Z3_CATCH;
}
@ -88,7 +90,8 @@ extern "C" {
Z3_TRY;
LOG_Z3_params_set_double(c, p, k, v);
RESET_ERROR_CODE();
to_params(p)->m_params.set_double(norm_param_name(to_symbol(k)).c_str(), v);
auto name = norm_param_name(to_symbol(k));
to_params(p)->m_params.set_double(name.c_str(), v);
Z3_CATCH;
}
@ -99,7 +102,8 @@ extern "C" {
Z3_TRY;
LOG_Z3_params_set_symbol(c, p, k, v);
RESET_ERROR_CODE();
to_params(p)->m_params.set_sym(norm_param_name(to_symbol(k)).c_str(), to_symbol(v));
auto name = norm_param_name(to_symbol(k));
to_params(p)->m_params.set_sym(name.c_str(), to_symbol(v));
Z3_CATCH;
}