From: Russell Bryant Date: Mon, 29 Nov 2010 21:26:44 +0000 (+0000) Subject: Complete some error handling in transmit_publish() in chan_sip.c. X-Git-Tag: 1.8.2-rc1~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7017473c8c0d17a266325d9b22afe62c348be21d;p=thirdparty%2Fasterisk.git 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/branches/1.8@296628 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index a53bbb87c7..0feb2c8b8f 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -11296,8 +11296,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);