From 3dc744e987d0d24a0c735d66ef93da214c165a69 Mon Sep 17 00:00:00 2001 From: Alexander Yastrebov Date: Mon, 11 Dec 2023 20:48:37 +0100 Subject: [PATCH] predicates/auth: fix array conversion (#2788) * fix array conversion that was necessary due to https://github.com/golang/go/issues/46505 * preallocate slice Signed-off-by: Alexander Yastrebov --- predicates/auth/headersha256.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/predicates/auth/headersha256.go b/predicates/auth/headersha256.go index 3103c4c894..acf4321183 100644 --- a/predicates/auth/headersha256.go +++ b/predicates/auth/headersha256.go @@ -37,8 +37,10 @@ func (*headerSha256Spec) Create(args []interface{}) (routing.Predicate, error) { return nil, predicates.ErrInvalidPredicateParameters } - var hashes [][sha256.Size]byte - for _, arg := range args[1:] { + args = args[1:] + + hashes := make([][sha256.Size]byte, 0, len(args)) + for _, arg := range args { hexHash, ok := arg.(string) if !ok { return nil, predicates.ErrInvalidPredicateParameters @@ -50,7 +52,7 @@ func (*headerSha256Spec) Create(args []interface{}) (routing.Predicate, error) { if len(hash) != sha256.Size { return nil, predicates.ErrInvalidPredicateParameters } - hashes = append(hashes, *(*[sha256.Size]byte)(hash)) // https://github.com/golang/go/issues/46505 + hashes = append(hashes, ([sha256.Size]byte)(hash)) } return &headerSha256Predicate{name, hashes}, nil