summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-03-12 07:11:09 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2008-03-12 07:11:09 +0000
commitb1555cd681652e57f76449e39cb1aae8db7d601b (patch)
tree274b22d93e2daedc177ed5a990ed042e4feb04a0
parente946e122d02987552874595f2613c07ce0c0aa23 (diff)
downloadrsyslog-b1555cd681652e57f76449e39cb1aae8db7d601b.tar.gz
rsyslog-b1555cd681652e57f76449e39cb1aae8db7d601b.tar.xz
rsyslog-b1555cd681652e57f76449e39cb1aae8db7d601b.zip
bugfix: not properly initialized data could cause several segfaults if
there were errors in the config file - thanks to varmojfekoj for the patch
-rw-r--r--conf.c1
-rw-r--r--omfile.c5
2 files changed, 4 insertions, 2 deletions
diff --git a/conf.c b/conf.c
index fd046fb4..49bce213 100644
--- a/conf.c
+++ b/conf.c
@@ -1024,6 +1024,7 @@ static rsRetVal cflineDoAction(uchar **p, action_t **ppAction)
/* loop through all modules and see if one picks up the line */
pMod = module.GetNxtType(NULL, eMOD_OUT);
while(pMod != NULL) {
+ pOMSR = NULL;
iRet = pMod->mod.om.parseSelectorAct(p, &pModData, &pOMSR);
dbgprintf("tried selector action for %s: %d\n", module.GetName(pMod), iRet);
if(iRet == RS_RET_OK || iRet == RS_RET_SUSPENDED) {
diff --git a/omfile.c b/omfile.c
index 99409e56..113dcf80 100644
--- a/omfile.c
+++ b/omfile.c
@@ -356,7 +356,8 @@ static void dynaFileFreeCache(instanceData *pData)
dynaFileDelCacheEntry(pData->dynCache, i, 1);
}
- d_free(pData->dynCache);
+ if(pData->dynCache != NULL)
+ d_free(pData->dynCache);
ENDfunc;
}
@@ -620,7 +621,7 @@ BEGINfreeInstance
CODESTARTfreeInstance
if(pData->bDynamicName) {
dynaFileFreeCache(pData);
- } else
+ } else if(pData->fd != -1)
close(pData->fd);
ENDfreeInstance