Skip to content

Commit aec59a9

Browse files
authored
Merge pull request #14573 from corngood/libexpr-leak
nix_api_expr: ensure destructors are called for builder/state
2 parents 1f2a994 + 8d881ee commit aec59a9

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/libexpr-c/nix_api_expr.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ nix_eval_state_builder * nix_eval_state_builder_new(nix_c_context * context, Sto
137137

138138
void nix_eval_state_builder_free(nix_eval_state_builder * builder)
139139
{
140+
if (builder)
141+
builder->~nix_eval_state_builder();
140142
operator delete(builder, static_cast<std::align_val_t>(alignof(nix_eval_state_builder)));
141143
}
142144

@@ -203,6 +205,8 @@ EvalState * nix_state_create(nix_c_context * context, const char ** lookupPath_c
203205

204206
void nix_state_free(EvalState * state)
205207
{
208+
if (state)
209+
state->~EvalState();
206210
operator delete(state, static_cast<std::align_val_t>(alignof(EvalState)));
207211
}
208212

0 commit comments

Comments
 (0)