Properly release lock on error conditions

This commit is contained in:
Michele Bini 2014-02-13 03:40:10 +01:00
parent faed393afb
commit 9f5013fcde

View File

@ -366,12 +366,15 @@ void *tcp_daemon(void *door)
* While we are accepting the connections we keep the socket non * While we are accepting the connections we keep the socket non
* blocking. * blocking.
*/ */
if(set_nonblock_sk(dev_sk[i])) if(set_nonblock_sk(dev_sk[i])) {
return NULL; pthread_mutex_unlock(&tcp_daemon_lock);
return NULL;
}
/* Shhh, it's listening... */ /* Shhh, it's listening... */
if(listen(dev_sk[i], 5) == -1) { if(listen(dev_sk[i], 5) == -1) {
inet_close(&dev_sk[i]); inet_close(&dev_sk[i]);
pthread_mutex_unlock(&tcp_daemon_lock);
return NULL; return NULL;
} }
} }