diff options
author | Jeff Peeler <jpeeler@digium.com> | 2008-06-08 01:16:25 +0000 |
---|---|---|
committer | Jeff Peeler <jpeeler@digium.com> | 2008-06-08 01:16:25 +0000 |
commit | c1b88b3cf45525d5e99540f64767b907b9c11598 (patch) | |
tree | d26456d4a4fdf4d07a7cf1b5dd08467b69c2f854 /apps | |
parent | 96233af5dcd14a90275348591e77005c66e685b9 (diff) |
Fixes segfault when using ParkAndAnnounce. Also, loop made more efficient as announce template only needs to be checked until the number of colon separated arguments run out, not the entire pointer storage array. Was done in a similiar fashion in 1.4, but here we're using less variables.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@121131 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_parkandannounce.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/apps/app_parkandannounce.c b/apps/app_parkandannounce.c index d1066fd2c..45740d901 100644 --- a/apps/app_parkandannounce.c +++ b/apps/app_parkandannounce.c @@ -144,9 +144,12 @@ static int parkandannounce_exec(struct ast_channel *chan, void *data) ast_verb(4, "Announce Template:%s\n", args.template); - for (looptemp = 0, tmp[looptemp++] = strsep(&args.template, ":"); - looptemp < sizeof(tmp) / sizeof(tmp[0]); - tmp[looptemp++] = strsep(&args.template, ":")); + for (looptemp = 0; looptemp < sizeof(tmp) / sizeof(tmp[0]); looptemp++) { + if ((tmp[looptemp] = strsep(&args.template, ":")) != NULL) + continue; + else + break; + } for (i = 0; i < looptemp; i++) { ast_verb(4, "Announce:%s\n", tmp[i]); |