mirror of https://github.com/cbeuw/Cloak
Fix race condition in session maker
This commit is contained in:
parent
22148852dc
commit
900387832d
|
|
@ -169,6 +169,7 @@ func main() {
|
|||
}
|
||||
log.Infof("Listening on %v %v for %v client", network, localConfig.LocalAddr, authInfo.ProxyMethod)
|
||||
seshMaker = func() *mux.Session {
|
||||
authInfo := authInfo // copy the struct because we are overwriting SessionId
|
||||
// sessionID is usergenerated. There shouldn't be a security concern because the scope of
|
||||
// sessionID is limited to its UID.
|
||||
quad := make([]byte, 4)
|
||||
|
|
|
|||
|
|
@ -185,11 +185,9 @@ func establishSession(lcc client.LocalConnConfig, rcc client.RemoteConnConfig, a
|
|||
// whatever connection initiator (including a proper ck-client)
|
||||
|
||||
netToCkServerD, ckServerListener := connutil.DialerListener(10 * 1024)
|
||||
var sessionCreateMutex sync.Mutex
|
||||
|
||||
clientSeshMaker := func() *mux.Session {
|
||||
sessionCreateMutex.Lock()
|
||||
defer sessionCreateMutex.Unlock()
|
||||
ai := ai
|
||||
quad := make([]byte, 4)
|
||||
common.RandRead(ai.WorldState.Rand, quad)
|
||||
ai.SessionId = binary.BigEndian.Uint32(quad)
|
||||
|
|
|
|||
Loading…
Reference in New Issue