diff --git a/src/common/init.c b/src/common/init.c index 7d66b07b5..0ef3b700b 100644 --- a/src/common/init.c +++ b/src/common/init.c @@ -72,6 +72,7 @@ static void initConfigDirs(FFstate* state) startIndex = colonIndex + 1; } + ffStrbufDestroy(&xdgConfigDirs); FFstrbuf* systemConfigHome = ffListAdd(&state->configDirs); ffStrbufInitA(systemConfigHome, 64); @@ -382,6 +383,17 @@ void ffFinish(FFinstance* instance) ffLogoPrintRemaining(instance); resetConsole(); + + for(uint32_t i = 0; i < instance->state.configDirs.length; ++i) + ffStrbufDestroy((FFstrbuf*)ffListGet(&instance->state.configDirs, i)); + ffListDestroy(&instance->state.configDirs); + ffStrbufDestroy(&instance->state.cacheDir); + for(uint8_t i = 0; i < (uint8_t) FASTFETCH_LOGO_MAX_COLORS; ++i) + ffStrbufDestroy(&instance->config.logo.colors[i]); + ffStrbufDestroy(&instance->config.colorKeys); + ffStrbufDestroy(&instance->config.colorTitle); + ffStrbufDestroy(&instance->config.separator); + ffStrbufDestroy(&instance->config.logo.source); } //Must be in a file compiled with the libfastfetch target, because the FF_HAVE* macros are not defined for the executable targets diff --git a/src/fastfetch.c b/src/fastfetch.c index cda0496f2..be259a70b 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -1448,6 +1448,8 @@ int main(int argc, const char** argv) startIndex = colonIndex + 1; } + ffStrbufDestroy(&data.structure); + ffValuestoreDestroy(&data.customValues); ffFinish(&instance); } diff --git a/src/modules/publicip.c b/src/modules/publicip.c index aacb0537c..4ff5e59b4 100644 --- a/src/modules/publicip.c +++ b/src/modules/publicip.c @@ -15,6 +15,7 @@ void ffPrintPublicIp(FFinstance* instance) if(result.length == 0) { ffPrintError(instance, FF_PUBLICIP_MODULE_NAME, 0, &instance->config.publicIP, "Failed to connect to an IP detection server"); + ffStrbufDestroy(&result); return; } @@ -29,4 +30,6 @@ void ffPrintPublicIp(FFinstance* instance) {FF_FORMAT_ARG_TYPE_STRBUF, &result} }); } + + ffStrbufDestroy(&result); }