Skip to content

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

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information