summaryrefslogtreecommitdiffstats
path: root/modules/avatar
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2021-05-10 08:45:17 +0200
committerGitHub <noreply@github.com>2021-05-10 08:45:17 +0200
commit1e6fa57acbe3c05cb996b789e8c2d381c953826f (patch)
treec4f1ce55b3423f97952b630462cef5b2035961ec /modules/avatar
parentOn open repository open common cat file batch and batch-check (#15667) (diff)
downloadforgejo-1e6fa57acbe3c05cb996b789e8c2d381c953826f.tar.xz
forgejo-1e6fa57acbe3c05cb996b789e8c2d381c953826f.zip
Use single shared random string generation function (#15741)
* Use single shared random string generation function - Replace 3 functions that do the same with 1 shared one - Use crypto/rand over math/rand for a stronger RNG - Output only alphanumerical for URL compatibilty Fixes: #15536 * use const string method * Update modules/avatar/avatar.go Co-authored-by: a1012112796 <1012112796@qq.com> Co-authored-by: a1012112796 <1012112796@qq.com>
Diffstat (limited to 'modules/avatar')
-rw-r--r--modules/avatar/avatar.go10
-rw-r--r--modules/avatar/avatar_test.go13
2 files changed, 15 insertions, 8 deletions
diff --git a/modules/avatar/avatar.go b/modules/avatar/avatar.go
index 44b56c26ce..bb9c2e953b 100644
--- a/modules/avatar/avatar.go
+++ b/modules/avatar/avatar.go
@@ -12,10 +12,9 @@ import (
// Enable PNG support:
_ "image/png"
- "math/rand"
- "time"
"code.gitea.io/gitea/modules/setting"
+ "code.gitea.io/gitea/modules/util"
"github.com/issue9/identicon"
"github.com/nfnt/resize"
@@ -29,8 +28,11 @@ const AvatarSize = 290
// in custom size (height and width).
func RandomImageSize(size int, data []byte) (image.Image, error) {
randExtent := len(palette.WebSafe) - 32
- rand.Seed(time.Now().UnixNano())
- colorIndex := rand.Intn(randExtent)
+ integer, err := util.RandomInt(int64(randExtent))
+ if err != nil {
+ return nil, fmt.Errorf("util.RandomInt: %v", err)
+ }
+ colorIndex := int(integer)
backColorIndex := colorIndex - 1
if backColorIndex < 0 {
backColorIndex = randExtent - 1
diff --git a/modules/avatar/avatar_test.go b/modules/avatar/avatar_test.go
index 8535605652..f48266c858 100644
--- a/modules/avatar/avatar_test.go
+++ b/modules/avatar/avatar_test.go
@@ -13,12 +13,17 @@ import (
"github.com/stretchr/testify/assert"
)
-func Test_RandomImage(t *testing.T) {
- _, err := RandomImage([]byte("gogs@local"))
+func Test_RandomImageSize(t *testing.T) {
+ _, err := RandomImageSize(0, []byte("gitea@local"))
+ assert.Error(t, err)
+
+ _, err = RandomImageSize(64, []byte("gitea@local"))
assert.NoError(t, err)
+}
- _, err = RandomImageSize(0, []byte("gogs@local"))
- assert.Error(t, err)
+func Test_RandomImage(t *testing.T) {
+ _, err := RandomImage([]byte("gitea@local"))
+ assert.NoError(t, err)
}
func Test_PrepareWithPNG(t *testing.T) {