From c94e7c72e7323cc2086252703e508093acfe0eee Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Wed, 7 Oct 2020 13:18:34 +0200 Subject: [PATCH] conf: free refclock strings on exit Free driver name and parameter of configured refclocks in helpers on exit. --- conf.c | 10 +++++++++- refclock.c | 4 +--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/conf.c b/conf.c index 14f0efd..3f27870 100644 --- a/conf.c +++ b/conf.c @@ -422,6 +422,10 @@ CNF_Finalise(void) Free(((NTP_Source *)ARR_GetElement(ntp_sources, i))->params.name); for (i = 0; i < ARR_GetSize(ntp_source_dirs); i++) Free(*(char **)ARR_GetElement(ntp_source_dirs, i)); + for (i = 0; i < ARR_GetSize(refclock_sources); i++) { + Free(((RefclockParameters *)ARR_GetElement(refclock_sources, i))->driver_name); + Free(((RefclockParameters *)ARR_GetElement(refclock_sources, i))->driver_parameter); + } ARR_DestroyInstance(init_sources); ARR_DestroyInstance(ntp_sources); @@ -1839,10 +1843,14 @@ CNF_AddSources(void) void CNF_AddRefclocks(void) { + RefclockParameters *refclock; unsigned int i; for (i = 0; i < ARR_GetSize(refclock_sources); i++) { - RCL_AddRefclock((RefclockParameters *)ARR_GetElement(refclock_sources, i)); + refclock = ARR_GetElement(refclock_sources, i); + RCL_AddRefclock(refclock); + Free(refclock->driver_name); + Free(refclock->driver_parameter); } ARR_SetSize(refclock_sources, 0); diff --git a/refclock.c b/refclock.c index 44df2c6..70d46ee 100644 --- a/refclock.c +++ b/refclock.c @@ -181,7 +181,7 @@ RCL_AddRefclock(RefclockParameters *params) LOG_FATAL("refclock tai option requires leapsectz"); inst->data = NULL; - inst->driver_parameter = params->driver_parameter; + inst->driver_parameter = Strdup(params->driver_parameter); inst->driver_parameter_length = 0; inst->driver_poll = params->driver_poll; inst->poll = params->poll; @@ -261,8 +261,6 @@ RCL_AddRefclock(RefclockParameters *params) params->driver_name, UTI_RefidToString(inst->ref_id), inst->poll, inst->driver_poll, params->filter_length); - Free(params->driver_name); - return 1; }