summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadalyan Vyacheslav <v.badalyan@open-bs.ru>2016-10-10 12:49:08 -0400
committerJoshua Colp <jcolp@digium.com>2016-10-25 11:45:37 +0000
commit01d1d3763ff931b747bb4d1750c539cee2b57792 (patch)
treedd953331d250f8a13ce3f957f9f1786c9750f02d
parent7c79b057dd3b0a06000b7bdd0583648bfc643b96 (diff)
cdr_radius,cel_radius: Fix old memleak in unload
- Call "rc_openlog" optional. If you do not call, you will simply NULL instead of a name. - On the one PID can be only one syslog channel. And it can already be run in logger.c - Calling rc_openlog we assigns a new name for the channel syslog. This unexpected behavior for logger.c. Most lesser evil, is to agree on a NULL name syslog if the channel was not launched in logger.c. It also solves the problem of memory leaks. ASTERISK-26455 #close Change-Id: Ic17c38de67583e971d78fe18807d1a9faf8f0afd
-rw-r--r--CHANGES10
-rw-r--r--cdr/cdr_radius.c12
-rw-r--r--cel/cel_radius.c12
3 files changed, 10 insertions, 24 deletions
diff --git a/CHANGES b/CHANGES
index 622973c48..5948360da 100644
--- a/CHANGES
+++ b/CHANGES
@@ -34,6 +34,16 @@ res_pjsip
preferred codec rather than advertising all joint codec capabilities.
This limits the other side's codec choice to exactly what we prefer.
+cdr_radius
+------------------
+ * To fix a memory leak the syslog channel is now empty if it has not been set
+ and used by a syslog channel in the logger.
+
+cel_radius
+------------------
+ * To fix a memory leak the syslog channel is now empty if it has not been set
+ and used by a syslog channel in the logger.
+
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 14.1.0 to Asterisk 14.2.0 ----------
------------------------------------------------------------------------------
diff --git a/cdr/cdr_radius.c b/cdr/cdr_radius.c
index e1a639cda..ddde5b890 100644
--- a/cdr/cdr_radius.c
+++ b/cdr/cdr_radius.c
@@ -265,18 +265,6 @@ static int load_module(void)
} else
return AST_MODULE_LOAD_DECLINE;
- /*
- * start logging
- *
- * NOTE: Yes this causes a slight memory leak if the module is
- * unloaded. However, it is better than a crash if cdr_radius
- * and cel_radius are both loaded.
- */
- tmp = ast_strdup("asterisk");
- if (tmp) {
- rc_openlog((char *) tmp);
- }
-
/* read radiusclient-ng config file */
if (!(rh = rc_read_config(radiuscfg))) {
ast_log(LOG_NOTICE, "Cannot load radiusclient-ng configuration file %s.\n", radiuscfg);
diff --git a/cel/cel_radius.c b/cel/cel_radius.c
index 3c20e9780..f6ab89267 100644
--- a/cel/cel_radius.c
+++ b/cel/cel_radius.c
@@ -237,18 +237,6 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE;
}
- /*
- * start logging
- *
- * NOTE: Yes this causes a slight memory leak if the module is
- * unloaded. However, it is better than a crash if cdr_radius
- * and cel_radius are both loaded.
- */
- tmp = ast_strdup("asterisk");
- if (tmp) {
- rc_openlog((char *) tmp);
- }
-
/* read radiusclient-ng config file */
if (!(rh = rc_read_config(radiuscfg))) {
ast_log(LOG_NOTICE, "Cannot load radiusclient-ng configuration file %s.\n", radiuscfg);