Add two patches for imjournal and the ratelimiter
This commit is contained in:
parent
5b94587fc1
commit
9c292afab3
87
rsyslog-7.4.0-no-ste-file-segv.patch
Normal file
87
rsyslog-7.4.0-no-ste-file-segv.patch
Normal file
@ -0,0 +1,87 @@
|
||||
From ad9108eaf9164225f9149ed2b3b5c3184e1cb487 Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Heinrich <theinric@redhat.com>
|
||||
Date: Wed, 12 Jun 2013 13:38:34 +0200
|
||||
Subject: [PATCH] bugfix: prevent a segfault if state file is not defined
|
||||
|
||||
---
|
||||
plugins/imjournal/imjournal.c | 43 +++++++++++++++++++++++++++++------------
|
||||
1 file changed, 31 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/plugins/imjournal/imjournal.c b/plugins/imjournal/imjournal.c
|
||||
index cce45b9..26b385c 100755
|
||||
--- a/plugins/imjournal/imjournal.c
|
||||
+++ b/plugins/imjournal/imjournal.c
|
||||
@@ -434,12 +434,13 @@ finalize_it:
|
||||
}
|
||||
|
||||
|
||||
-BEGINrunInput
|
||||
-CODESTARTrunInput
|
||||
- /* this is an endless loop - it is terminated when the thread is
|
||||
- * signalled to do so. This, however, is handled by the framework,
|
||||
- * right into the sleep below.
|
||||
- */
|
||||
+/* This function loads a journal cursor from the state file.
|
||||
+ */
|
||||
+static rsRetVal
|
||||
+loadJournalState()
|
||||
+{
|
||||
+ DEFiRet;
|
||||
+
|
||||
if (cs.stateFile[0] != '/') {
|
||||
char *new_stateFile;
|
||||
|
||||
@@ -479,6 +480,20 @@ CODESTARTrunInput
|
||||
}
|
||||
}
|
||||
|
||||
+finalize_it:
|
||||
+ RETiRet;
|
||||
+}
|
||||
+
|
||||
+BEGINrunInput
|
||||
+CODESTARTrunInput
|
||||
+ /* this is an endless loop - it is terminated when the thread is
|
||||
+ * signalled to do so. This, however, is handled by the framework.
|
||||
+ */
|
||||
+
|
||||
+ if (cs.stateFile) {
|
||||
+ CHKiRet(loadJournalState());
|
||||
+ }
|
||||
+
|
||||
while (glbl.GetGlobalInputTermState() == 0) {
|
||||
int count = 0, r;
|
||||
|
||||
@@ -499,11 +514,13 @@ CODESTARTrunInput
|
||||
}
|
||||
|
||||
CHKiRet(readjournal());
|
||||
- /* TODO: This could use some finer metric. */
|
||||
- count++;
|
||||
- if (count == cs.iPersistStateInterval) {
|
||||
- count = 0;
|
||||
- persistJournalState();
|
||||
+ if (cs.stateFile) { /* can't persist without a state file */
|
||||
+ /* TODO: This could use some finer metric. */
|
||||
+ count++;
|
||||
+ if (count == cs.iPersistStateInterval) {
|
||||
+ count = 0;
|
||||
+ persistJournalState();
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -552,7 +569,9 @@ ENDwillRun
|
||||
/* close journal */
|
||||
BEGINafterRun
|
||||
CODESTARTafterRun
|
||||
- persistJournalState();
|
||||
+ if (cs.stateFile) { /* can't persist without a state file */
|
||||
+ persistJournalState();
|
||||
+ }
|
||||
sd_journal_close(j);
|
||||
ENDafterRun
|
||||
|
||||
--
|
||||
1.7.10.4
|
||||
|
27
rsyslog-7.4.0-ratelimiter-reset.patch
Normal file
27
rsyslog-7.4.0-ratelimiter-reset.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 489541d2a901c5fedd9cbbdc8ad0df557fdabddd Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Heinrich <theinric@redhat.com>
|
||||
Date: Tue, 11 Jun 2013 16:27:37 +0200
|
||||
Subject: [PATCH] bugfix: prevent calling tellLostCnt() twice
|
||||
|
||||
---
|
||||
runtime/ratelimit.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/runtime/ratelimit.c b/runtime/ratelimit.c
|
||||
index ec24855..8f5bcef 100644
|
||||
--- a/runtime/ratelimit.c
|
||||
+++ b/runtime/ratelimit.c
|
||||
@@ -157,9 +157,9 @@ withinRatelimit(ratelimit_t *ratelimit, time_t tt)
|
||||
|
||||
/* resume if we go out of out time window */
|
||||
if(tt > ratelimit->begin + ratelimit->interval) {
|
||||
- tellLostCnt(ratelimit);
|
||||
ratelimit->begin = 0;
|
||||
ratelimit->done = 0;
|
||||
+ tellLostCnt(ratelimit);
|
||||
}
|
||||
|
||||
/* do actual limit check */
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -33,6 +33,8 @@ Patch4: rsyslog-7.4.0-imjournal-segv.rhbz971471.patch
|
||||
# merged upstream
|
||||
Patch5: rsyslog-7.4.0-ratelimiter-loop.rhbz971471.patch
|
||||
Patch6: rsyslog-7.4.0-ratelimiter-loop2.rhbz971471.patch
|
||||
Patch7: rsyslog-7.4.0-ratelimiter-reset.patch
|
||||
Patch8: rsyslog-7.4.0-no-ste-file-segv.patch
|
||||
|
||||
BuildRequires: bison
|
||||
BuildRequires: flex
|
||||
@ -253,6 +255,8 @@ of source ports.
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
|
||||
%build
|
||||
%ifarch sparc64
|
||||
@ -474,7 +478,7 @@ done
|
||||
%{_libdir}/rsyslog/omudpspoof.so
|
||||
|
||||
%changelog
|
||||
* Tue Jun 11 2013 Tomas Heinrich <theinric@redhat.com> 7.4.0-1
|
||||
* Tue Jun 12 2013 Tomas Heinrich <theinric@redhat.com> 7.4.0-1
|
||||
- rebase to 7.4.0
|
||||
- drop autoconf automake libtool from BuildRequires
|
||||
- depends on systemd >= 201 because of the sd_journal_get_events() api
|
||||
@ -482,6 +486,8 @@ done
|
||||
systemd journal
|
||||
- add a patch to prevent an endless loop in the ratelimiter
|
||||
- add a patch to prevent another endless loop in the ratelimiter
|
||||
- add a patch to prevent a segfault in imjournal for undefined state file
|
||||
- add a patch to correctly reset state in the ratelimiter
|
||||
|
||||
* Tue Jun 04 2013 Tomas Heinrich <theinric@redhat.com> 7.3.15-1.20130604git6e72fa6
|
||||
- rebase to an upstream snapshot, effectively version 7.3.15
|
||||
|
Loading…
Reference in New Issue
Block a user