mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
logging,cdr,cel: Fix stringfield memory leak.
The stringfields refactor to allow adding stringfields to the end of a
structure (f6f4cf459f
) exposed some
incomplete cleanup code by some stringfield users.
The most noticeable leaker is the logging system where there is a leak for
every log message generated.
ASTERISK-26078 #close
Reported by: Etienne Lessard
Patches:
jira_asterisk_26078_v13.patch (license #5621) patch uploaded
by Richard Mudgett
Change-Id: If6a08b31336b492c3de6f9dfd07c447f8d5a8782
This commit is contained in:
@@ -81,8 +81,10 @@ static AST_RWLIST_HEAD_STATIC(sinks, cdr_custom_config);
|
||||
static void free_config(void)
|
||||
{
|
||||
struct cdr_custom_config *sink;
|
||||
|
||||
while ((sink = AST_RWLIST_REMOVE_HEAD(&sinks, list))) {
|
||||
ast_mutex_destroy(&sink->lock);
|
||||
ast_string_field_free_memory(sink);
|
||||
ast_free(sink);
|
||||
}
|
||||
}
|
||||
|
@@ -76,8 +76,10 @@ static AST_RWLIST_HEAD_STATIC(sinks, cdr_syslog_config);
|
||||
static void free_config(void)
|
||||
{
|
||||
struct cdr_syslog_config *sink;
|
||||
|
||||
while ((sink = AST_RWLIST_REMOVE_HEAD(&sinks, list))) {
|
||||
ast_mutex_destroy(&sink->lock);
|
||||
ast_string_field_free_memory(sink);
|
||||
ast_free(sink);
|
||||
}
|
||||
}
|
||||
|
@@ -71,8 +71,10 @@ static AST_RWLIST_HEAD_STATIC(sinks, cel_config);
|
||||
static void free_config(void)
|
||||
{
|
||||
struct cel_config *sink;
|
||||
|
||||
while ((sink = AST_RWLIST_REMOVE_HEAD(&sinks, list))) {
|
||||
ast_mutex_destroy(&sink->lock);
|
||||
ast_string_field_free_memory(sink);
|
||||
ast_free(sink);
|
||||
}
|
||||
}
|
||||
|
@@ -168,6 +168,7 @@ static void logmsg_free(struct logmsg *msg)
|
||||
if (msg->callid) {
|
||||
ast_callid_unref(msg->callid);
|
||||
}
|
||||
ast_string_field_free_memory(msg);
|
||||
ast_free(msg);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user