From bf3e0d4f224a26e2ac9bc3edfd1e6eedcf56c9f8 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 16 Apr 2008 18:01:26 +0200 Subject: prevented segfault during runtime library init phase --- runtime/errmsg.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'runtime/errmsg.c') 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 } -- cgit v1.2.3