Also unref the pvt when we delete the provisional keepalive job.
authorTilghman Lesher <tilghman@meg.abyt.es>
Tue, 13 Apr 2010 19:17:48 +0000 (19:17 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Tue, 13 Apr 2010 19:17:48 +0000 (19:17 +0000)
(closes issue #16774)
 Reported by: kowalma
 Patches:
       20100315__issue16774.diff.txt uploaded by tilghman (license 14)
 Tested by: falves11, jamicque

Review: https://reviewboard.asterisk.org/r/591/

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

channels/chan_sip.c

index e8d9e45..99f914f 100644 (file)
@@ -5676,7 +5676,7 @@ static int sip_hangup(struct ast_channel *ast)
                                }
                        } else {        /* Incoming call, not up */
                                const char *res;
-                               AST_SCHED_DEL(sched, p->provisional_keepalive_sched_id);
+                               AST_SCHED_DEL_UNREF(sched, p->provisional_keepalive_sched_id, dialog_unref(p, "when you delete the provisional_keepalive_sched_id, you should dec the refcount for the stored dialog ptr"));
                                if (p->hangupcause && (res = hangup_cause2sip(p->hangupcause)))
                                        transmit_response_reliable(p, res, &p->initreq);
                                else