diff options
author | Jonathan Rose <jrose@digium.com> | 2013-10-23 20:10:30 +0000 |
---|---|---|
committer | Jonathan Rose <jrose@digium.com> | 2013-10-23 20:10:30 +0000 |
commit | beb5cdbef54908cc1564539f9cfb8852b530f2bc (patch) | |
tree | b996e266a664ff749c2c8c36269934c46216109f | |
parent | d7bac6cf4b981d7e393902227497b51fb47f671e (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.c | 4 | ||||
-rw-r--r-- | funcs/func_math.c | 3 | ||||
-rw-r--r-- | main/editline/readline.c | 7 | ||||
-rw-r--r-- | main/test.c | 1 | ||||
-rw-r--r-- | tests/test_dlinklists.c | 2 |
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) |