decred / dcrpool

decred mining pool
ISC License
31 stars 28 forks source link

pool: Correct account races. #402

Closed davecgh closed 1 year ago

davecgh commented 1 year ago

The account and name fields of a client are not set until they are received via a mining.authorize message and the account field is accessed from separate goroutines which is a race.

This corrects that issue by introducing a separate mutex to protect both the account and the name field and updating all references to by protected by the mutex accordingly.

The name field doesn't appear to be used anywhere currently, however, it would also be a race to access it without the mutex for the same reason, so this takes the opportunity to ensure it is protected in case it is used in the future.

Fixes #374.