Fix app_chanisavail.c when passed string is big (bug #1139)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2295 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.0
James Golovich 22 years ago
parent 4cd13f4ebf
commit 40ec19961c

@ -38,9 +38,9 @@ static char *synopsis = "Check if channel is available";
static char *descrip = static char *descrip =
" ChanIsAvail(Technology/resource[&Technology2/resource2...]): \n" " ChanIsAvail(Technology/resource[&Technology2/resource2...]): \n"
"Checks is any of the requested channels are available. If none\n" "Checks is any of the requested channels are available. If none\n"
"of the requested channels are available the new priority will\n" "of the requested channels are available the new priority will be\n"
"be n+101 (unless such a priority does not exist, in which case\n" "n+101 (unless such a priority does not exist or on error, in which\n"
"ChanIsAvail will return -1. If any of the requested channels\n" "case ChanIsAvail will return -1). If any of the requested channels\n"
"are available, the next priority will be n+1, the channel variable\n" "are available, the next priority will be n+1, the channel variable\n"
"${AVAILCHAN} will be set to the name of the available channel and\n" "${AVAILCHAN} will be set to the name of the available channel and\n"
"the ChanIsAvail app will return 0.\n"; "the ChanIsAvail app will return 0.\n";
@ -53,7 +53,7 @@ static int chanavail_exec(struct ast_channel *chan, void *data)
{ {
int res=-1; int res=-1;
struct localuser *u; struct localuser *u;
char info[256], *peers, *tech, *number, *rest, *cur; char info[512], *peers, *tech, *number, *rest, *cur;
struct ast_channel *tempchan; struct ast_channel *tempchan;
if (!data) { if (!data) {
@ -62,7 +62,7 @@ static int chanavail_exec(struct ast_channel *chan, void *data)
} }
LOCAL_USER_ADD(u); LOCAL_USER_ADD(u);
strncpy(info, (char *)data, strlen((char *)data) + AST_MAX_EXTENSION-1); strncpy(info, (char *)data, sizeof(info)-1);
peers = info; peers = info;
if (peers) { if (peers) {
cur = peers; cur = peers;

Loading…
Cancel
Save