Skip to content
Snippets Groups Projects
Commit dc04d1ec authored by Corey Farrell's avatar Corey Farrell
Browse files

app_voicemail: Fix memory management issues.

* mwi_sub_event_cb: mwist leaked on separate_mailbox failure.
* add_email_attachment: A reference to sox_gain_tmpdir was used
  after the storage was out of scope.

Change-Id: I6282c542ff7b82fa091177a912d11234a8b00a30
parent 7b127e2d
Branches
Tags
No related merge requests found
...@@ -5390,6 +5390,7 @@ plain_message: ...@@ -5390,6 +5390,7 @@ plain_message:
static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format, char *attach, char *greeting_attachment, char *mailbox, char *bound, char *filename, int last, int msgnum) static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format, char *attach, char *greeting_attachment, char *mailbox, char *bound, char *filename, int last, int msgnum)
{ {
char fname[PATH_MAX] = ""; char fname[PATH_MAX] = "";
char sox_gain_tmpdir[PATH_MAX];
char *file_to_delete = NULL, *dir_to_delete = NULL; char *file_to_delete = NULL, *dir_to_delete = NULL;
int res; int res;
   
...@@ -5399,7 +5400,6 @@ static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format, ...@@ -5399,7 +5400,6 @@ static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format,
/* This 'while' loop will only execute once. We use it so that we can 'break' */ /* This 'while' loop will only execute once. We use it so that we can 'break' */
while (vmu->volgain < -.001 || vmu->volgain > .001) { while (vmu->volgain < -.001 || vmu->volgain > .001) {
char tmpdir[PATH_MAX]; char tmpdir[PATH_MAX];
char sox_gain_tmpdir[PATH_MAX];
   
create_dirpath(tmpdir, sizeof(tmpdir), vmu->context, vmu->mailbox, "tmp"); create_dirpath(tmpdir, sizeof(tmpdir), vmu->context, vmu->mailbox, "tmp");
   
...@@ -13167,6 +13167,7 @@ static void mwi_sub_event_cb(struct stasis_subscription_change *change) ...@@ -13167,6 +13167,7 @@ static void mwi_sub_event_cb(struct stasis_subscription_change *change)
} }
   
if (separate_mailbox(ast_strdupa(stasis_topic_name(change->topic)), &mailbox, &context)) { if (separate_mailbox(ast_strdupa(stasis_topic_name(change->topic)), &mailbox, &context)) {
ast_free(mwist);
return; return;
} }
   
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment