From: Victor Julien Date: Thu, 10 Apr 2014 06:25:22 +0000 (+0200) Subject: dns-json: fix cleanup X-Git-Tag: suricata-2.0.1rc1~63 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ee3b456a3fa52ae0ec194f4fea2e3e40348979a;p=thirdparty%2Fsuricata.git dns-json: fix cleanup Use specialized cleanup function for sub-module case. Freeing the LogFileCtx is not the responsibility of a sub-module. --- 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");