From: Mark Michelson Date: Wed, 6 Jun 2007 19:26:55 +0000 (+0000) Subject: Fix for Issue 9810. There was a segfault under a specific set of circumstances: X-Git-Tag: 1.4.5~55 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e8900612bece5b8f32a34414e3dcca6517113a04;p=thirdparty%2Fasterisk.git Fix for Issue 9810. There was a segfault under a specific set of circumstances: 1. VoiceMailMain was configured in the dialplan with an extension as its argument 2. A message was left for this mailbox 3. Tried to call VoiceMailMain but hung up before entering password. This was fixed by checking that a pointer was non-null prior to trying to dereference it. (Issue 9810, reported by xmarksthespot, patched by Corydon76 with modifications by me). git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67804 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index f151c507ae..4e24114c3f 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -4839,11 +4839,13 @@ static int close_mailbox(struct vm_state *vms, struct ast_vm_user *vmu) } ast_unlock_path(vms->curdir); #else - for (x=0;x < vmu->maxmsg;x++) { - if (vms->deleted[x]) { - if(option_debug > 2) - ast_log(LOG_DEBUG,"IMAP delete of %d\n",x); - IMAP_DELETE(vms->curdir, x, vms->fn, vms); + if (vms->deleted) { + for (x=0;x < vmu->maxmsg;x++) { + if (vms->deleted[x]) { + if(option_debug > 2) + ast_log(LOG_DEBUG,"IMAP delete of %d\n",x); + IMAP_DELETE(vms->curdir, x, vms->fn, vms); + } } } #endif