res_pjsip_exten_state: PJSIPShowSubscriptionsInbound causes crash
authorKevin Harwell <kharwell@digium.com>
Thu, 30 Oct 2014 21:14:01 +0000 (21:14 +0000)
committerKevin Harwell <kharwell@digium.com>
Thu, 30 Oct 2014 21:14:01 +0000 (21:14 +0000)
Currently, it is possible for some subscriptions to get into a NULL state. When
this occurs and the PJSIPShowSubscriptionsInbound ami action is issued and a
device is subscribed for extension state then the associated subscription state
object can't be located.  The code then attempts to dereference a NULL object.
Added a NULL check to avoid the problem.

Reported by: John Bigelow
........

Merged revisions 426779 from http://svn.asterisk.org/svn/asterisk/branches/12
........

Merged revisions 426780 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@426781 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_pjsip_exten_state.c

index 6b8ee6c..332f45b 100644 (file)
@@ -457,6 +457,10 @@ static void to_ami(struct ast_sip_subscription *sub,
        struct exten_state_subscription *exten_state_sub =
                get_exten_state_sub(sub);
 
+       if (!exten_state_sub) {
+               return;
+       }
+
        ast_str_append(buf, 0, "SubscriptionType: extension_state\r\n"
                       "Extension: %s\r\nExtensionStates: %s\r\n",
                       exten_state_sub->exten, ast_extension_state2str(