From 7ee3b456a3fa52ae0ec194f4fea2e3e40348979a Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Thu, 10 Apr 2014 08:25:22 +0200 Subject: [PATCH] dns-json: fix cleanup Use specialized cleanup function for sub-module case. Freeing the LogFileCtx is not the responsibility of a sub-module. --- src/output-json-dns.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/output-json-dns.c b/src/output-json-dns.c index d951219fa9..d94ffcbe3f 100644 --- a/src/output-json-dns.c +++ b/src/output-json-dns.c @@ -285,6 +285,14 @@ static void LogDnsLogDeInitCtx(OutputCtx *output_ctx) SCFree(output_ctx); } +static void LogDnsLogDeInitCtxSub(OutputCtx *output_ctx) +{ + SCLogDebug("cleaning up sub output_ctx %p", output_ctx); + LogDnsFileCtx *dnslog_ctx = (LogDnsFileCtx *)output_ctx->data; + SCFree(dnslog_ctx); + SCFree(output_ctx); +} + static OutputCtx *JsonDnsLogInitCtxSub(ConfNode *conf, OutputCtx *parent_ctx) { AlertJsonThread *ajt = parent_ctx->data; @@ -304,7 +312,7 @@ static OutputCtx *JsonDnsLogInitCtxSub(ConfNode *conf, OutputCtx *parent_ctx) } output_ctx->data = dnslog_ctx; - output_ctx->DeInit = LogDnsLogDeInitCtx; + output_ctx->DeInit = LogDnsLogDeInitCtxSub; SCLogDebug("DNS log sub-module initialized");