SIP Notify via AMI or CLI leaks SIP PVTs

Any SIP notify sent via AMI or CLI leaks a SIP PVT with ref count +2.  Removing
the additional ref just before the invite and adding an unref following it
corrects the issue as seen via REF_DEBUG.  The unref existed in a distant
revision and it appears as though the wrong ref operation was removed.

(closes issue ASTERISK-18091)
Review: https://reviewboard.asterisk.org/r/1332/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@331517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kinsey Moore
2011-08-10 22:23:08 +00:00
parent e6b7737ef6
commit 8852b53347

View File

@@ -12460,9 +12460,9 @@ static int manager_sipnotify(struct mansession *s, const struct message *m)
}
}
dialog_ref(p, "bump the count of p, which transmit_sip_request will decrement.");
sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
transmit_invite(p, SIP_NOTIFY, 0, 2, NULL);
dialog_unref(p, "bump down the count of p since we're done with it.");
astman_send_ack(s, m, "Notify Sent");
ast_variables_destroy(vars);
@@ -18453,9 +18453,9 @@ static char *sip_cli_notify(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
/* Recalculate our side, and recalculate Call ID */
ast_cli(a->fd, "Sending NOTIFY of type '%s' to '%s'\n", a->argv[2], a->argv[i]);
dialog_ref(p, "bump the count of p, which transmit_sip_request will decrement.");
sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
transmit_invite(p, SIP_NOTIFY, 0, 2, NULL);
dialog_unref(p, "bump down the count of p since we're done with it.");
}
return CLI_SUCCESS;