From 51ab039219ba3f0a0469c0c6434ec3700902e24c Mon Sep 17 00:00:00 2001 From: Angelo De Caro Date: Fri, 1 Oct 2021 09:13:11 +0200 Subject: [PATCH] vault fails to validate keys containing string(utf8.MaxRune) #144 Signed-off-by: Angelo De Caro --- platform/view/services/db/keys/utils.go | 3 ++- platform/view/services/db/keys/utils_test.go | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/view/services/db/keys/utils.go b/platform/view/services/db/keys/utils.go index 4f2c7e8c3..fd783efba 100644 --- a/platform/view/services/db/keys/utils.go +++ b/platform/view/services/db/keys/utils.go @@ -8,13 +8,14 @@ package keys import ( "regexp" + "unicode/utf8" "github.com/pkg/errors" ) var ( nsRegexp = regexp.MustCompile("^[a-zA-Z0-9._-]{1,20}$") - keyRegexp = regexp.MustCompile("^[a-zA-Z0-9._\u0000=+/-]{1,200}$") + keyRegexp = regexp.MustCompile("^[a-zA-Z0-9._\u0000=" + string(utf8.MaxRune) + "+/-]{1,200}$") ) const NamespaceSeparator = "\u0000" diff --git a/platform/view/services/db/keys/utils_test.go b/platform/view/services/db/keys/utils_test.go index 7197e9e5a..66ebe3da7 100644 --- a/platform/view/services/db/keys/utils_test.go +++ b/platform/view/services/db/keys/utils_test.go @@ -11,9 +11,10 @@ import ( "testing" "unicode/utf8" - "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/keys" "github.com/pkg/errors" "github.com/stretchr/testify/assert" + + "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/keys" ) const ( @@ -57,6 +58,7 @@ func TestValidateKey(t *testing.T) { assert.NoError(t, err) assert.NoError(t, keys.ValidateKey(key)) assert.EqualError(t, keys.ValidateKey("_key?"), "key '_key?' is invalid") + assert.NoError(t, keys.ValidateKey("\x00"+string(utf8.MaxRune)+"initialized")) } func TestValidateNamespace(t *testing.T) {