Skip to content
Snippets Groups Projects
Commit a6ea606a authored by Kinsey Moore's avatar Kinsey Moore
Browse files

Merged revisions 331518 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/10

................
  r331518 | kmoore | 2011-08-10 17:23:49 -0500 (Wed, 10 Aug 2011) | 17 lines
  
  Merged revisions 331517 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.8
  
  ........
    r331517 | kmoore | 2011-08-10 17:23:08 -0500 (Wed, 10 Aug 2011) | 10 lines
    
    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/trunk@331519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 9d785ca5
Branches
Tags
No related merge requests found
...@@ -12744,9 +12744,9 @@ static int manager_sipnotify(struct mansession *s, const struct message *m) ...@@ -12744,9 +12744,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); sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
transmit_invite(p, SIP_NOTIFY, 0, 2, NULL); 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"); astman_send_ack(s, m, "Notify Sent");
ast_variables_destroy(vars); ast_variables_destroy(vars);
...@@ -18966,9 +18966,9 @@ static char *sip_cli_notify(struct ast_cli_entry *e, int cmd, struct ast_cli_arg ...@@ -18966,9 +18966,9 @@ static char *sip_cli_notify(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
   
/* Recalculate our side, and recalculate Call ID */ /* 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]); 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); sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
transmit_invite(p, SIP_NOTIFY, 0, 2, NULL); 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; return CLI_SUCCESS;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment