Merged revisions 121495 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Tue, 10 Jun 2008 13:36:13 +0000 (13:36 +0000)
committerJoshua Colp <jcolp@digium.com>
Tue, 10 Jun 2008 13:36:13 +0000 (13:36 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r121495 | file | 2008-06-10 10:34:27 -0300 (Tue, 10 Jun 2008) | 4 lines

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 #12828)
Reported by: ramonpeek

........

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

channels/chan_sip.c

index 6da662f..0962fc7 100644 (file)
@@ -2485,7 +2485,7 @@ static void *dialog_unlink_all(struct sip_pvt *dialog, int lockowner, int lockdi
                dialog->stateid = -1; /* shouldn't we 'zero' this out? */
        }
        /* Remove link from peer to subscription of MWI */
-       if (dialog->relatedpeer && dialog->relatedpeer->mwipvt)
+       if (dialog->relatedpeer && dialog->relatedpeer->mwipvt == dialog)
                dialog->relatedpeer->mwipvt = dialog_unref(dialog->relatedpeer->mwipvt, "delete ->relatedpeer->mwipvt");
        if (dialog->relatedpeer && dialog->relatedpeer->call == dialog)
                dialog->relatedpeer->call = dialog_unref(dialog->relatedpeer->call, "unset the relatedpeer->call field in tandem with relatedpeer field itself");