Blame SOURCES/rsyslog-8.2102.0-rhbz1960536-fdleak-on-fsync.patch

ebbec0
diff -up rsyslog-8.2102.0/plugins/imjournal/imjournal.c.orig rsyslog-8.2102.0/plugins/imjournal/imjournal.c
ebbec0
--- rsyslog-8.2102.0/plugins/imjournal/imjournal.c.orig	2021-06-15 12:30:35.238832058 +0200
ebbec0
+++ rsyslog-8.2102.0/plugins/imjournal/imjournal.c	2021-06-15 12:32:04.699721356 +0200
ebbec0
@@ -565,6 +565,8 @@ persistJournalState(void)
ebbec0
 		ABORT_FINALIZE(RS_RET_IO_ERROR);
ebbec0
 	}
ebbec0
 
ebbec0
+	fflush(sf);
ebbec0
+
ebbec0
 	/* change the name of the file to the configured one */
ebbec0
 	if (rename(tmp_sf, cs.stateFile) < 0) {
ebbec0
 		LogError(errno, iRet, "imjournal: rename() failed for new path: '%s'", cs.stateFile);
ebbec0
@@ -586,6 +588,7 @@ persistJournalState(void)
ebbec0
 			LogError(errno, RS_RET_IO_ERROR, "imjournal: fsync on '%s' failed", glbl.GetWorkDir());
ebbec0
 			ABORT_FINALIZE(RS_RET_IO_ERROR);
ebbec0
 		}
ebbec0
+		closedir(wd);
ebbec0
 	}
ebbec0
 
ebbec0
 	DBGPRINTF("Persisted journal to '%s'\n", cs.stateFile);