pbx: Prevent Realtime switch crash on invalid priority

pbx_extension_helper takes two 'context' arguments. One (con) is a
pointer directly to a 'struct ast_context' and the other (context) is
the name of the context. In all cases, one of these arguments is NULL
and the other is non-NULL.

Functions that are ultimately called by pbx_extension_helper expect that
'context' will be non-NULL, so we set it unconditionally on entry into
this function.

ASTERISK-28534 #close

Change-Id: Ifbbc5e71440afd80efd441f7a9d72e8b10b6f47d
changes/67/12967/1
Sean Bright 6 years ago
parent f156391176
commit 702019fc80

@ -2884,6 +2884,11 @@ static int pbx_extension_helper(struct ast_channel *c, struct ast_context *con,
int matching_action = (action == E_MATCH || action == E_CANMATCH || action == E_MATCHMORE);
ast_rdlock_contexts();
if (!context) {
context = con->name;
}
if (found)
*found = 0;

Loading…
Cancel
Save