From 56a4d03ee20190e06bde13320fce542c4e29a3ee Mon Sep 17 00:00:00 2001 From: Matthew Jordan <mjordan@digium.com> Date: Wed, 12 Jun 2013 02:25:23 +0000 Subject: [PATCH] Fix memory leak while loading priority modules and adding formats This patch fixes two memory leaks: * When we load a module with the LOAD_PRIORITY flag, we remove its entry from the load order list. Unfortunately, we don't free the memory associated with entry in the list. This patch corrects that and properly frees the memory for the module in the list. * When adding a custom format (such as SILK or CELT), the routine for adding the format was leaking a reference. RAII_VAR cleans this up properly. ........ Merged revisions 391489 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@391507 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/format.c | 2 +- main/loader.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/main/format.c b/main/format.c index cea89a2b6a..d04eb054d1 100644 --- a/main/format.c +++ b/main/format.c @@ -916,7 +916,7 @@ int init_framer(void) static int format_list_add_custom(struct ast_format_list *new) { - struct ast_format_list *entry; + RAII_VAR(struct ast_format_list *, entry, NULL, ao2_cleanup); if (!(entry = ao2_alloc(sizeof(*entry), NULL))) { return -1; } diff --git a/main/loader.c b/main/loader.c index 7ad515f8aa..a0bec43eb4 100644 --- a/main/loader.c +++ b/main/loader.c @@ -1035,6 +1035,8 @@ static int load_resource_list(struct load_order *load_order, unsigned int global break; case AST_MODULE_LOAD_PRIORITY: AST_LIST_REMOVE_CURRENT(entry); + ast_free(order->resource); + ast_free(order); break; } } -- GitLab