summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2010-11-29 21:31:05 +0000
committerRussell Bryant <russell@russellbryant.com>2010-11-29 21:31:05 +0000
commit40cc550f1fac93bb7342dcf0f124ba5eef954c8e (patch)
tree4743d112be5d953e5d63cfe0f55aece897901e8d /channels
parent267cf277440bb9fb4897327434d70d29275a561f (diff)
Merged revisions 296628 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r296628 | russell | 2010-11-29 15:26:44 -0600 (Mon, 29 Nov 2010) | 6 lines Complete some error handling in transmit_publish() in chan_sip.c. This error handling block caught my eye. It was missing a couple of things, but it should be safe now. Thanks to mmichelson for the quick peer review on IRC. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@296630 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 47c0ccfe9..128fbd151 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -11439,8 +11439,10 @@ static int transmit_publish(struct sip_epa_entry *epa_entry, enum sip_publish_ty
sip_pvt_lock(pvt);
if (create_addr(pvt, epa_entry->destination, NULL, TRUE, NULL)) {
+ sip_pvt_unlock(pvt);
dialog_unlink_all(pvt, TRUE, TRUE);
dialog_unref(pvt, "create_addr failed in transmit_publish. Unref dialog");
+ return -1;
}
ast_sip_ouraddrfor(&pvt->sa, &pvt->ourip, pvt);
ast_set_flag(&pvt->flags[0], SIP_OUTGOING);