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
changes/59/4059/5
Badalyan Vyacheslav 9 years ago committed by Joshua Colp
parent 7c79b057dd
commit 01d1d3763f

@ -34,6 +34,16 @@ res_pjsip
preferred codec rather than advertising all joint codec capabilities. preferred codec rather than advertising all joint codec capabilities.
This limits the other side's codec choice to exactly what we prefer. 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 ---------- --- Functionality changes from Asterisk 14.1.0 to Asterisk 14.2.0 ----------
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

@ -265,18 +265,6 @@ static int load_module(void)
} else } else
return AST_MODULE_LOAD_DECLINE; 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 */ /* read radiusclient-ng config file */
if (!(rh = rc_read_config(radiuscfg))) { if (!(rh = rc_read_config(radiuscfg))) {
ast_log(LOG_NOTICE, "Cannot load radiusclient-ng configuration file %s.\n", radiuscfg); ast_log(LOG_NOTICE, "Cannot load radiusclient-ng configuration file %s.\n", radiuscfg);

@ -237,18 +237,6 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE; 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 */ /* read radiusclient-ng config file */
if (!(rh = rc_read_config(radiuscfg))) { if (!(rh = rc_read_config(radiuscfg))) {
ast_log(LOG_NOTICE, "Cannot load radiusclient-ng configuration file %s.\n", radiuscfg); ast_log(LOG_NOTICE, "Cannot load radiusclient-ng configuration file %s.\n", radiuscfg);

Loading…
Cancel
Save