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.
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 ----------
------------------------------------------------------------------------------

@ -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);

@ -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);

Loading…
Cancel
Save