Unverified Commit 9c2ac6fb authored by Felix Lange's avatar Felix Lange Committed by GitHub

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

Found by @protolambda 
parent a00dc509
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
package rpc package rpc
import ( import (
"bufio"
"container/list" "container/list"
"context" "context"
crand "crypto/rand" crand "crypto/rand"
...@@ -51,10 +50,14 @@ func NewID() ID { ...@@ -51,10 +50,14 @@ func NewID() ID {
// randomIDGenerator returns a function generates a random IDs. // randomIDGenerator returns a function generates a random IDs.
func randomIDGenerator() func() ID { func randomIDGenerator() func() ID {
seed, err := binary.ReadVarint(bufio.NewReader(crand.Reader)) var buf = make([]byte, 8)
if err != nil { var seed int64
if _, err := crand.Read(buf); err == nil {
seed = int64(binary.BigEndian.Uint64(buf))
} else {
seed = int64(time.Now().Nanosecond()) seed = int64(time.Now().Nanosecond())
} }
var ( var (
mu sync.Mutex mu sync.Mutex
rng = rand.New(rand.NewSource(seed)) rng = rand.New(rand.NewSource(seed))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment