From 59b5ab2b1ccfcec55e64befb666632d6698113ed Mon Sep 17 00:00:00 2001 From: Mosder Date: Mon, 17 Aug 2026 11:05:06 +0200 Subject: fix: fixed wrong allocation of outputs in tester + the fact that one of the arrays wasn't freed --- src/ds/array.c | 3 ++- src/tester.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/ds/array.c b/src/ds/array.c index e8dbeec..e17e1fe 100644 --- a/src/ds/array.c +++ b/src/ds/array.c @@ -46,7 +46,8 @@ void *expand(void *arr, size_t min_cap, size_t el_size) { !*(void**)p_arr ? *(void **)p_arr = init(el_size) : 0; \ MosArrHeader *hdr = arr2hdr(*(void**)p_arr); \ *(void **)p_arr = expand(*(void**)p_arr, min_cap, el_size); \ - void *arr = *(void **)p_arr + void *arr = *(void **)p_arr; \ + hdr = arr2hdr(arr) // clang-format on void mos_arr_append_fn(void *p_arr, size_t el_size) { diff --git a/src/tester.c b/src/tester.c index 43efa07..280eed1 100644 --- a/src/tester.c +++ b/src/tester.c @@ -132,8 +132,8 @@ void mos_suppress_output(FILE **out) { if (!suppressed.outs || suppressed.n_outs >= suppressed.out_cap) { while (suppressed.n_outs >= suppressed.out_cap) suppressed.out_cap *= 2; - suppressed.outs = mos_safe_realloc(suppressed.outs, suppressed.out_cap); - suppressed.ogs = mos_safe_realloc(suppressed.ogs, suppressed.out_cap); + suppressed.outs = mos_safe_realloc(suppressed.outs, suppressed.out_cap * sizeof(FILE **)); + suppressed.ogs = mos_safe_realloc(suppressed.ogs, suppressed.out_cap * sizeof(FILE *)); } suppressed.outs[suppressed.n_outs] = out; suppressed.ogs[suppressed.n_outs++] = *out; @@ -234,6 +234,7 @@ void mos_free_tester(MosTester *tester) { } if (suppressed.outs) { free(suppressed.outs); + free(suppressed.ogs); suppressed.n_outs = 0; } } -- cgit v1.2.3