From: Mark Spencer Date: Wed, 31 Mar 2004 18:59:42 +0000 (+0000) Subject: Don't die on a bad voicemail conf timezone entry (bug #1326) X-Git-Tag: 1.0.0-rc1~822 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b02c78aaa3b66f47faf5cc0067dc49e70fddb4e;p=thirdparty%2Fasterisk.git Don't die on a bad voicemail conf timezone entry (bug #1326) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2591 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 98a79e13a8..417fa2ef43 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -3422,16 +3422,21 @@ static int load_config(void) msg_format = ast_strdupa(var->value); if (msg_format != NULL) { timezone = strsep(&msg_format, "|"); - strncpy(z->name, var->name, sizeof(z->name) - 1); - strncpy(z->timezone, timezone, sizeof(z->timezone) - 1); - strncpy(z->msg_format, msg_format, sizeof(z->msg_format) - 1); - z->next = NULL; - if (zones) { - zonesl->next = z; - zonesl = z; + if (msg_format) { + strncpy(z->name, var->name, sizeof(z->name) - 1); + strncpy(z->timezone, timezone, sizeof(z->timezone) - 1); + strncpy(z->msg_format, msg_format, sizeof(z->msg_format) - 1); + z->next = NULL; + if (zones) { + zonesl->next = z; + zonesl = z; + } else { + zones = z; + zonesl = z; + } } else { - zones = z; - zonesl = z; + ast_log(LOG_WARNING, "Invalid tonezone definition at line %d\n", var->lineno); + free(z); } } else { ast_log(LOG_WARNING, "Out of memory while reading voicemail config\n");