From 833f4642621699890d05c041d3ace5de24f369ba Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Mon, 7 Apr 2008 12:14:49 +0200 Subject: fixed segfault when using expression based-filters This was introduced by an invalid CVS patch. --- syslogd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syslogd.c b/syslogd.c index f21fce7e..97d700f6 100644 --- a/syslogd.c +++ b/syslogd.c @@ -1056,6 +1056,7 @@ finalize_it: if(pVM != NULL) vm.Destruct(&pVM); +RUNLOG_VAR("%p", var); if(pResult != NULL) var.Destruct(&pResult); @@ -2838,12 +2839,11 @@ InitGlobalClasses(void) /* the following classes were intialized by objClassInit() */ CHKiRet(objUse(errmsg, CORE_COMPONENT)); CHKiRet(objUse(module, CORE_COMPONENT)); + CHKiRet(objUse(var, CORE_COMPONENT)); /* initialize and use classes. We must be very careful with the order of events. Some * classes use others and if we do not initialize them in the right order, we may end * up with an invalid call. The most important thing that can happen is that an error - pErrObj = "var"; - CHKiRet(objUse(var, CORE_COMPONENT)); * is detected and needs to be logged, wich in turn requires a broader number of classes * to be available. The solution is that we take care in the order of calls AND use a * class immediately after it is initialized. And, of course, we load those classes -- cgit v1.2.3