diff --git a/cmd/api/handler/responses/namespace.go b/cmd/api/handler/responses/namespace.go index 472755e7..fdf74627 100644 --- a/cmd/api/handler/responses/namespace.go +++ b/cmd/api/handler/responses/namespace.go @@ -4,6 +4,7 @@ package responses import ( + "bytes" "encoding/hex" "time" @@ -45,16 +46,16 @@ func (Namespace) SearchType() string { } func decodeName(nsId []byte) string { - isDecodable := true - data := make([]byte, 0) - for i := range nsId { - if nsId[i] == 0 { - continue - } - if nsId[i] < 0x20 || nsId[i] > 0x7f { + var ( + trimmed = bytes.Trim(nsId, "\x00") + data = make([]byte, 0) + isDecodable = true + ) + for i := range trimmed { + if trimmed[i] < 0x20 || trimmed[i] > 0x7f { isDecodable = false } - data = append(data, nsId[i]) + data = append(data, trimmed[i]) } if isDecodable { diff --git a/cmd/api/handler/responses/namespace_test.go b/cmd/api/handler/responses/namespace_test.go index 4a6839bd..64a31844 100644 --- a/cmd/api/handler/responses/namespace_test.go +++ b/cmd/api/handler/responses/namespace_test.go @@ -28,6 +28,10 @@ func Test_decodeName(t *testing.T) { name: "test 3", nsId: "0000000000000000000000000000000000000000e6edd3ffbef8c7d8", want: "e6edd3ffbef8c7d8", + }, { + name: "test 4", + nsId: "00000000000000000000000000000000000000e6edd3ffbef8c700d8", + want: "e6edd3ffbef8c700d8", }, } for _, tt := range tests {