• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1package proto_decoder
2
3import (
4	"github.com/golang/protobuf/proto"
5	"github.com/golang/protobuf/ptypes/empty"
6	"github.com/jhump/protoreflect/desc"
7	"github.com/jhump/protoreflect/desc/builder"
8	"github.com/jhump/protoreflect/dynamic"
9)
10
11func Fuzz(data []byte) int {
12	d, err := desc.LoadMessageDescriptorForMessage(&empty.Empty{})
13	if err != nil {
14		panic(err)
15	}
16	mb, err := builder.FromMessage(d)
17	if err != nil {
18		panic(err)
19	}
20
21	msg, err := mb.Build()
22	if err != nil {
23		panic(err)
24	}
25
26	decoded := dynamic.NewMessage(msg)
27	err = proto.Unmarshal(data, decoded)
28	if err != nil {
29		return 0
30	}
31
32	return 1
33}
34