Merged revisions 80750 via svnmerge from
authorMark Michelson <mmichelson@digium.com>
Fri, 24 Aug 2007 15:53:36 +0000 (15:53 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 24 Aug 2007 15:53:36 +0000 (15:53 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r80750 | mmichelson | 2007-08-24 10:51:03 -0500 (Fri, 24 Aug 2007) | 3 lines

Fix a possible crash in IMAP voicemail.

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80751 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index 43750ed..6c3d1e5 100644 (file)
@@ -4650,7 +4650,7 @@ static int play_message(struct ast_channel *chan, struct ast_vm_user *vmu, struc
        mail_fetchstructure (vms->mailstream,vms->msgArray[vms->curmsg],&body);
        
        /* We have the body, now we extract the file name of the first attachment. */
-       if (body->nested.part->next && body->nested.part->next->body.parameter->value) {
+       if (body->nested.part && body->nested.part->next && body->nested.part->next->body.parameter->value) {
                attachedfilefmt = ast_strdupa(body->nested.part->next->body.parameter->value);
        } else {
                ast_log(LOG_ERROR, "There is no file attached to this IMAP message.\n");
@@ -5049,7 +5049,7 @@ static int imap_retrieve_file (char *dir, int msgnum, char *mailbox, char *conte
        for (i = 0; i < vms_p->mailstream->nmsgs; i++) {
                mail_fetchstructure(vms_p->mailstream, i + 1, &body);
                /* We have the body, now we extract the file name of the first attachment. */
-               if (body->nested.part->next && body->nested.part->next->body.parameter->value) {
+               if (body->nested.part && body->nested.part->next && body->nested.part->next->body.parameter->value) {
                        attachment = ast_strdupa(body->nested.part->next->body.parameter->value);
                } else {
                        ast_log(LOG_ERROR, "There is no file attached to this IMAP message.\n");