diff --git a/source/libs/audit/src/auditMain.c b/source/libs/audit/src/auditMain.c index 7616617ff0..19dc771c56 100644 --- a/source/libs/audit/src/auditMain.c +++ b/source/libs/audit/src/auditMain.c @@ -24,6 +24,7 @@ #include "tglobal.h" #include "mnode.h" #include "audit.h" +#include "osMemory.h" SAudit tsAudit = {0}; char* tsAuditUri = "/audit"; @@ -36,9 +37,18 @@ int32_t auditInit(const SAuditCfg *pCfg) { return 0; } +static FORCE_INLINE void auditDeleteRecord(SAuditRecord * record) { + if (record) { + taosMemoryFree(record->detail); + taosMemoryFree(record); + } +} + void auditCleanup() { tsLogFp = NULL; - taosArrayDestroy(tsAudit.records); + taosThreadMutexLock(&tsAudit.lock); + taosArrayDestroyP(tsAudit.records, (FDelete)auditDeleteRecord); + taosThreadMutexUnlock(&tsAudit.lock); tsAudit.records = NULL; taosThreadMutexDestroy(&tsAudit.lock); }