diff options
author | Kinsey Moore <kmoore@digium.com> | 2012-08-15 20:18:26 +0000 |
---|---|---|
committer | Kinsey Moore <kmoore@digium.com> | 2012-08-15 20:18:26 +0000 |
commit | 837e00a5cc90699a62e93f15dce463e27ece250e (patch) | |
tree | 974be4dd6c5ef8eed53d5370921f8cc4978156cf | |
parent | 76d642ff69c15a3a1e51d4ae7884f8b98b2dc069 (diff) |
Avoid unconditional NULLing of mwipvt on relatedpeer on SIP dialog destruction
The other instance of this bug was fixed by jcolp/file in r121496. If
we are destroying a dialog only set the MWI dialog pointer on the
related peer to NULL if it is the dialog currently being destroyed.
(closes issue ASTERISK-20119)
Patch-by: Misha Vodsedalek
........
Merged revisions 371270 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 371271 from http://svn.asterisk.org/svn/asterisk/branches/10
........
Merged revisions 371272 from http://svn.asterisk.org/svn/asterisk/branches/11
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@371277 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | channels/chan_sip.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 03f7a447a..3668c253b 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -6115,7 +6115,7 @@ void __sip_destroy(struct sip_pvt *p, int lockowner, int lockdialoglist) } /* Remove link from peer to subscription of MWI */ - if (p->relatedpeer && p->relatedpeer->mwipvt) + if (p->relatedpeer && p->relatedpeer->mwipvt == p) p->relatedpeer->mwipvt = dialog_unref(p->relatedpeer->mwipvt, "delete ->relatedpeer->mwipvt"); if (p->relatedpeer && p->relatedpeer->call == p) p->relatedpeer->call = dialog_unref(p->relatedpeer->call, "unset the relatedpeer->call field in tandem with relatedpeer field itself"); |