]> Sergey Matveev's repositories - btrtrc.git/blob - metainfo/fuzz.go
Avoid allocating memory when checking interface (#588)
[btrtrc.git] / metainfo / fuzz.go
1 //go:build gofuzz
2 // +build gofuzz
3
4 package metainfo
5
6 import (
7         "github.com/anacrolix/torrent/bencode"
8 )
9
10 func Fuzz(b []byte) int {
11         var mi MetaInfo
12         err := bencode.Unmarshal(b, &mi)
13         if err != nil {
14                 return 0
15         }
16         _, err = bencode.Marshal(mi)
17         if err != nil {
18                 panic(err)
19         }
20         info, err := mi.UnmarshalInfo()
21         if err != nil {
22                 return 0
23         }
24         _, err = bencode.Marshal(info)
25         if err != nil {
26                 panic(err)
27         }
28         return 1
29 }