summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-03-19 17:35:09 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2008-03-19 17:35:09 +0000
commit81d32abb341f087ce6d1d05ed8ed12949a69654d (patch)
tree37c6f73664c88c1f62e82860c4b6ceb16b3f668d
parent53cd617ee98ae15501e8f3ef8dbeb99f77715132 (diff)
downloadrsyslog-81d32abb341f087ce6d1d05ed8ed12949a69654d.tar.gz
rsyslog-81d32abb341f087ce6d1d05ed8ed12949a69654d.tar.xz
rsyslog-81d32abb341f087ce6d1d05ed8ed12949a69654d.zip
bugfix: imklog leaked several hundered KB on each HUP. Thanks to
varmojfekoj for the patch
-rw-r--r--ChangeLog2
-rw-r--r--plugins/imklog/imklog.c3
-rw-r--r--plugins/imklog/imklog.h2
-rw-r--r--plugins/imklog/ksym.c6
-rw-r--r--plugins/imklog/ksym_mod.c6
5 files changed, 19 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index eb56667b..a64fde44 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
Version 3.12.4 (rgerhards), 2008-03-??
- added flow control options to other input sources
- bugfix/doc: removed no longer supported -h option from man page
+- bugfix: imklog leaked several hundered KB on each HUP. Thanks to
+ varmojfekoj for the patch
---------------------------------------------------------------------------
Version 3.12.3 (rgerhards), 2008-03-18
- added advanced flow control for congestion cases (mode depending on message
diff --git a/plugins/imklog/imklog.c b/plugins/imklog/imklog.c
index 02a4a348..bfea8c6f 100644
--- a/plugins/imklog/imklog.c
+++ b/plugins/imklog/imklog.c
@@ -642,6 +642,9 @@ CODESTARTafterRun
/* cleanup here */
if(logsrc != none)
CloseLogSrc();
+
+ DeinitKsyms();
+ DeinitMsyms();
ENDafterRun
diff --git a/plugins/imklog/imklog.h b/plugins/imklog/imklog.h
index d9bd3c02..2db75009 100644
--- a/plugins/imklog/imklog.h
+++ b/plugins/imklog/imklog.h
@@ -33,7 +33,9 @@ extern int dbgPrintSymbols;
/* 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);
diff --git a/plugins/imklog/ksym.c b/plugins/imklog/ksym.c
index d8891479..c9fd7147 100644
--- a/plugins/imklog/ksym.c
+++ b/plugins/imklog/ksym.c
@@ -269,6 +269,12 @@ extern int InitKsyms(char *mapfile)
}
+extern void DeinitKsyms(void)
+{
+ FreeSymbols();
+}
+
+
/**************************************************************************
* Function: FindSymbolFile
*
diff --git a/plugins/imklog/ksym_mod.c b/plugins/imklog/ksym_mod.c
index a8f4790e..3c7e0e45 100644
--- a/plugins/imklog/ksym_mod.c
+++ b/plugins/imklog/ksym_mod.c
@@ -279,6 +279,12 @@ static int symsort(const void *p1, const void *p2)
}
+extern void DeinitMsyms(void)
+{
+ FreeModules();
+}
+
+
/**************************************************************************
* Function: FreeModules
*