]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
outputs: fix memleaks in the error paths reported by coverity
authorVictor Julien <victor@inliniac.net>
Tue, 23 Oct 2018 11:49:37 +0000 (13:49 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 30 Oct 2018 09:21:34 +0000 (10:21 +0100)
src/alert-syslog.c
src/alert-unified2-alert.c

index 466ceb77e26ec7991b36f81981587914354a1bef..c790ef2b3c781184202fd7f2149c3395e0c5e185 100644 (file)
@@ -126,7 +126,8 @@ static OutputInitResult AlertSyslogInitCtx(ConfNode *conf)
 
     OutputCtx *output_ctx = SCMalloc(sizeof(OutputCtx));
     if (unlikely(output_ctx == NULL)) {
-        SCLogDebug("AlertSyslogInitCtx: Could not create new OutputCtx");
+        SCLogDebug("could not create new OutputCtx");
+        LogFileFreeCtx(logfile_ctx);
         return result;
     }
     memset(output_ctx, 0x00, sizeof(OutputCtx));
index e1523a3ef2cfafedf56840b1c1a272f1c5203ae6..67e7defbe6a4f0a853cb69636e7748dc9bd02d85 100644 (file)
@@ -1277,15 +1277,14 @@ OutputInitResult Unified2AlertInitCtx(ConfNode *conf)
 {
     OutputInitResult result = { NULL, false };
     int ret = 0;
-    LogFileCtx* file_ctx = NULL;
     OutputCtx* output_ctx = NULL;
     HttpXFFCfg *xff_cfg = NULL;
     int nostamp = 0;
 
-    file_ctx = LogFileNewCtx();
+    LogFileCtx* file_ctx = LogFileNewCtx();
     if (file_ctx == NULL) {
         SCLogError(SC_ERR_UNIFIED2_ALERT_GENERIC, "Couldn't create new file_ctx");
-        goto error;
+        return result;
     }
 
     const char *filename = NULL;
@@ -1402,6 +1401,8 @@ OutputInitResult Unified2AlertInitCtx(ConfNode *conf)
     return result;
 
 error:
+    LogFileFreeCtx(file_ctx);
+
     if (xff_cfg != NULL) {
         SCFree(xff_cfg);
     }