]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
dns-json: fix cleanup
authorVictor Julien <victor@inliniac.net>
Thu, 10 Apr 2014 06:25:22 +0000 (08:25 +0200)
committerVictor Julien <victor@inliniac.net>
Thu, 10 Apr 2014 06:25:22 +0000 (08:25 +0200)
Use specialized cleanup function for sub-module case. Freeing the
LogFileCtx is not the responsibility of a sub-module.

src/output-json-dns.c

index d951219fa9265d5ef8b2d1ab056f862c5d957938..d94ffcbe3fd8678032e59811b433fedb1e4bb859 100644 (file)
@@ -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");