]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Ensure that a null vmexten does not cause a segfault
authorKinsey Moore <kmoore@digium.com>
Mon, 14 Nov 2011 15:10:38 +0000 (15:10 +0000)
committerKinsey Moore <kmoore@digium.com>
Mon, 14 Nov 2011 15:10:38 +0000 (15:10 +0000)
When sip_send_mwi_to_peer was modified recently to avoid deadlocks, vmexten
was not expected to be null.  This change handles that situation to avoid
a segfault.
........

Merged revisions 345063 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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

channels/chan_sip.c

index 61bd672830cfda2f080ac1352a656b3dcf172b2c..92ce5a6caa7b734259650d2d46069dd3087a7ff8 100644 (file)
@@ -25952,11 +25952,13 @@ static int sip_send_mwi_to_peer(struct sip_peer *peer, int cache_only)
        /* Called with peerl lock, but releases it */
        struct sip_pvt *p;
        int newmsgs = 0, oldmsgs = 0;
-       const char *vmexten;
+       const char *vmexten = NULL;
 
        ao2_lock(peer);
 
-       vmexten = ast_strdupa(peer->vmexten);
+       if (peer->vmexten) {
+               vmexten = ast_strdupa(peer->vmexten);
+       }
 
        if (ast_test_flag((&peer->flags[1]), SIP_PAGE2_SUBSCRIBEMWIONLY) && !peer->mwipvt) {
                ao2_unlock(peer);