From 08d7d5918f9bfd31ddc8218a99287f5e8013d0db Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 16 Dec 2025 10:02:54 +1000 Subject: [PATCH] util: free the test parameters after the run And also ensure we have the null-termination even if MUNIT_TEST_MAX_PARAMS are given. Fixes: 2996a66b3785 ("util: add support for parametrized tests") Part-of: --- src/util-munit.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/util-munit.c b/src/util-munit.c index 29c2c8a..0fe945a 100644 --- a/src/util-munit.c +++ b/src/util-munit.c @@ -57,7 +57,7 @@ munit_tests_run(int argc, char **argv) size_t idx = 0; foreach_test(t) { size_t nparams = 0; - MunitParameterEnum *parameters = calloc(MUNIT_TEST_MAX_PARAMS, sizeof(*parameters)); + MunitParameterEnum *parameters = calloc(MUNIT_TEST_MAX_PARAMS + 1, sizeof(*parameters)); /* null-terminated */ const char *name = NULL; char **values = NULL; @@ -124,6 +124,13 @@ munit_tests_run(int argc, char **argv) int rc = munit_suite_main(&suite, setup.userdata, setup.argc, setup.argv); for (idx = 0; idx < count; idx++) { + MunitParameterEnum *parameters = tests[idx].parameters; + while (parameters && parameters->name) { + free(parameters->name); + strv_free(parameters->values); + parameters++; + } + free(tests[idx].name); free(tests[idx].parameters); }