diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 109b46e83a..413a03c585 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -16740,9 +16740,13 @@ static int handle_request_register(struct sip_pvt *p, struct sip_request *req, s return res; } -/*! \brief Handle incoming SIP requests (methods) -\note This is where all incoming requests go first */ -/* called with p and p->owner locked */ +/*! + * \brief Handle incoming SIP requests (methods) + * \note + * This is where all incoming requests go first. + * \note + * called with p and p->owner locked + */ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct sockaddr_in *sin, int *recount, int *nounlock) { /* Called with p->lock held, as well as p->owner->lock if appropriate, keeping things @@ -19167,6 +19171,7 @@ static int reload_config(enum channelreloadreason reason) if (sipsock < 0) { ast_log(LOG_WARNING, "Unable to create SIP socket: %s\n", strerror(errno)); ast_config_destroy(cfg); + ast_mutex_unlock(&netlock); return -1; } else { /* Allow SIP clients on the same host to access us: */