Blame SOURCES/rsyslog-8.37.0-rhbz1716867-imjournal-memleak.patch

c16178
From 920c28ff705aac74f389b4613815b14b9482e497 Mon Sep 17 00:00:00 2001
c16178
From: Jiri Vymazal <jvymazal@redhat.com>
c16178
Date: Mon, 21 Jan 2019 10:58:03 +0100
c16178
Subject: [PATCH] Added missing free() calls of received journal cursor
c16178
c16178
---
c16178
 plugins/imjournal/imjournal.c | 5 +++++
c16178
 1 file changed, 5 insertions(+)
c16178
c16178
diff --git a/plugins/imjournal/imjournal.c b/plugins/imjournal/imjournal.c
c16178
index a85e521003..f5c2be4b6e 100644
c16178
--- a/plugins/imjournal/imjournal.c
c16178
+++ b/plugins/imjournal/imjournal.c
c16178
@@ -449,6 +449,7 @@ readjournal(void)
c16178
 finalize_it:
c16178
 	free(sys_iden_help);
c16178
 	free(message);
c16178
+	free(c);
c16178
 	RETiRet;
c16178
 }
c16178
 
c16178
@@ -470,6 +471,7 @@ persistJournalState(void)
c16178
 		}
c16178
 	} else {
c16178
 		int ret;
c16178
+		free(last_cursor);
c16178
 		if ((ret = sd_journal_get_cursor(j, &last_cursor))) {
c16178
 			LogError(-ret, RS_RET_ERR, "imjournal: sd_journal_get_cursor() failed");
c16178
 			ABORT_FINALIZE(RS_RET_ERR);
c16178
@@ -630,6 +632,7 @@ loadJournalState(void)
c16178
 						iRet = RS_RET_ERR;
c16178
 					}
c16178
 				}
c16178
+				free(tmp_cursor);
c16178
 			}
c16178
 		} else {
c16178
 			LogError(0, RS_RET_IO_ERROR, "imjournal: "
c16178
@@ -843,6 +846,7 @@ BEGINfreeCnf
c16178
 	free(cs.stateFile);
c16178
 	free(cs.usePid);
c16178
 	free(cs.dfltTag);
c16178
+	free(last_cursor);
c16178
 	statsobj.Destruct(&(statsCounter.stats));
c16178
 ENDfreeCnf
c16178
 
c16178
diff --git a/plugins/imjournal/imjournal.c b/plugins/imjournal/imjournal.c
c16178
index f5c2be4b6e..7225fae1ab 100644
c16178
--- a/plugins/imjournal/imjournal.c
c16178
+++ b/plugins/imjournal/imjournal.c
c16178
@@ -474,6 +474,7 @@ persistJournalState(void)
c16178
 		free(last_cursor);
c16178
 		if ((ret = sd_journal_get_cursor(j, &last_cursor))) {
c16178
 			LogError(-ret, RS_RET_ERR, "imjournal: sd_journal_get_cursor() failed");
c16178
+			last_cursor = NULL;
c16178
 			ABORT_FINALIZE(RS_RET_ERR);
c16178
 		}
c16178
 	}
c16178