diff options
author | George Joseph <george.joseph@fairview5.com> | 2014-02-20 21:04:28 +0000 |
---|---|---|
committer | George Joseph <george.joseph@fairview5.com> | 2014-02-20 21:04:28 +0000 |
commit | 31a18c14b8cbb2e84a4d5093fd681e14fdf9ee23 (patch) | |
tree | 0d5f4ac0db909149336f5f2f9e97c4bf17c82eb5 /main/config.c | |
parent | a94c8562fd70bc5b317a434db36f19fd34c70f8c (diff) |
pjsip_cli: Fix memory leak in ast_sip_cli_print_sorcery_objectset.
Fixed memory leaks in ast_sip_cli_print_sorcery_objectset and
ast_variable_list_sort.
(closes issue ASTERISK-23266)
Review: http://reviewboard.asterisk.org/r/3200/
........
Merged revisions 408520 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@408521 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/config.c')
-rw-r--r-- | main/config.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/main/config.c b/main/config.c index a45f57311..8961fa9e3 100644 --- a/main/config.c +++ b/main/config.c @@ -596,19 +596,19 @@ inline struct ast_variable *variable_list_switch(struct ast_variable *l1, struct struct ast_variable *ast_variable_list_sort(struct ast_variable *start) { - struct ast_variable *p, *q, *top; + struct ast_variable *p, *q; + struct ast_variable top; int changed = 1; - top = ast_calloc(1, sizeof(struct ast_variable)); - top->next = start; + memset(&top, 0, sizeof(top)); + top.next = start; if (start != NULL && start->next != NULL) { while (changed) { changed = 0; - q = top; - p = top->next; + q = ⊤ + p = top.next; while (p->next != NULL) { if (p->next != NULL && strcmp(p->name, p->next->name) > 0) { q->next = variable_list_switch(p, p->next); - changed = 1; } q = p; @@ -617,7 +617,7 @@ struct ast_variable *ast_variable_list_sort(struct ast_variable *start) } } } - return top->next; + return top.next; } const char *ast_config_option(struct ast_config *cfg, const char *cat, const char *var) |