]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
pbx: Prevent Realtime switch crash on invalid priority
authorSean Bright <sean.bright@gmail.com>
Wed, 25 Sep 2019 16:01:33 +0000 (12:01 -0400)
committerSean Bright <sean.bright@gmail.com>
Wed, 25 Sep 2019 16:08:37 +0000 (12:08 -0400)
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

main/pbx.c

index a2ca1f55b9720f7043a2ff1d2f1bc471ddf72be8..d4ba2d2f69c918c3fe404a0e438e5cb6baa7e790 100644 (file)
@@ -2844,6 +2844,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;