File rsyslog-8.17.x-imuxsock-fix-segfault-when-processing-system-log-soc.patch of Package rsyslog.5379
From d4a9d74a5ed67c6be520606d8c2417a30fa689f9 Mon Sep 17 00:00:00 2001
From: Rainer Gerhards <rgerhards@adiscon.com>
Date: Thu, 18 Feb 2016 17:25:20 +0100
Subject: [PATCH] imuxsock: fix segfault when processing system log socket
The root cause of this problem is that in commit
16db662d9fac0f9636eea873d690a629641be5bc rulesets where
introduced. However, the system log socket ruleset pointer
was not properly initialized. So it depends on the memory state
which value the ruleset pointer has.
Note that this problem occurs only when running with sufficient
privileges to read the root log socket AND memory is not zeroed-out.
Under these conditions, a segfault rather quickly on startup is
possible, but does not always happen. As it is an uninitialized
data bug, problems can also occur any time after startup. Besides
a segfault, message may also be lost due to assignment to invalid
ruleset.
This regression was caused by an update post the 8.16.0 release
and is fixed before 8.17.0, so no officially released version
is affected.
---
plugins/imuxsock/imuxsock.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/plugins/imuxsock/imuxsock.c b/plugins/imuxsock/imuxsock.c
index 0f20ee2..db00e51 100644
--- a/plugins/imuxsock/imuxsock.c
+++ b/plugins/imuxsock/imuxsock.c
@@ -1109,6 +1109,7 @@ activateListeners()
listeners[0].ht = NULL;
}
listeners[0].fd = -1;
+ listeners[0].pRuleset = NULL;
listeners[0].hostName = NULL;
listeners[0].bParseHost = 0;
listeners[0].bCreatePath = 0;
--
2.6.2