deadlock in the obfsvpn `client.Stop` function
There's a deadlock while trying to close the obfsvpn.Client
, the mutex synchronizing the start/stop of the socks5 proxy is never released after starting the socks5 proxy, so obfsvpn.Client.Stop()
is indefinitely blocking the app and ending up in a hang situation.
The following piece of code acquires the lock, and schedules a defer call to unlock.. https://0xacab.org/leap/obfsvpn/-/blob/main/client/client.go?ref_type=heads#L49-54
but the defer is never called as at the end, there's blocking select call.. https://0xacab.org/leap/obfsvpn/-/blob/main/client/client.go?ref_type=heads#L85-94