]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_voicemail: Clear voice mailbox in MailboxExists and MAILBOX_EXISTS. 85/4185/1
authorJoshua Colp <jcolp@digium.com>
Wed, 26 Oct 2016 12:51:50 +0000 (12:51 +0000)
committerJoshua Colp <jcolp@digium.com>
Wed, 26 Oct 2016 13:16:07 +0000 (08:16 -0500)
When executing the MailboxExists dialplan application and
MAILBOX_EXISTS dialplan function the passed in temporary voice
mailbox was not cleared, causing it to try to free garbage.

ASTERISK-26503 #close

Change-Id: Ie21ccfa1b80b9c59318e596f6b8e17da2b5a7cb3

apps/app_voicemail.c

index 4727e2ee5aff68d4aae731d7153cec327e0c4f56..300dc186d7dd7f7387393124b1d0c63dfe4206db 100644 (file)
@@ -12529,6 +12529,7 @@ static int vm_box_exists(struct ast_channel *chan, const char *data)
                context++;
        }
 
+       memset(&svm, 0, sizeof(svm));
        vmu = find_user(&svm, context, args.mbox);
        if (vmu) {
                pbx_builtin_setvar_helper(chan, "VMBOXEXISTSSTATUS", "SUCCESS");
@@ -12560,6 +12561,7 @@ static int acf_mailbox_exists(struct ast_channel *chan, const char *cmd, char *a
                ast_log(AST_LOG_WARNING, "MAILBOX_EXISTS is deprecated.  Please use ${VM_INFO(%s,exists)} instead.\n", args);
        }
 
+       memset(&svm, 0, sizeof(svm));
        vmu = find_user(&svm, ast_strlen_zero(arg.context) ? "default" : arg.context, arg.mbox);
        ast_copy_string(buf, vmu ? "1" : "0", len);
        free_user(vmu);