diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-04-02 23:26:27 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-04-02 23:26:27 +0000 |
commit | dbaa46812e0457c438ca1b2f838b58ed68634ed9 (patch) | |
tree | ea320dd6ea8d2d7f53035fa9fa7498d94a325291 /apps | |
parent | a34630d549a1fd4c6fa3c083c74ff7ba4ec08003 (diff) |
Resolve app_meetme crash when member tries to mute/unmute (bug #3899)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5362 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rwxr-xr-x | apps/app_meetme.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/apps/app_meetme.c b/apps/app_meetme.c index 52b07ce54..0c7021a62 100755 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -572,7 +572,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c struct ast_conf_user *user = malloc(sizeof(struct ast_conf_user)); struct ast_conf_user *usr = NULL; int fd; - struct zt_confinfo ztc; + struct zt_confinfo ztc, ztc_empty; struct ast_frame *f; struct ast_channel *c; struct ast_frame fr; @@ -790,6 +790,7 @@ zapretry: nfds = 0; } memset(&ztc, 0, sizeof(ztc)); + memset(&ztc_empty, 0, sizeof(ztc_empty)); /* Check to see if we're in a conference... */ ztc.chan = 0; if (ioctl(fd, ZT_GETCONF, &ztc)) { @@ -1078,10 +1079,7 @@ zapretry: ret = 0; break; } else if (((f->frametype == AST_FRAME_DTMF) && (f->subclass == '*') && (confflags & CONFFLAG_STARMENU)) || ((f->frametype == AST_FRAME_DTMF) && menu_active)) { - int oldconfmode = 0; - oldconfmode = ztc.confmode; - ztc.confmode = 0; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + if (ioctl(fd, ZT_SETCONF, &ztc_empty)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); ast_mutex_unlock(&conflock); @@ -1202,7 +1200,7 @@ zapretry: if (musiconhold) { ast_moh_start(chan, NULL); } - ztc.confmode = oldconfmode; + if (ioctl(fd, ZT_SETCONF, &ztc)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); |