diff -up rsyslog-3.12.1/omfile.c.orig rsyslog-3.12.1/omfile.c --- rsyslog-3.12.1/omfile.c.orig 2008-03-11 11:20:02.000000000 +0100 +++ rsyslog-3.12.1/omfile.c 2008-03-11 11:23:46.000000000 +0100 @@ -356,7 +356,8 @@ static void dynaFileFreeCache(instanceDa 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 diff -up rsyslog-3.12.1/conf.c.orig rsyslog-3.12.1/conf.c --- rsyslog-3.12.1/conf.c.orig 2008-03-11 11:13:00.000000000 +0100 +++ rsyslog-3.12.1/conf.c 2008-03-11 11:13:18.000000000 +0100 @@ -1024,6 +1024,7 @@ static rsRetVal cflineDoAction(uchar **p /* 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) {