Merge pull request #2150 from lucas-clemente/fix-stateless-reset-token-race

fix race condition when generating stateless reset tokens
This commit is contained in:
Marten Seemann
2019-09-27 05:01:34 +07:00
committed by GitHub

View File

@@ -35,6 +35,7 @@ type packetHandlerMap struct {
deleteRetiredSessionsAfter time.Duration
statelessResetEnabled bool
statelessResetMutex sync.Mutex
statelessResetHasher hash.Hash
logger utils.Logger
@@ -259,9 +260,11 @@ func (h *packetHandlerMap) GetStatelessResetToken(connID protocol.ConnectionID)
rand.Read(token[:])
return token
}
h.statelessResetMutex.Lock()
h.statelessResetHasher.Write(connID.Bytes())
copy(token[:], h.statelessResetHasher.Sum(nil))
h.statelessResetHasher.Reset()
h.statelessResetMutex.Unlock()
return token
}