Blame SOURCES/rsyslog-8.24.0-rhbz1725067-imjournal-memleak.patch

fde8c1
From 920c28ff705aac74f389b4613815b14b9482e497 Mon Sep 17 00:00:00 2001
fde8c1
From: Jiri Vymazal <jvymazal@redhat.com>
fde8c1
Date: Mon, 21 Jan 2019 10:58:03 +0100
fde8c1
Subject: [PATCH] Added missing free() calls of received journal cursor
fde8c1
fde8c1
---
fde8c1
 plugins/imjournal/imjournal.c | 7 +++++--
fde8c1
 1 file changed, 5 insertions(+), 2 deletions(-)
fde8c1
fde8c1
diff --git a/plugins/imjournal/imjournal.c b/plugins/imjournal/imjournal.c
fde8c1
index a85e521003..f5c2be4b6e 100644
fde8c1
--- a/plugins/imjournal/imjournal.c
fde8c1
+++ b/plugins/imjournal/imjournal.c
fde8c1
@@ -411,8 +411,7 @@ readjournal(void)
fde8c1
 
fde8c1
 	if (cs.bWorkAroundJournalBug) {
fde8c1
 		/* save journal cursor (at this point we can be sure it is valid) */
fde8c1
-		sd_journal_get_cursor(j, &c);
fde8c1
-		if (c) {
fde8c1
+		if (!sd_journal_get_cursor(j, &c)) {
fde8c1
 			free(last_cursor);
fde8c1
 			last_cursor = c;
fde8c1
 		}
fde8c1
@@ -444,7 +443,9 @@ persistJournalState(void)
fde8c1
 		if (!last_cursor)
fde8c1
 			ABORT_FINALIZE(RS_RET_OK);
fde8c1
 	} else if (trySave) {
fde8c1
+		free(last_cursor);
fde8c1
 		if ((ret = sd_journal_get_cursor(j, &last_cursor))) {
fde8c1
+			last_cursor = NULL;
fde8c1
 			LogError(-ret, RS_RET_ERR, "imjournal: sd_journal_get_cursor() failed");
fde8c1
 			ABORT_FINALIZE(RS_RET_ERR);
fde8c1
 		}
fde8c1
@@ -592,6 +593,7 @@ loadJournalState(void)
fde8c1
 							iRet = RS_RET_ERR;
fde8c1
 						}
fde8c1
 					} 
fde8c1
+					free(tmp_cursor);
fde8c1
 				}
fde8c1
 			} else {
fde8c1
 				errmsg.LogError(0, RS_RET_IO_ERROR, "imjournal: "
fde8c1
@@ -748,6 +750,7 @@ BEGINfreeCnf
fde8c1
 CODESTARTfreeCnf
fde8c1
 	free(cs.stateFile);
fde8c1
 	free(cs.dfltTag);
fde8c1
+	free(last_cursor);
fde8c1
 ENDfreeCnf
fde8c1
 
fde8c1
 /* open journal */