From 15f005c1bda96ef134f182b201ff7f64895f27a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Bi=C5=A1kup?= Date: Fri, 29 Jun 2018 22:05:03 +0200 Subject: [PATCH] fix (cookie.go): Fixes concurrent use, by using the default rand Source --- cookie.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cookie.go b/cookie.go index 69d616c..91ee4de 100644 --- a/cookie.go +++ b/cookie.go @@ -175,17 +175,15 @@ const ( letterIdxMax = 63 / letterIdxBits // # of letter indices fitting in 63 bits ) -var src = rand.NewSource(time.Now().UnixNano()) - // Random takes a parameter (int) and returns random slice of byte // ex: var randomstrbytes []byte; randomstrbytes = Random(32) // note: this code doesn't belongs to me, but it works just fine* func Random(n int) []byte { b := make([]byte, n) // A src.Int63() generates 63 random bits, enough for letterIdxMax characters! - for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; { + for i, cache, remain := n-1, rand.Int63(), letterIdxMax; i >= 0; { if remain == 0 { - cache, remain = src.Int63(), letterIdxMax + cache, remain = rand.Int63(), letterIdxMax } if idx := int(cache & letterIdxMask); idx < len(letterBytes) { b[i] = letterBytes[idx]