dect
/
asterisk
Archived
13
0
Fork 0

Merged revisions 139213 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r139213 | russell | 2008-08-20 17:14:35 -0500 (Wed, 20 Aug 2008) | 11 lines

Fix a crash in the ChanSpy application.  The issue here is that if you call
ChanSpy and specify a spy group, and sit in the application long enough looping
through the channel list, you will eventually run out of stack space and the
application with exit with a seg fault.  The backtrace was always inside of
a harmless snprintf() call, so it was tricky to track down.  However, it turned
out that the call to snprintf() was just the biggest stack consumer in this
code path, so it would always be the first one to hit the boundary.

(closes issue #13338)
Reported by: ruddy

........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@139215 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
russell 2008-08-20 22:16:36 +00:00
parent a886b820c1
commit 31d09879fe
1 changed files with 2 additions and 2 deletions

View File

@ -713,7 +713,7 @@ static int common_exec(struct ast_channel *chan, struct ast_flags *flags,
char *groups[NUM_SPYGROUPS];
char *mygroups[NUM_SPYGROUPS];
int num_groups = 0;
char *dup_group;
char dup_group[512];
int num_mygroups = 0;
char *dup_mygroup;
int x;
@ -757,7 +757,7 @@ static int common_exec(struct ast_channel *chan, struct ast_flags *flags,
ARRAY_LEN(mygroups));
if ((group = pbx_builtin_getvar_helper(peer, "SPYGROUP"))) {
dup_group = ast_strdupa(group);
ast_copy_string(dup_group, group, sizeof(dup_group));
num_groups = ast_app_separate_args(dup_group, ':', groups,
ARRAY_LEN(groups));
}