]> Cypherpunks repositories - keks.git/commitdiff
check for bad keys when encoding map
authorAnton Rudenko <rudenko.ad@phystech.edu>
Mon, 20 Jan 2025 14:30:08 +0000 (17:30 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Mon, 10 Feb 2025 15:39:44 +0000 (18:39 +0300)
go/encode.go

index 5e01ecc18a4a603ec430146544d2698978b15fbcacf8e4028636323f8cd32f0a..ae741be0308f6b6d03020e6ddafc65fb4d00895c488fc51147c555ada48a3b52 100644 (file)
@@ -156,6 +156,10 @@ func Encode(w io.Writer, v any, opts *EncodeOpts) (written int64, err error) {
                sort.Sort(keksort.ByLenFirstRV(keys))
                var n64 int64
                for _, k := range keys {
+                       if k.Kind() != reflect.String || k.String() == "" {
+                               err = ErrMapBadKey
+                               return
+                       }
                        n64, err = StrEncode(w, k.String())
                        written += n64
                        if err != nil {