Skip to content

Commit 309d558

Browse files
committed
libexpr-c: Fix mismatched new/delete
This leads to ASAN errors: ==1137785==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x523000001d00 in thread T0: object passed to delete has wrong type: size of the allocated type: 5968 bytes; size of the deallocated type: 5968 bytes. alignment of the allocated type: 8 bytes; alignment of the deallocated type: default-aligned.
1 parent b4fcb64 commit 309d558

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/libexpr-c/nix_api_expr.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ 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-
delete builder;
140+
operator delete(builder, static_cast<std::align_val_t>(alignof(nix_eval_state_builder)));
141141
}
142142

143143
nix_err nix_eval_state_builder_load(nix_c_context * context, nix_eval_state_builder * builder)
@@ -203,7 +203,7 @@ EvalState * nix_state_create(nix_c_context * context, const char ** lookupPath_c
203203

204204
void nix_state_free(EvalState * state)
205205
{
206-
delete state;
206+
operator delete(state, static_cast<std::align_val_t>(alignof(EvalState)));
207207
}
208208

209209
#if NIX_USE_BOEHMGC

0 commit comments

Comments
 (0)