diff --git a/src/sbbs3/putnode.cpp b/src/sbbs3/putnode.cpp index 6ebebb432c15efdd55515ae59a59729c8db286d4..7dfcd88b33dc6e79189c3efd4456e82df3e382f5 100644 --- a/src/sbbs3/putnode.cpp +++ b/src/sbbs3/putnode.cpp @@ -66,8 +66,8 @@ bool sbbs_t::putnodedat(uint number, node_t* node) pthread_mutex_lock(&nodefile_mutex); if(nodefile==-1) { if((nodefile=nopen(path,O_CREAT|O_RDWR|O_DENYNONE))==-1) { - errormsg(WHERE,ERR_OPEN,path,O_CREAT|O_RDWR|O_DENYNONE); pthread_mutex_unlock(&nodefile_mutex); + errormsg(WHERE,ERR_OPEN,path,O_CREAT|O_RDWR|O_DENYNONE); return false; } } @@ -99,6 +99,7 @@ bool sbbs_t::putnodedat(uint number, node_t* node) bool sbbs_t::unlocknodedat(uint number) { if(number < 1 || number > cfg.sys_nodes) { + pthread_mutex_unlock(&nodefile_mutex); errormsg(WHERE, ERR_CHK, "node number", number); return false; }