In zconnection.c, zconnection_recv_raw(...) line 143 there is a default switch case that unlocks the connection mutex. From the comment I suspect the intention is to drop the packet and return from the method. However this doesn't happen, and further down the same method the mutex is unlocked again. Since unlocking a mutex twice is undefined behavior it reinforces the probability that there is an issue here.
In zconnection.c, zconnection_recv_raw(...) line 143 there is a default switch case that unlocks the connection mutex. From the comment I suspect the intention is to drop the packet and return from the method. However this doesn't happen, and further down the same method the mutex is unlocked again. Since unlocking a mutex twice is undefined behavior it reinforces the probability that there is an issue here.