diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-12-11 04:57:38 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-12-11 04:57:38 +0000 |
commit | 045e7444050bcb7f8c80f15240cec5c5e90b7573 (patch) | |
tree | 656ab719b91442372f3d84cdffaf5e2fbd53d50d | |
parent | 5d5b0ca48b0d770e792cde1fedb041f4c759426e (diff) |
Don't access the conference structure after it has been freed.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@48377 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | apps/app_meetme.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/apps/app_meetme.c b/apps/app_meetme.c index c67d6e94d..5aae656d8 100644 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -1927,6 +1927,13 @@ bailoutandtrynormal: conf->markedusers--; /* Remove ourselves from the list */ AST_LIST_REMOVE(&conf->userlist, user, list); + + /* Change any states */ + if (!conf->users) + ast_device_state_changed("meetme:%s", conf->confno); + if (confflags & (CONFFLAG_SLA_STATION|CONFFLAG_SLA_TRUNK)) + st_device_state_changed("SLA:%s", conf->confno + 4); + if (AST_LIST_EMPTY(&conf->userlist)) { /* close this one when no more users and no references*/ if (!conf->refcount) @@ -1935,12 +1942,6 @@ bailoutandtrynormal: /* Return the number of seconds the user was in the conf */ snprintf(meetmesecs, sizeof(meetmesecs), "%d", (int) (time(NULL) - user->jointime)); pbx_builtin_setvar_helper(chan, "MEETMESECS", meetmesecs); - - /* This device changed state now */ - if (!conf->users) /* If there are no more members */ - ast_device_state_changed("meetme:%s", conf->confno); - if (confflags & (CONFFLAG_SLA_STATION|CONFFLAG_SLA_TRUNK)) - ast_device_state_changed("SLA:%s", conf->confno + 4); } free(user); AST_LIST_UNLOCK(&confs); |