app_meetme: Don't erroneously set global variables.

The admin_exec function in app_meetme is used by the SLA
applications for internal bridging. However, in these cases,
chan is NULL. Currently, this function will set some status
variables that are intended for a channel, but since channel
is NULL, this is erroneously creating meaningless global
variables, which shouldn't be happening. This sets these
variables only if chan is not NULL.

ASTERISK-30002 #close

Change-Id: I817df6c26f5bda131678e56791b0b61ba64fc6f7
This commit is contained in:
Naveen Albert 2022-03-31 15:44:23 +00:00 committed by Joshua Colp
parent d75da1de1f
commit 0018f31353
1 changed files with 12 additions and 4 deletions

View File

@ -5239,7 +5239,9 @@ static int admin_exec(struct ast_channel *chan, const char *data) {
if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "MeetMeAdmin requires an argument!\n");
pbx_builtin_setvar_helper(chan, "MEETMEADMINSTATUS", "NOPARSE");
if (chan) {
pbx_builtin_setvar_helper(chan, "MEETMEADMINSTATUS", "NOPARSE");
}
return -1;
}
@ -5248,7 +5250,9 @@ static int admin_exec(struct ast_channel *chan, const char *data) {
if (!args.command) {
ast_log(LOG_WARNING, "MeetmeAdmin requires a command!\n");
pbx_builtin_setvar_helper(chan, "MEETMEADMINSTATUS", "NOPARSE");
if (chan) {
pbx_builtin_setvar_helper(chan, "MEETMEADMINSTATUS", "NOPARSE");
}
return -1;
}
@ -5261,7 +5265,9 @@ static int admin_exec(struct ast_channel *chan, const char *data) {
if (!cnf) {
ast_log(LOG_WARNING, "Conference number '%s' not found!\n", args.confno);
AST_LIST_UNLOCK(&confs);
pbx_builtin_setvar_helper(chan, "MEETMEADMINSTATUS", "NOTFOUND");
if (chan) {
pbx_builtin_setvar_helper(chan, "MEETMEADMINSTATUS", "NOTFOUND");
}
return 0;
}
@ -5384,7 +5390,9 @@ usernotfound:
AST_LIST_UNLOCK(&confs);
dispose_conf(cnf);
pbx_builtin_setvar_helper(chan, "MEETMEADMINSTATUS", res == -2 ? "NOTFOUND" : res ? "FAILED" : "OK");
if (chan) {
pbx_builtin_setvar_helper(chan, "MEETMEADMINSTATUS", res == -2 ? "NOTFOUND" : res ? "FAILED" : "OK");
}
return 0;
}