aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoranthm <anthm@f38db490-d61c-443f-a65b-d21fe96a405b>2004-09-23 14:46:09 +0000
committeranthm <anthm@f38db490-d61c-443f-a65b-d21fe96a405b>2004-09-23 14:46:09 +0000
commit7bc943f4abdfcba5caaf1a99d0008ab149805fdd (patch)
treeeadb6c10604a4658b4f690d3bd258c6816272278
parent937a77c67cc9104deb1a5f27df9d78209b331c17 (diff)
ast_control_streamfile caused seg with null stop or pause chars
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3823 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xapp.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/app.c b/app.c
index 29f446fd5..eb1a37e0a 100755
--- a/app.c
+++ b/app.c
@@ -415,7 +415,7 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char
{
struct timeval started, ended;
long elapsed = 0,last_elapsed =0;
- char *breaks;
+ char *breaks=NULL;
int blen=2;
int res=0;
@@ -424,11 +424,12 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char
if (pause)
blen += strlen(pause);
- breaks = alloca(blen + 1);
- breaks[0] = '\0';
- strcat(breaks, stop);
- strcat(breaks, pause);
-
+ if(blen > 2) {
+ breaks = alloca(blen + 1);
+ breaks[0] = '\0';
+ strcat(breaks, stop);
+ strcat(breaks, pause);
+ }
if (chan->_state != AST_STATE_UP)
res = ast_answer(chan);