diff options
author | Kinsey Moore <kmoore@digium.com> | 2011-11-14 15:11:09 +0000 |
---|---|---|
committer | Kinsey Moore <kmoore@digium.com> | 2011-11-14 15:11:09 +0000 |
commit | 818ac23b928497b2550127d7743bd9d362c5a8c4 (patch) | |
tree | d1338647d28740c50767609b35e88887e0f9f421 /channels/chan_sip.c | |
parent | f436a6f27ce27eae8f832e975a9554cc7eaab566 (diff) |
Ensure that a null vmexten does not cause a segfault
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
........
Merged revisions 345064 from http://svn.asterisk.org/svn/asterisk/branches/10
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@345065 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r-- | channels/chan_sip.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 8d531c4a9..fa6b6ea4c 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -26001,11 +26001,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); |