goccy / go-yaml

YAML support for the Go language
MIT License
1.12k stars 129 forks source link

Stack overflow issue #464

Open AdamKorcz opened 1 month ago

AdamKorcz commented 1 month ago

While testing another library, I ran into a stack overflow in go-yaml. The impact of a stack overflow has already been discussed in https://github.com/goccy/go-yaml/issues/353.

Reproducer

Go version: go version go1.22.5 linux/amd64 Latest go-yaml commit: b2a8cc696a9efea74ec54695625870937ce24797

package main

import (
    "bytes"
    "github.com/goccy/go-yaml"
)

type TestStruct struct {
    Name *string
}

var data = []byte{42, 42, 42, 62, 62, 33, 177, 65, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 46, 42, 139, 120, 44, 65, 13, 42, 42, 42, 42, 42, 42, 139, 120, 44, 119, 114, 38, 37, 37, 38, 37, 38, 37, 115, 182, 119, 114, 58, 38, 5, 255, 42, 42, 42, 42, 42, 62, 62, 33, 177, 65, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 46, 42, 139, 120, 44, 65, 13, 42, 42, 42, 42, 42, 42, 139, 120, 44, 119, 114, 38, 37, 37, 38, 37, 38, 37, 115, 182, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 119, 114, 58, 38, 37, 38, 37, 37, 38, 37, 115, 182, 119, 114, 58, 38, 37, 38, 37, 38, 37, 38, 37, 115, 182, 65, 13, 42, 42, 42, 42, 42, 42, 42, 46, 42, 139, 120, 44, 65, 42, 42, 42, 43, 42, 42, 71, 0, 0, 0, 0, 0, 0, 0, 200, 200, 200, 200, 200, 200, 200, 200, 44, 65, 13, 42, 42, 42, 42, 42, 42, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 120, 44, 65, 13, 42, 42, 42, 42, 42, 42, 42, 46, 42, 26, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 37, 38, 37, 37, 38, 37, 115, 182, 119, 114, 58, 38, 37, 38, 37, 38, 37, 65, 42, 115, 182, 37, 42, 13, 38, 42, 42, 42, 42, 42, 46, 42, 139, 120, 44, 65, 42, 42, 42, 43, 42, 42, 42, 42, 42, 42, 200, 200, 200, 200, 200, 200, 200, 200, 200, 42, 42, 46, 42, 139, 120, 44, 65, 13, 42, 42, 42, 42, 42, 42, 42, 46, 42, 139, 120, 44, 65, 13, 42, 42, 42, 42, 42, 42, 42, 46, 42, 139, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 200, 200, 44, 65, 13, 42, 42, 42, 42, 42, 42, 42, 46, 42, 139, 120, 44, 65, 13, 43, 42, 42, 42, 42, 42, 42, 46, 42, 139, 120, 44, 65, 13, 42, 42, 42, 42, 42, 42, 42, 46, 42, 139, 120}

func main() {
    dec := yaml.NewDecoder(bytes.NewBuffer(data))
    dec.Decode(&TestStruct{})
}

Output:

runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0xc020160338 stack=[0xc020160000, 0xc040160000]
fatal error: stack overflow

runtime stack:
runtime.throw({0x529eff?, 0x200000001?})
        /usr/local/go/src/runtime/panic.go:1023 +0x5c fp=0x7fff5241b8c8 sp=0x7fff5241b898 pc=0x4346bc
runtime.newstack()
        /usr/local/go/src/runtime/stack.go:1103 +0x5bd fp=0x7fff5241ba78 sp=0x7fff5241b8c8 pc=0x44df7d
runtime.morestack()
        /usr/local/go/src/runtime/asm_amd64.s:616 +0x7a fp=0x7fff5241ba80 sp=0x7fff5241ba78 pc=0x4632da

goroutine 1 gp=0xc0000061c0 m=0 mp=0x6260c0 [running]:
github.com/goccy/go-yaml.(*Decoder).setPathToCommentMap(0xc0000000c0?, {0x55b3d8?, 0xc000072d20?})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:157 +0x67 fp=0xc020160348 sp=0xc020160340 pc=0x4e2147
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:264 +0x3a fp=0xc0201604a0 sp=0xc020160348 pc=0x4e2f1a
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201605f8 sp=0xc0201604a0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020160750 sp=0xc0201605f8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201608a8 sp=0xc020160750 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020160a00 sp=0xc0201608a8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020160b58 sp=0xc020160a00 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020160cb0 sp=0xc020160b58 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020160e08 sp=0xc020160cb0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020160f60 sp=0xc020160e08 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201610b8 sp=0xc020160f60 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161210 sp=0xc0201610b8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161368 sp=0xc020161210 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201614c0 sp=0xc020161368 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161618 sp=0xc0201614c0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161770 sp=0xc020161618 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201618c8 sp=0xc020161770 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161a20 sp=0xc0201618c8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161b78 sp=0xc020161a20 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161cd0 sp=0xc020161b78 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161e28 sp=0xc020161cd0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020161f80 sp=0xc020161e28 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201620d8 sp=0xc020161f80 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162230 sp=0xc0201620d8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162388 sp=0xc020162230 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201624e0 sp=0xc020162388 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162638 sp=0xc0201624e0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162790 sp=0xc020162638 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201628e8 sp=0xc020162790 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162a40 sp=0xc0201628e8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162b98 sp=0xc020162a40 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162cf0 sp=0xc020162b98 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162e48 sp=0xc020162cf0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020162fa0 sp=0xc020162e48 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201630f8 sp=0xc020162fa0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163250 sp=0xc0201630f8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201633a8 sp=0xc020163250 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163500 sp=0xc0201633a8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163658 sp=0xc020163500 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201637b0 sp=0xc020163658 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163908 sp=0xc0201637b0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163a60 sp=0xc020163908 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163bb8 sp=0xc020163a60 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163d10 sp=0xc020163bb8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163e68 sp=0xc020163d10 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020163fc0 sp=0xc020163e68 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020164118 sp=0xc020163fc0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020164270 sp=0xc020164118 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc0201643c8 sp=0xc020164270 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc020164520 sp=0xc0201643c8 pc=0x4e37f3
...1560575 frames elided...
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015c520 sp=0xc04015c3c8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015c678 sp=0xc04015c520 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015c7d0 sp=0xc04015c678 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015c928 sp=0xc04015c7d0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015ca80 sp=0xc04015c928 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015cbd8 sp=0xc04015ca80 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015cd30 sp=0xc04015cbd8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015ce88 sp=0xc04015cd30 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015cfe0 sp=0xc04015ce88 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015d138 sp=0xc04015cfe0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015d290 sp=0xc04015d138 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015d3e8 sp=0xc04015d290 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015d540 sp=0xc04015d3e8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015d698 sp=0xc04015d540 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015d7f0 sp=0xc04015d698 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015d948 sp=0xc04015d7f0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015daa0 sp=0xc04015d948 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015dbf8 sp=0xc04015daa0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015dd50 sp=0xc04015dbf8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015dea8 sp=0xc04015dd50 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015e000 sp=0xc04015dea8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015e158 sp=0xc04015e000 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015e2b0 sp=0xc04015e158 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015e408 sp=0xc04015e2b0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015e560 sp=0xc04015e408 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015e6b8 sp=0xc04015e560 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015e810 sp=0xc04015e6b8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015e968 sp=0xc04015e810 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015eac0 sp=0xc04015e968 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015ec18 sp=0xc04015eac0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015ed70 sp=0xc04015ec18 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015eec8 sp=0xc04015ed70 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015f020 sp=0xc04015eec8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015f178 sp=0xc04015f020 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015f2d0 sp=0xc04015f178 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015f428 sp=0xc04015f2d0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015f580 sp=0xc04015f428 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015f6d8 sp=0xc04015f580 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015f830 sp=0xc04015f6d8 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015f988 sp=0xc04015f830 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015fae0 sp=0xc04015f988 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072d20})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015fc38 sp=0xc04015fae0 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).nodeToValue(0xc0000000c0, {0x55b3d8, 0xc000072f40})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:308 +0x913 fp=0xc04015fd90 sp=0xc04015fc38 pc=0x4e37f3
github.com/goccy/go-yaml.(*Decoder).parse(0xc0000000c0, {0xc000118000?, 0x55a128?, 0xc000100270?})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:1650 +0xe5 fp=0xc04015fe10 sp=0xc04015fd90 pc=0x4eeb45
github.com/goccy/go-yaml.(*Decoder).decodeInit(0xc0000000c0)
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:1671 +0xb1 fp=0xc04015fe60 sp=0xc04015fe10 pc=0x4eecf1
github.com/goccy/go-yaml.(*Decoder).DecodeContext(0xc0000000c0, {0x55a6f8, 0x684f60}, {0x501c60?, 0xc000056020?})
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:1719 +0x19a fp=0xc04015fef0 sp=0xc04015fe60 pc=0x4ef0da
github.com/goccy/go-yaml.(*Decoder).Decode(...)
        /home/go/pkg/mod/github.com/goccy/go-yaml@v1.11.3/decode.go:1700
main.main()
        /tmp/go-yaml-poc/main.go:16 +0x1f1 fp=0xc04015ff50 sp=0xc04015fef0 pc=0x4f9491
runtime.main()
        /usr/local/go/src/runtime/proc.go:271 +0x29d fp=0xc04015ffe0 sp=0xc04015ff50 pc=0x43717d
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc04015ffe8 sp=0xc04015ffe0 pc=0x465001

goroutine 2 gp=0xc000006700 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000052fa8 sp=0xc000052f88 pc=0x4375ae
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:408
runtime.forcegchelper()
        /usr/local/go/src/runtime/proc.go:326 +0xb3 fp=0xc000052fe0 sp=0xc000052fa8 pc=0x437433
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000052fe8 sp=0xc000052fe0 pc=0x465001
created by runtime.init.6 in goroutine 1
        /usr/local/go/src/runtime/proc.go:314 +0x1a

goroutine 3 gp=0xc000006c40 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000053780 sp=0xc000053760 pc=0x4375ae
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:408
runtime.bgsweep(0xc0000160e0)
        /usr/local/go/src/runtime/mgcsweep.go:278 +0x94 fp=0xc0000537c8 sp=0xc000053780 pc=0x423954
runtime.gcenable.gowrap1()
        /usr/local/go/src/runtime/mgc.go:203 +0x25 fp=0xc0000537e0 sp=0xc0000537c8 pc=0x4184a5
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000537e8 sp=0xc0000537e0 pc=0x465001
created by runtime.gcenable in goroutine 1
        /usr/local/go/src/runtime/mgc.go:203 +0x66

goroutine 4 gp=0xc000006e00 m=nil [GC scavenge wait]:
runtime.gopark(0xc0000160e0?, 0x558ab8?, 0x1?, 0x0?, 0xc000006e00?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000053f78 sp=0xc000053f58 pc=0x4375ae
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:408
runtime.(*scavengerState).park(0x625a60)
        /usr/local/go/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000053fa8 sp=0xc000053f78 pc=0x421349
runtime.bgscavenge(0xc0000160e0)
        /usr/local/go/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc000053fc8 sp=0xc000053fa8 pc=0x4218dc
runtime.gcenable.gowrap2()
        /usr/local/go/src/runtime/mgc.go:204 +0x25 fp=0xc000053fe0 sp=0xc000053fc8 pc=0x418445
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000053fe8 sp=0xc000053fe0 pc=0x465001
created by runtime.gcenable in goroutine 1
        /usr/local/go/src/runtime/mgc.go:204 +0xa5

goroutine 5 gp=0xc000007340 m=nil [finalizer wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:402 +0xce fp=0xc000054620 sp=0xc000054600 pc=0x4375ae
runtime.runfinq()
        /usr/local/go/src/runtime/mfinal.go:194 +0x107 fp=0xc0000547e0 sp=0xc000054620 pc=0x4174e7
runtime.goexit({})
        /usr/local/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000547e8 sp=0xc0000547e0 pc=0x465001
created by runtime.createfing in goroutine 1
        /usr/local/go/src/runtime/mfinal.go:164 +0x3d
exit status 2