diff --git a/.cvsignore b/.cvsignore index b2661a1..21aea51 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,4 +1,4 @@ -rsyslog-3.12.1.tar.gz +rsyslog-3.12.3.tar.gz rsyslog.conf rsyslog.init rsyslog.sysconfig diff --git a/rsyslog-3.12.1-omfile.patch b/rsyslog-3.12.1-omfile.patch deleted file mode 100644 index 31bc983..0000000 --- a/rsyslog-3.12.1-omfile.patch +++ /dev/null @@ -1,33 +0,0 @@ -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) { diff --git a/rsyslog-3.12.3-imklogleak.patch b/rsyslog-3.12.3-imklogleak.patch new file mode 100644 index 0000000..a5acb0d --- /dev/null +++ b/rsyslog-3.12.3-imklogleak.patch @@ -0,0 +1,54 @@ +--- rsyslog-3.12.3/plugins/imklog/ksym.c.leak 2008-03-18 23:37:23.000000000 +0100 ++++ rsyslog-3.12.3/plugins/imklog/ksym.c 2008-03-18 23:42:49.000000000 +0100 +@@ -269,6 +269,12 @@ + } + + ++extern void DeinitKsyms(void) ++{ ++ FreeSymbols(); ++} ++ ++ + /************************************************************************** + * Function: FindSymbolFile + * +--- rsyslog-3.12.3/plugins/imklog/imklog.h.leak 2008-03-18 23:36:57.000000000 +0100 ++++ rsyslog-3.12.3/plugins/imklog/imklog.h 2008-03-18 23:41:03.000000000 +0100 +@@ -33,7 +33,9 @@ + + /* prototypes */ + extern int InitKsyms(char *); ++extern void DeinitKsyms(void); + extern int InitMsyms(void); ++extern void DeinitMsyms(void); + extern char * ExpandKadds(char *, char *); + extern void SetParanoiaLevel(int); + extern void vsyslog(int pri, const char *fmt, va_list ap); +--- rsyslog-3.12.3/plugins/imklog/imklog.c.leak 2008-03-18 23:37:50.000000000 +0100 ++++ rsyslog-3.12.3/plugins/imklog/imklog.c 2008-03-18 23:42:22.000000000 +0100 +@@ -642,6 +642,9 @@ + /* cleanup here */ + if(logsrc != none) + CloseLogSrc(); ++ ++ DeinitKsyms(); ++ DeinitMsyms(); + ENDafterRun + + +--- rsyslog-3.12.3/plugins/imklog/ksym_mod.c.leak 2008-03-18 23:37:34.000000000 +0100 ++++ rsyslog-3.12.3/plugins/imklog/ksym_mod.c 2008-03-18 23:42:56.000000000 +0100 +@@ -279,6 +279,12 @@ + } + + ++extern void DeinitMsyms(void) ++{ ++ FreeModules(); ++} ++ ++ + /************************************************************************** + * Function: FreeModules + * diff --git a/rsyslog-3.12.3-objinfo.patch b/rsyslog-3.12.3-objinfo.patch new file mode 100644 index 0000000..9b80a21 --- /dev/null +++ b/rsyslog-3.12.3-objinfo.patch @@ -0,0 +1,11 @@ +diff -up rsyslog-3.12.3/modules.c.objinfo rsyslog-3.12.3/modules.c +--- rsyslog-3.12.3/modules.c.objinfo 2008-03-18 18:21:48.000000000 +0100 ++++ rsyslog-3.12.3/modules.c 2008-03-18 18:22:14.000000000 +0100 +@@ -700,7 +700,6 @@ Release(char *srcFile, modInfo_t **ppThi + /* we have a zero refcount, so we must unload the module */ + dbgprintf("module '%s' has zero reference count, unloading...\n", pThis->pszName); + modUnlinkAndDestroy(&pThis); +- *ppThis = NULL; /* nobody can access it any longer! */ + } + + RETiRet; diff --git a/rsyslog.spec b/rsyslog.spec index fe35b0d..b487a10 100644 --- a/rsyslog.spec +++ b/rsyslog.spec @@ -2,8 +2,8 @@ Summary: Enhanced system logging and kernel message trapping daemons Name: rsyslog -Version: 3.12.1 -Release: 2%{?dist} +Version: 3.12.3 +Release: 1%{?dist} License: GPLv3+ Group: System Environment/Daemons URL: http://www.rsyslog.com/ @@ -12,7 +12,8 @@ Source1: rsyslog.init Source2: rsyslog.conf Source3: rsyslog.sysconfig Patch1: rsyslog-3.11.4-undef.patch -Patch2: rsyslog-3.12.1-omfile.patch +Patch2: rsyslog-3.12.3-imklogleak.patch +Patch3: rsyslog-3.12.3-objinfo.patch BuildRequires: zlib-devel BuildRequires: autoconf automake Requires: logrotate >= 3.5.2 @@ -68,10 +69,16 @@ authentication. %prep %setup -q %patch1 -p1 -b .undef -%patch2 -p1 -b .omfile +%patch2 -p1 -b .imklogleak +%patch3 -p1 -b .objinfo %build -%configure --sbindir=%{sbindir} --disable-static --enable-mysql --enable-pgsql --enable-gssapi-krb5 +%configure --sbindir=%{sbindir} \ + --disable-static \ + --enable-mysql \ + --enable-pgsql \ + --enable-gssapi-krb5 \ + --enable-imfile make %{?_smp_mflags} %install @@ -123,10 +130,14 @@ fi %{_libdir}/rsyslog/imklog.so %{_libdir}/rsyslog/immark.so %{_libdir}/rsyslog/imtcp.so -%{_libdir}/rsyslog/tcpsrv.so %{_libdir}/rsyslog/imudp.so %{_libdir}/rsyslog/imuxsock.so +%{_libdir}/rsyslog/imfile.so %{_libdir}/rsyslog/omtesting.so +%{_libdir}/rsyslog/lmnet.so +%{_libdir}/rsyslog/lmregexp.so +%{_libdir}/rsyslog/lmtcpclt.so +%{_libdir}/rsyslog/lmtcpsrv.so %config %{_sysconfdir}/rsyslog.conf %config %{_sysconfdir}/sysconfig/rsyslog %config(noreplace) %{_sysconfdir}/logrotate.d/syslog @@ -147,11 +158,15 @@ fi %files gssapi %defattr(-,root,root) -%{_libdir}/rsyslog/gssutil.so +%{_libdir}/rsyslog/lmgssutil.so %{_libdir}/rsyslog/imgssapi.so %{_libdir}/rsyslog/omgssapi.so %changelog +* Wed Mar 19 2008 Peter Vrabec 3.12.3-1 +- upgrade +- fix some significant memory leaks + * Tue Mar 11 2008 Peter Vrabec 3.12.1-2 - init script fixes (#436854) - fix config file parsing (#436722) diff --git a/sources b/sources index 6c7dc95..9610ad6 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -12c743b21a0984467bc4c05b6ee887e2 rsyslog-3.12.1.tar.gz +a4df17b87cae167db488648726656068 rsyslog-3.12.3.tar.gz 9730674162e08bcc88503a19e21ac2d4 rsyslog.conf -04f3868aa518d33809f5943d7bc2fc0b rsyslog.sysconfig 8121efe30193878a7315fe12c25cc292 rsyslog.init +04f3868aa518d33809f5943d7bc2fc0b rsyslog.sysconfig