rpc: remove silly use of ReadVarint in subscription ID generator (#21391)

Found by @protolambda
This commit is contained in:
Felix Lange 2020-07-31 16:20:31 +02:00 committed by GitHub
parent a00dc5095b
commit 9c2ac6fbd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -17,7 +17,6 @@
package rpc
import (
"bufio"
"container/list"
"context"
crand "crypto/rand"
@ -51,10 +50,14 @@ func NewID() ID {
// randomIDGenerator returns a function generates a random IDs.
func randomIDGenerator() func() ID {
seed, err := binary.ReadVarint(bufio.NewReader(crand.Reader))
if err != nil {
var buf = make([]byte, 8)
var seed int64
if _, err := crand.Read(buf); err == nil {
seed = int64(binary.BigEndian.Uint64(buf))
} else {
seed = int64(time.Now().Nanosecond())
}
var (
mu sync.Mutex
rng = rand.New(rand.NewSource(seed))