summaryrefslogtreecommitdiffstats
path: root/runtime/errmsg.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-04-16 18:01:26 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2008-04-16 18:01:26 +0200
commitbf3e0d4f224a26e2ac9bc3edfd1e6eedcf56c9f8 (patch)
treec74263495311d4ffbeb55f0fb27d102144f55024 /runtime/errmsg.c
parent5987107df46157eb847bc8271157ab8a7c73f6f4 (diff)
downloadrsyslog-bf3e0d4f224a26e2ac9bc3edfd1e6eedcf56c9f8.tar.gz
rsyslog-bf3e0d4f224a26e2ac9bc3edfd1e6eedcf56c9f8.tar.xz
rsyslog-bf3e0d4f224a26e2ac9bc3edfd1e6eedcf56c9f8.zip
prevented segfault during runtime library init phase
Diffstat (limited to 'runtime/errmsg.c')
-rw-r--r--runtime/errmsg.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/runtime/errmsg.c b/runtime/errmsg.c
index 01d392b7..b555d06a 100644
--- a/runtime/errmsg.c
+++ b/runtime/errmsg.c
@@ -83,7 +83,15 @@ LogError(int __attribute__((unused)) iErrCode, char *fmt, ... )
}
msg[sizeof(msg)/sizeof(char) - 1] = '\0'; /* just to be on the safe side... */
errno = 0;
- logmsgInternal(LOG_SYSLOG|LOG_ERR, msg, ADDDATE);
+
+ /* we must check if the runtime is initialized, because else we can NOT
+ * submit internal errors. -- rgerhards, 2008-04-16
+ * TODO: a better way is to set an error handler and check if it is NULL
+ */
+ if(rsrtIsInit())
+ logmsgInternal(LOG_SYSLOG|LOG_ERR, msg, ADDDATE);
+ else
+ fprintf(stderr, "rsyslog runtime error: %s\n", msg);
ENDfunc
}