summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Rose <jrose@digium.com>2013-10-23 20:10:30 +0000
committerJonathan Rose <jrose@digium.com>2013-10-23 20:10:30 +0000
commitbeb5cdbef54908cc1564539f9cfb8852b530f2bc (patch)
treeb996e266a664ff749c2c8c36269934c46216109f
parentd7bac6cf4b981d7e393902227497b51fb47f671e (diff)
memory leaks: Memory leak cleanup patch by Corey Farrell (first set)
(issue ASTERSIK-22467) Reported by: Corey Farrell Patches: chan_sip-parse_contact_header_test-free-contacts.patch uploaded by coreyfarrell (license 5909) cli-filename-completion-leak.patch uploaded by coreyfarrell (license 5909) func_math.patch uploaded by corefarrell (license 5909) main-test-cleanup.patch uploaded by coreyfarrell (license 5909) test_dlinklists.patch uploaded by coreyfarrell (license 5909) ........ Merged revisions 401660 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 401661 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 401662 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@401663 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/sip/reqresp_parser.c4
-rw-r--r--funcs/func_math.c3
-rw-r--r--main/editline/readline.c7
-rw-r--r--main/test.c1
-rw-r--r--tests/test_dlinklists.c2
5 files changed, 16 insertions, 1 deletions
diff --git a/channels/sip/reqresp_parser.c b/channels/sip/reqresp_parser.c
index ac986aa59..7d4445784 100644
--- a/channels/sip/reqresp_parser.c
+++ b/channels/sip/reqresp_parser.c
@@ -1562,6 +1562,10 @@ AST_TEST_DEFINE(parse_contact_header_test)
contactptr = AST_LIST_NEXT(contactptr,list);
}
+
+ while ((contactptr = AST_LIST_REMOVE_HEAD(contactlistptr,list))) {
+ ast_free(contactptr);
+ }
}
}
diff --git a/funcs/func_math.c b/funcs/func_math.c
index 05321b719..36f3fc48a 100644
--- a/funcs/func_math.c
+++ b/funcs/func_math.c
@@ -503,6 +503,9 @@ AST_TEST_DEFINE(test_MATH_function)
res = AST_TEST_FAIL;
}
+ ast_free(expr);
+ ast_free(result);
+
return res;
}
#endif
diff --git a/main/editline/readline.c b/main/editline/readline.c
index adf054d63..d202adbbd 100644
--- a/main/editline/readline.c
+++ b/main/editline/readline.c
@@ -1236,8 +1236,11 @@ filename_completion_function(const char *text, int state)
filename_len = strlen(filename);
dir = opendir(dirname ? dirname : ".");
- if (!dir)
+ if (!dir) {
+ free(filename);
+ free(dirname);
return (NULL); /* cannot open the directory */
+ }
/* find the match */
while ((entry = readdir(dir)) != NULL) {
@@ -1274,6 +1277,8 @@ filename_completion_function(const char *text, int state)
} else
temp = NULL;
closedir(dir);
+ free(filename);
+ free(dirname);
return (temp);
}
diff --git a/main/test.c b/main/test.c
index fdc4916e1..94713e0e7 100644
--- a/main/test.c
+++ b/main/test.c
@@ -1053,6 +1053,7 @@ void __ast_test_suite_event_notify(const char *file, const char *func, int line,
static void test_cleanup(void)
{
+ ast_cli_unregister_multiple(test_cli, ARRAY_LEN(test_cli));
ao2_cleanup(test_suite_topic);
test_suite_topic = NULL;
STASIS_MESSAGE_TYPE_CLEANUP(ast_test_suite_message_type);
diff --git a/tests/test_dlinklists.c b/tests/test_dlinklists.c
index ec13851d7..197dd757a 100644
--- a/tests/test_dlinklists.c
+++ b/tests/test_dlinklists.c
@@ -337,6 +337,7 @@ static void dll_tests(void)
if (e == b) {
AST_DLLIST_REMOVE_CURRENT(list); /* C A */
+ free(b);
print_list(tc, "C <=> A");
}
if (e == a) {
@@ -348,6 +349,7 @@ static void dll_tests(void)
AST_DLLIST_TRAVERSE_SAFE_END;
print_list(tc, "C <=> A <=> D");
+ destroy_test_container(tc);
}
static int unload_module(void)