aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/0001-core-bugfix-segfault-after-configuration-errors.patch90
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog_8.22.0.bb1
2 files changed, 91 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/0001-core-bugfix-segfault-after-configuration-errors.patch b/meta-oe/recipes-extended/rsyslog/rsyslog/0001-core-bugfix-segfault-after-configuration-errors.patch
new file mode 100644
index 0000000000..189ca654aa
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/0001-core-bugfix-segfault-after-configuration-errors.patch
@@ -0,0 +1,90 @@
+From 6d258339802cb9f13d8a4a157a4b74eccb902d8f Mon Sep 17 00:00:00 2001
+From: Rainer Gerhards <rgerhards@adiscon.com>
+Date: Mon, 17 Jul 2017 15:36:32 +0200
+Subject: [PATCH] core bugfix: segfault after configuration errors
+
+rsyslog will segfault on startup if
+a) the local machine's hostname is set to a non-FQDN name
+b) the getaddrinfo() system call fails
+This scenario is higly unlikely, but may exist especially with
+provisioned VMs which may not properly be able to do name queries
+on startup (seen for example on AWS).
+
+This patch fixes the situation and also provides more robustness
+for very early startup error messages when some of the error-reporting
+subsystem is not yet properly initialized. Note that under these
+circumstances, errors may only show up on stderr.
+
+Upstream status: Backport
+
+closes https://github.com/rsyslog/rsyslog/issues/1573
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ runtime/prop.c | 6 ++++++
+ tools/rsyslogd.c | 17 +++++++++--------
+ 2 files changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/runtime/prop.c b/runtime/prop.c
+index e5b4693..cb93285 100644
+--- a/runtime/prop.c
++++ b/runtime/prop.c
+@@ -133,7 +133,13 @@ propConstructFinalize(prop_t __attribute__((unused)) *pThis)
+ */
+ static rsRetVal AddRef(prop_t *pThis)
+ {
++ if(pThis == NULL) {
++ DBGPRINTF("prop/AddRef is passed a NULL ptr - ignoring it "
++ "- further problems may occur\n");
++ FINALIZE;
++ }
+ ATOMIC_INC(&pThis->iRefCount, &pThis->mutRefCount);
++finalize_it:
+ return RS_RET_OK;
+ }
+
+diff --git a/tools/rsyslogd.c b/tools/rsyslogd.c
+index 759d293..6aa1487 100644
+--- a/tools/rsyslogd.c
++++ b/tools/rsyslogd.c
+@@ -808,9 +808,11 @@ logmsgInternal(int iErr, const syslog_pri_t pri, const uchar *const msg, int fla
+ * permits us to process unmodified config files which otherwise contain a
+ * supressor statement.
+ */
+- if(((Debug == DEBUG_FULL || !doFork) && ourConf->globals.bErrMsgToStderr) || iConfigVerify) {
++ int emit_to_stderr = (ourConf == NULL) ? 1 : ourConf->globals.bErrMsgToStderr;
++ if(((Debug == DEBUG_FULL || !doFork) && emit_to_stderr) || iConfigVerify) {
+ if(pri2sev(pri) == LOG_ERR)
+- fprintf(stderr, "rsyslogd: %s\n", (bufModMsg == NULL) ? (char*)msg : bufModMsg);
++ fprintf(stderr, "rsyslogd: %s\n",
++ (bufModMsg == NULL) ? (char*)msg : bufModMsg);
+ }
+
+ finalize_it:
+@@ -1115,18 +1117,17 @@ initAll(int argc, char **argv)
+
+ /* doing some core initializations */
+
+- /* get our host and domain names - we need to do this early as we may emit
+- * error log messages, which need the correct hostname. -- rgerhards, 2008-04-04
+- */
+- queryLocalHostname();
+-
+- /* initialize the objects */
+ if((iRet = modInitIminternal()) != RS_RET_OK) {
+ fprintf(stderr, "fatal error: could not initialize errbuf object (error code %d).\n",
+ iRet);
+ exit(1); /* "good" exit, leaving at init for fatal error */
+ }
+
++ /* get our host and domain names - we need to do this early as we may emit
++ * error log messages, which need the correct hostname. -- rgerhards, 2008-04-04
++ * But we need to have imInternal up first!
++ */
++ queryLocalHostname();
+
+ /* END core initializations - we now come back to carrying out command line options*/
+
+--
+2.10.2
+
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog_8.22.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.22.0.bb
index bd317be645..597a0c8dcb 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog_8.22.0.bb
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog_8.22.0.bb
@@ -25,6 +25,7 @@ SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.t
file://run-ptest \
file://rsyslog-fix-ptest-not-finish.patch \
file://CVE-2017-12588.patch \
+ file://0001-core-bugfix-segfault-after-configuration-errors.patch \
"
SRC_URI_append_libc-musl = " \